public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
Autoload ActiveRecord files
josh (author)
Mon Nov 24 09:14:24 -0800 2008
commit  7254d23764f7abe8023f3daeb07d99ea1c8e777a
tree    4c1981119e1da9b9c98e8e2d9cf8a3b7dcfcb887
parent  426a86ab1e4fc2488215a9adab4511a59646a413
...
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
 
 
 
 
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
76
 
 
 
 
77
78
 
 
 
 
79
80
81
 
 
...
31
32
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
35
36
37
38
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
62
63
64
65
66
 
67
68
69
70
71
72
73
74
75
0
@@ -31,51 +31,45 @@ rescue LoadError
0
   end
0
 end
0
 
0
-require 'active_record/base'
0
-require 'active_record/named_scope'
0
-require 'active_record/observer'
0
-require 'active_record/query_cache'
0
-require 'active_record/validations'
0
-require 'active_record/callbacks'
0
-require 'active_record/reflection'
0
-require 'active_record/associations'
0
-require 'active_record/association_preload'
0
-require 'active_record/aggregations'
0
-require 'active_record/transactions'
0
-require 'active_record/timestamp'
0
-require 'active_record/locking/optimistic'
0
-require 'active_record/locking/pessimistic'
0
-require 'active_record/migration'
0
-require 'active_record/schema'
0
-require 'active_record/calculations'
0
-require 'active_record/serialization'
0
-require 'active_record/attribute_methods'
0
-require 'active_record/dirty'
0
-require 'active_record/dynamic_finder_match'
0
+module ActiveRecord
0
+  # TODO: Review explicit loads to see if they will automatically be handled by the initilizer.
0
+  def self.load_all!
0
+    [Base, DynamicFinderMatch, ConnectionAdapters::AbstractAdapter]
0
+  end
0
 
0
-ActiveRecord::Base.class_eval do
0
-  extend ActiveRecord::QueryCache
0
-  include ActiveRecord::Validations
0
-  include ActiveRecord::Locking::Optimistic
0
-  include ActiveRecord::Locking::Pessimistic
0
-  include ActiveRecord::AttributeMethods
0
-  include ActiveRecord::Dirty
0
-  include ActiveRecord::Callbacks
0
-  include ActiveRecord::Observing
0
-  include ActiveRecord::Timestamp
0
-  include ActiveRecord::Associations
0
-  include ActiveRecord::NamedScope
0
-  include ActiveRecord::AssociationPreload
0
-  include ActiveRecord::Aggregations
0
-  include ActiveRecord::Transactions
0
-  include ActiveRecord::Reflection
0
-  include ActiveRecord::Calculations
0
-  include ActiveRecord::Serialization
0
-end
0
+  autoload :Aggregations, 'active_record/aggregations'
0
+  autoload :AssociationPreload, 'active_record/association_preload'
0
+  autoload :Associations, 'active_record/associations'
0
+  autoload :AttributeMethods, 'active_record/attribute_methods'
0
+  autoload :Base, 'active_record/base'
0
+  autoload :Calculations, 'active_record/calculations'
0
+  autoload :Callbacks, 'active_record/callbacks'
0
+  autoload :Dirty, 'active_record/dirty'
0
+  autoload :DynamicFinderMatch, 'active_record/dynamic_finder_match'
0
+  autoload :Migration, 'active_record/migration'
0
+  autoload :NamedScope, 'active_record/named_scope'
0
+  autoload :Observing, 'active_record/observer'
0
+  autoload :QueryCache, 'active_record/query_cache'
0
+  autoload :Reflection, 'active_record/reflection'
0
+  autoload :Schema, 'active_record/schema'
0
+  autoload :SchemaDumper, 'active_record/schema_dumper'
0
+  autoload :Serialization, 'active_record/serialization'
0
+  autoload :TestCase, 'active_record/test_case'
0
+  autoload :Timestamp, 'active_record/timestamp'
0
+  autoload :Transactions, 'active_record/transactions'
0
+  autoload :Validations, 'active_record/validations'
0
 
0
-require 'active_record/connection_adapters/abstract_adapter'
0
+  module Locking
0
+    autoload :Optimistic, 'active_record/locking/optimistic'
0
+    autoload :Pessimistic, 'active_record/locking/pessimistic'
0
+  end
0
 
0
-require 'active_record/schema_dumper'
0
+  module ConnectionAdapters
0
+    autoload :AbstractAdapter, 'active_record/connection_adapters/abstract_adapter'
0
+  end
0
+end
0
 
