Class: ActiveRecord::Relation::Merger
- Defined in:
- activerecord/lib/active_record/relation/merger.rb
Overview
:nodoc:
Constant Summary collapse
- NORMAL_VALUES =
Relation::SINGLE_VALUE_METHODS + Relation::MULTI_VALUE_METHODS - [:joins, :where, :order, :bind, :reverse_order, :lock, :create_with, :reordering, :from]
Instance Attribute Summary collapse
-
#other ⇒ Object
readonly
Returns the value of attribute other.
-
#relation ⇒ Object
readonly
Returns the value of attribute relation.
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Instance Method Summary collapse
-
#initialize(relation, other) ⇒ Merger
constructor
A new instance of Merger.
- #merge ⇒ Object
- #normal_values ⇒ Object
Constructor Details
#initialize(relation, other) ⇒ Merger
Returns a new instance of Merger.
44 45 46 47 48 |
# File 'activerecord/lib/active_record/relation/merger.rb', line 44 def initialize(relation, other) @relation = relation @values = other.values @other = other end |
Instance Attribute Details
#other ⇒ Object (readonly)
Returns the value of attribute other
42 43 44 |
# File 'activerecord/lib/active_record/relation/merger.rb', line 42 def other @other end |
#relation ⇒ Object (readonly)
Returns the value of attribute relation
42 43 44 |
# File 'activerecord/lib/active_record/relation/merger.rb', line 42 def relation @relation end |
#values ⇒ Object (readonly)
Returns the value of attribute values
42 43 44 |
# File 'activerecord/lib/active_record/relation/merger.rb', line 42 def values @values end |
Instance Method Details
#merge ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'activerecord/lib/active_record/relation/merger.rb', line 58 def merge normal_values.each do |name| value = values[name] relation.send("#{name}!", *value) unless value.blank? end merge_multi_values merge_single_values merge_joins relation end |
#normal_values ⇒ Object
54 55 56 |
# File 'activerecord/lib/active_record/relation/merger.rb', line 54 def normal_values NORMAL_VALUES end |