1
0
Fork 0
mirror of https://github.com/aasm/aasm synced 2023-03-27 23:22:41 -04:00

Removed more require !

This commit is contained in:
Yannick Rekinger 2016-03-18 13:36:28 +01:00
parent 2b9d850d99
commit d0b982b121
9 changed files with 21 additions and 16 deletions

View file

@ -12,4 +12,5 @@ require 'aasm/core/state'
require 'aasm/localizer'
require 'aasm/state_machine'
require 'aasm/persistence'
require 'aasm/persistence/plain_persistence'
require 'aasm/aasm'

View file

@ -7,14 +7,19 @@ module AASM
hierarchy = base.ancestors.map {|klass| klass.to_s}
if hierarchy.include?("ActiveRecord::Base")
require_persistence(:active_record)
include_persistence base, :active_record
elsif hierarchy.include?("Mongoid::Document")
require_persistence(:active_record)
include_persistence base, :mongoid
elsif hierarchy.include?("MongoMapper::Document")
require_persistence(:active_record)
include_persistence base, :mongo_mapper
elsif hierarchy.include?("Sequel::Model")
require_persistence(:active_record)
include_persistence base, :sequel
elsif hierarchy.include?("Dynamoid::Document")
require_persistence(:active_record)
include_persistence base, :dynamoid
elsif hierarchy.include?("CDQManagedObject")
include_persistence base, :core_data_query
@ -25,8 +30,11 @@ module AASM
private
def include_persistence(base, type)
def require_persistence(type)
require File.join(File.dirname(__FILE__), 'persistence', "#{type}_persistence")
end
def include_persistence(base, type)
base.send(:include, constantize("#{capitalize(type)}Persistence"))
end

View file

@ -1,5 +1,3 @@
require_relative 'base'
module AASM
module Persistence
module ActiveRecordPersistence

View file

@ -1,5 +1,3 @@
require_relative 'base'
module AASM
module Persistence
module CoreDataQueryPersistence

View file

@ -1,5 +1,3 @@
require_relative 'base'
module AASM
module Persistence
module DynamoidPersistence

View file

@ -1,5 +1,3 @@
require_relative 'base'
module AASM
module Persistence
module MongoMapperPersistence

View file

@ -1,5 +1,3 @@
require_relative 'base'
module AASM
module Persistence
module MongoidPersistence

View file

@ -1,5 +1,3 @@
require_relative 'base'
module AASM
module Persistence
module SequelPersistence

View file

@ -3,17 +3,25 @@ unless defined?(Motion::Project::App)
end
file_dependencies = {
'aasm/persistence/base.rb' => ['aasm/base.rb']
'aasm/aasm.rb' => ['aasm/persistence.rb'],
'aasm/persistence.rb' => ['aasm/persistence/plain_persistence.rb', 'aasm/persistence/core_data_query_persistence.rb'],
'aasm/persistence/base.rb' => ['aasm/base.rb'],
'aasm/persistence/core_data_query_persistence.rb' => ['aasm/persistence/base.rb']
}
exclude_files = [
'rspec'
'aasm/rspec.*',
'aasm/persistence/active_record_persistence.rb',
'aasm/persistence/dynamoid_persistence.rb',
'aasm/persistence/mongo_mapper_persistence.rb',
'aasm/persistence/mongoid_persistence.rb',
'aasm/persistence/sequel_persistence.rb'
]
Motion::Project::App.setup do |app|
parent = File.expand_path File.dirname(__FILE__)
app.files += Dir.glob(File.join(parent, "aasm/**/*.rb")).reject { |file| exclude_files.any? { |exclude| file.match(exclude) } }
app.files << Dir.glob(File.join(parent, "aasm/**/*.rb")).reject { |file| exclude_files.any? { |exclude| file.match(exclude) } }
app.files_dependencies file_dependencies.inject({}, &->(file_dependencies, (file, *dependencies)) do
file = File.join(parent, file)