2011-12-18 21:42:09 +00:00
|
|
|
module ActiveRecord
|
|
|
|
module Model
|
2011-12-18 23:35:25 +00:00
|
|
|
# So we can recognise an AR class even while self.included is being
|
|
|
|
# executed. (At that time, klass < Model == false.)
|
|
|
|
module Tag #:nodoc:
|
|
|
|
end
|
|
|
|
|
2011-12-18 21:42:09 +00:00
|
|
|
def self.included(base)
|
|
|
|
base.class_eval do
|
2011-12-18 23:35:25 +00:00
|
|
|
include Tag
|
|
|
|
|
2011-12-18 21:42:09 +00:00
|
|
|
include ActiveRecord::Persistence
|
|
|
|
extend ActiveModel::Naming
|
|
|
|
extend QueryCache::ClassMethods
|
|
|
|
extend ActiveSupport::Benchmarkable
|
|
|
|
extend ActiveSupport::DescendantsTracker
|
|
|
|
|
|
|
|
extend Querying
|
|
|
|
include ReadonlyAttributes
|
|
|
|
include ModelSchema
|
|
|
|
extend Translation
|
|
|
|
include Inheritance
|
|
|
|
include Scoping
|
|
|
|
extend DynamicMatchers
|
|
|
|
include Sanitization
|
|
|
|
include Integration
|
|
|
|
include AttributeAssignment
|
|
|
|
include ActiveModel::Conversion
|
|
|
|
include Validations
|
|
|
|
extend CounterCache
|
|
|
|
include Locking::Optimistic, Locking::Pessimistic
|
|
|
|
include AttributeMethods
|
|
|
|
include Callbacks, ActiveModel::Observing, Timestamp
|
|
|
|
include Associations
|
|
|
|
include IdentityMap
|
|
|
|
include ActiveModel::SecurePassword
|
|
|
|
extend Explain
|
|
|
|
|
|
|
|
# AutosaveAssociation needs to be included before Transactions, because we want
|
|
|
|
# #save_with_autosave_associations to be wrapped inside a transaction.
|
|
|
|
include AutosaveAssociation, NestedAttributes
|
|
|
|
include Aggregations, Transactions, Reflection, Serialization, Store
|
|
|
|
|
|
|
|
include Core
|
2011-12-18 23:35:25 +00:00
|
|
|
|
|
|
|
self.connection_handler = ActiveRecord::Base.connection_handler
|
2011-12-18 21:42:09 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
require 'active_record/connection_adapters/abstract/connection_specification'
|
2011-12-18 23:35:25 +00:00
|
|
|
ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Model)
|