Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #16351 from eileencodes/finish-refactoring-macro-t…

…o-eliminate-checking-against-symbols

Redefine macro checks for reflections
  • Loading branch information...
commit 84093c662770893ad840c36f2b99204593d4a7de 2 parents dccdee7 + 8d7dea7
@rafaelfranca rafaelfranca authored
View
2  activerecord/lib/active_record/associations/has_many_association.rb
@@ -124,7 +124,7 @@ def inverse_updates_counter_cache?(reflection = reflection())
def inverse_updates_counter_named?(counter_name, reflection = reflection())
reflection.klass._reflections.values.any? { |inverse_reflection|
- :belongs_to == inverse_reflection.macro &&
+ inverse_reflection.belongs_to? &&
inverse_reflection.counter_cache_column == counter_name
}
end
View
2  activerecord/lib/active_record/counter_cache.rb
@@ -34,7 +34,7 @@ def reset_counters(id, *counters)
foreign_key = has_many_association.foreign_key.to_s
child_class = has_many_association.klass
- reflection = child_class._reflections.values.find { |e| :belongs_to == e.macro && e.foreign_key.to_s == foreign_key && e.options[:counter_cache].present? }
+ reflection = child_class._reflections.values.find { |e| e.belongs_to? && e.foreign_key.to_s == foreign_key && e.options[:counter_cache].present? }
counter_name = reflection.counter_cache_column
stmt = unscoped.where(arel_table[primary_key].eq(object.id)).arel.compile_update({
View
16 activerecord/lib/active_record/reflection.rb
@@ -431,14 +431,10 @@ def validate?
end
# Returns +true+ if +self+ is a +belongs_to+ reflection.
- def belongs_to?
- macro == :belongs_to
- end
+ def belongs_to?; false; end
# Returns +true+ if +self+ is a +has_one+ reflection.
- def has_one?
- macro == :has_one
- end
+ def has_one?; false; end
def association_class
case macro
@@ -585,9 +581,7 @@ def initialize(name, scope, options, active_record)
def macro; :has_many; end
- def collection?
- true
- end
+ def collection?; true; end
end
class HasOneReflection < AssociationReflection #:nodoc:
@@ -596,6 +590,8 @@ def initialize(name, scope, options, active_record)
end
def macro; :has_one; end
+
+ def has_one?; true; end
end
class BelongsToReflection < AssociationReflection #:nodoc:
@@ -604,6 +600,8 @@ def initialize(name, scope, options, active_record)
end
def macro; :belongs_to; end
+
+ def belongs_to?; true; end
end
class HasAndBelongsToManyReflection < AssociationReflection #:nodoc:
Please sign in to comment.
Something went wrong with that request. Please try again.