Sha256: 36ee20fccd84f457263dfa351edbe20da0c6a66e0805753da9ae62b2131ad7cd
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
module ActiveRecordObjects def setup_models(base = ActiveRecord::Base) Object.send :const_set, 'DeeplyAssociatedRecord', Class.new(base).tap {|klass| klass.send :include, IdentityCache klass.belongs_to :associated_record } Object.send :const_set, 'AssociatedRecord', Class.new(base).tap {|klass| klass.send :include, IdentityCache klass.belongs_to :record klass.has_many :deeply_associated_records, :order => "name DESC" } Object.send :const_set, 'NotCachedRecord', Class.new(base).tap {|klass| klass.belongs_to :record, :touch => true } Object.send :const_set, 'PolymorphicRecord', Class.new(base).tap {|klass| klass.belongs_to :owner, :polymorphic => true } Object.send :const_set, 'Record', Class.new(base).tap {|klass| klass.send :include, IdentityCache klass.belongs_to :record klass.has_many :associated_records, :order => "id DESC" klass.has_many :not_cached_records, :order => "id DESC" klass.has_many :polymorphic_records, :as => 'owner' klass.has_one :polymorphic_record, :as => 'owner' klass.has_one :associated, :class_name => 'AssociatedRecord', :order => "id ASC" } end def teardown_models ActiveSupport::DescendantsTracker.clear ActiveSupport::Dependencies.clear Object.send :remove_const, 'DeeplyAssociatedRecord' Object.send :remove_const, 'PolymorphicRecord' Object.send :remove_const, 'AssociatedRecord' Object.send :remove_const, 'NotCachedRecord' Object.send :remove_const, 'Record' end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
identity_cache-0.0.3 | test/helpers/active_record_objects.rb |