removing log dir from .gitignore
[monkeycharger.git] / vendor / rails / activerecord / lib / active_record / deprecated_associations.rb
blobc973b65dbc34ec716bf1c5b8182f369bf8ef7e05
1 module ActiveRecord
2   module Associations # :nodoc:
3     module ClassMethods
4       def deprecated_collection_count_method(collection_name)# :nodoc:
5         module_eval <<-"end_eval", __FILE__, __LINE__
6           def #{collection_name}_count(force_reload = false)
7             unless has_attribute?(:#{collection_name}_count)
8               ActiveSupport::Deprecation.warn :#{collection_name}_count
9             end
10             #{collection_name}.reload if force_reload
11             #{collection_name}.size
12           end
13         end_eval
14       end
16       def deprecated_add_association_relation(association_name)# :nodoc:
17         module_eval <<-"end_eval", __FILE__, __LINE__
18           def add_#{association_name}(*items)
19             #{association_name}.concat(items)
20           end
21           deprecate :add_#{association_name} => "use #{association_name}.concat instead"
22         end_eval
23       end
25       def deprecated_remove_association_relation(association_name)# :nodoc:
26         module_eval <<-"end_eval", __FILE__, __LINE__
27           def remove_#{association_name}(*items)
28             #{association_name}.delete(items)
29           end
30           deprecate :remove_#{association_name} => "use #{association_name}.delete instead"
31         end_eval
32       end
34       def deprecated_has_collection_method(collection_name)# :nodoc:
35         module_eval <<-"end_eval", __FILE__, __LINE__
36           def has_#{collection_name}?(force_reload = false)
37             !#{collection_name}(force_reload).empty?
38           end
39           deprecate :has_#{collection_name}? => "use !#{collection_name}.empty? instead"
40         end_eval
41       end
43       def deprecated_find_in_collection_method(collection_name)# :nodoc:
44         module_eval <<-"end_eval", __FILE__, __LINE__
45           def find_in_#{collection_name}(association_id)
46             #{collection_name}.find(association_id)
47           end
48           deprecate :find_in_#{collection_name} => "use #{collection_name}.find instead"
49         end_eval
50       end
52       def deprecated_collection_create_method(collection_name)# :nodoc:
53         module_eval <<-"end_eval", __FILE__, __LINE__
54           def create_in_#{collection_name}(attributes = {})
55             #{collection_name}.create(attributes)
56           end
57           deprecate :create_in_#{collection_name} => "use #{collection_name}.create instead"
58         end_eval
59       end
61       def deprecated_collection_build_method(collection_name)# :nodoc:
62         module_eval <<-"end_eval", __FILE__, __LINE__
63           def build_to_#{collection_name}(attributes = {})
64             #{collection_name}.build(attributes)
65           end
66           deprecate :build_to_#{collection_name} => "use #{collection_name}.build instead"
67         end_eval
68       end
70       def deprecated_association_comparison_method(association_name, association_class_name) # :nodoc:
71         module_eval <<-"end_eval", __FILE__, __LINE__
72           def #{association_name}?(comparison_object, force_reload = false)
73             if comparison_object.kind_of?(#{association_class_name})
74               #{association_name}(force_reload) == comparison_object
75             else
76               raise "Comparison object is a #{association_class_name}, should have been \#{comparison_object.class.name}"
77             end
78           end
79           deprecate :#{association_name}? => :==
80         end_eval
81       end
83       def deprecated_has_association_method(association_name) # :nodoc:
84         module_eval <<-"end_eval", __FILE__, __LINE__
85           def has_#{association_name}?(force_reload = false)
86             !#{association_name}(force_reload).nil?
87           end
88           deprecate :has_#{association_name}? => "use !#{association_name} insead"
89         end_eval
90       end
91     end
92   end
93 end