0
 require 'active_record/i18n_interpolation_deprecation'
0
 I18n.load_path << File.dirname(__FILE__) + '/active_record/locale/en.yml'
0
+
0
+ActiveRecord.load_all!
...
1
2
3
4
5
6
7
8
9
10
11
12
13
...
75
76
77
 
 
 
 
 
 
 
 
 
 
 
 
78
79
80
...
 
 
 
 
 
 
 
 
 
 
1
2
3
...
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
0
@@ -1,13 +1,3 @@
0
-require 'active_record/associations/association_proxy'
0
-require 'active_record/associations/association_collection'
0
-require 'active_record/associations/belongs_to_association'
0
-require 'active_record/associations/belongs_to_polymorphic_association'
0
-require 'active_record/associations/has_one_association'
0
-require 'active_record/associations/has_many_association'
0
-require 'active_record/associations/has_many_through_association'
0
-require 'active_record/associations/has_and_belongs_to_many_association'
0
-require 'active_record/associations/has_one_through_association'
0
-
0
 module ActiveRecord
0
   class HasManyThroughAssociationNotFoundError < ActiveRecordError #:nodoc:
0
     def initialize(owner_class_name, reflection)
0
@@ -75,6 +65,18 @@ module ActiveRecord
0
 
0
   # See ActiveRecord::Associations::ClassMethods for documentation.
0
   module Associations # :nodoc:
0
+    # These classes will be loaded when associatoins are created.
0
+    # So there is no need to eager load them.
0
+    autoload :AssociationCollection, 'active_record/associations/association_collection'
0
+    autoload :AssociationProxy, 'active_record/associations/association_proxy'
0
+    autoload :BelongsToAssociation, 'active_record/associations/belongs_to_association'
0
+    autoload :BelongsToPolymorphicAssociation, 'active_record/associations/belongs_to_polymorphic_association'
0
+    autoload :HasAndBelongsToManyAssociation, 'active_record/associations/has_and_belongs_to_many_association'
0
+    autoload :HasManyAssociation, 'active_record/associations/has_many_association'
0
+    autoload :HasManyThroughAssociation, 'active_record/associations/has_many_through_association'
0
+    autoload :HasOneAssociation, 'active_record/associations/has_one_association'
0
+    autoload :HasOneThroughAssociation, 'active_record/associations/has_one_through_association'
0
+
0
     def self.included(base)
0
       base.extend(ClassMethods)
0
     end
...
2978
2979
2980
 
 
 
 
 
 
 
 
 
 
 
2981
...
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
0
@@ -2978,4 +2978,15 @@ module ActiveRecord #:nodoc:
0
         value
0
       end
0
   end
0
+
0
+  Base.class_eval do
0
+    extend QueryCache
0
+    include Validations
0
+    include Locking::Optimistic, Locking::Pessimistic
0
+    include AttributeMethods
0
+    include Dirty
0
+    include Callbacks, Observing, Timestamp
0
+    include Associations, AssociationPreload, NamedScope
0
+    include Aggregations, Transactions, Reflection, Calculations, Serialization
0
+  end
0
 end
...
3
4
5
 
6
7
8
...
3
4
5
6
7
8
9
0
@@ -3,6 +3,7 @@ require 'date'
0
 require 'bigdecimal'
0
 require 'bigdecimal/util'
0
 
0
+# TODO: Autoload these files
0
 require 'active_record/connection_adapters/abstract/schema_definitions'
0
 require 'active_record/connection_adapters/abstract/schema_statements'
0
 require 'active_record/connection_adapters/abstract/database_statements'
...
95
96
97
98
99
 
...
95
96
97
 
98
99
0
@@ -95,4 +95,4 @@ module ActiveRecord #:nodoc:
0
 end
0
 
0
 require 'active_record/serializers/xml_serializer'
0
-require 'active_record/serializers/json_serializer'
0
\ No newline at end of file
0
+require 'active_record/serializers/json_serializer'
...
1
2
3
4
5
...
1
 
2
3
4
0
@@ -1,5 +1,4 @@
0
 require "cases/helper"
0
-require 'active_record/schema'
0
 
0
 if ActiveRecord::Base.connection.supports_migrations?
0
 
...
1
2
3
4
5
...
1
 
2
3
4
0
@@ -1,5 +1,4 @@
0
 require "cases/helper"
0
-require 'active_record/schema_dumper'
0
 require 'stringio'
0
 
0
 

Comments