aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Deisz <kevin.deisz@gmail.com>2018-05-31 21:15:51 -0400
committerKevin Deisz <kevin.deisz@gmail.com>2018-05-31 21:15:51 -0400
commit6c7e6abfaad149da02dbec4e4f2bd62c5d68805f (patch)
tree35ed52dac9696d7eecb0bdeb63e9dfe69f61e19d
parentce337d1757fdd01e5f496f741e33275a7440b9ac (diff)
downloadrails-6c7e6abfaad149da02dbec4e4f2bd62c5d68805f.tar.gz
rails-6c7e6abfaad149da02dbec4e4f2bd62c5d68805f.tar.bz2
rails-6c7e6abfaad149da02dbec4e4f2bd62c5d68805f.zip
Ensure reflection_class_for is private
-rw-r--r--activerecord/lib/active_record/reflection.rb51
-rw-r--r--activestorage/lib/active_storage/reflection.rb25
2 files changed, 40 insertions, 36 deletions
diff --git a/activerecord/lib/active_record/reflection.rb b/activerecord/lib/active_record/reflection.rb
index c47e0dc03c..6d2f75a3ae 100644
--- a/activerecord/lib/active_record/reflection.rb
+++ b/activerecord/lib/active_record/reflection.rb
@@ -13,34 +13,37 @@ module ActiveRecord
class_attribute :aggregate_reflections, instance_writer: false, default: {}
end
- def self.create(macro, name, scope, options, ar)
- reflection = reflection_class_for(macro).new(name, scope, options, ar)
- options[:through] ? ThroughReflection.new(reflection) : reflection
- end
+ class << self
+ def create(macro, name, scope, options, ar)
+ reflection = reflection_class_for(macro).new(name, scope, options, ar)
+ options[:through] ? ThroughReflection.new(reflection) : reflection
+ end
- def self.reflection_class_for(macro)
- case macro
- when :composed_of
- AggregateReflection
- when :has_many
- HasManyReflection
- when :has_one
- HasOneReflection
- when :belongs_to
- BelongsToReflection
- else
- raise "Unsupported Macro: #{macro}"
+ def add_reflection(ar, name, reflection)
+ ar.clear_reflections_cache
+ name = name.to_s
+ ar._reflections = ar._reflections.except(name).merge!(name => reflection)
end
- end
- def self.add_reflection(ar, name, reflection)
- ar.clear_reflections_cache
- name = name.to_s
- ar._reflections = ar._reflections.except(name).merge!(name => reflection)
- end
+ def add_aggregate_reflection(ar, name, reflection)
+ ar.aggregate_reflections = ar.aggregate_reflections.merge(name.to_s => reflection)
+ end
- def self.add_aggregate_reflection(ar, name, reflection)
- ar.aggregate_reflections = ar.aggregate_reflections.merge(name.to_s => reflection)
+ private
+ def reflection_class_for(macro)
+ case macro
+ when :composed_of
+ AggregateReflection
+ when :has_many
+ HasManyReflection
+ when :has_one
+ HasOneReflection
+ when :belongs_to
+ BelongsToReflection
+ else
+ raise "Unsupported Macro: #{macro}"
+ end
+ end
end
# \Reflection enables the ability to examine the associations and aggregations of
diff --git a/activestorage/lib/active_storage/reflection.rb b/activestorage/lib/active_storage/reflection.rb
index 9074b20126..04a1b20882 100644
--- a/activestorage/lib/active_storage/reflection.rb
+++ b/activestorage/lib/active_storage/reflection.rb
@@ -18,21 +18,22 @@ module ActiveStorage
end
end
- module ReflectionExtension
- def reflection_class_for(macro)
- case macro
- when :has_one_attached
- HasOneAttachedReflection
- when :has_many_attached
- HasManyAttachedReflection
- else
- super
- end
- end
-
+ module ReflectionExtension # :nodoc:
def add_attachment_reflection(ar, name, reflection)
ar.attachment_reflections.merge!(name.to_s => reflection)
end
+
+ private
+ def reflection_class_for(macro)
+ case macro
+ when :has_one_attached
+ HasOneAttachedReflection
+ when :has_many_attached
+ HasManyAttachedReflection
+ else
+ super
+ end
+ end
end
module ActiveRecordExtensions