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:
parent
ce337d1757
commit
6c7e6abfaa
2 changed files with 41 additions and 37 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue