1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Ensure reflection_class_for is private

This commit is contained in:
Kevin Deisz 2018-05-31 21:15:51 -04:00
parent ce337d1757
commit 6c7e6abfaa
No known key found for this signature in database
GPG key ID: D78C2D8FB232C59C
2 changed files with 41 additions and 37 deletions

View file

@ -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
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}"
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
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_reflection(ar, name, reflection)
ar.clear_reflections_cache
name = name.to_s
ar._reflections = ar._reflections.except(name).merge!(name => reflection)
end
def self.add_aggregate_reflection(ar, name, reflection)
ar.aggregate_reflections = ar.aggregate_reflections.merge(name.to_s => reflection)
def add_aggregate_reflection(ar, name, reflection)
ar.aggregate_reflections = ar.aggregate_reflections.merge(name.to_s => reflection)
end
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

View file

@ -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