Class: ActiveAny::Relation::Merger
- Inherits:
-
Object
- Object
- ActiveAny::Relation::Merger
- Defined in:
- lib/active_any/relation/merger.rb
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.
29 30 31 32 33 |
# File 'lib/active_any/relation/merger.rb', line 29 def initialize(relation, other) @relation = relation @values = other.values @other = other end |
Instance Attribute Details
#other ⇒ Object (readonly)
Returns the value of attribute other.
27 28 29 |
# File 'lib/active_any/relation/merger.rb', line 27 def other @other end |
#relation ⇒ Object (readonly)
Returns the value of attribute relation.
27 28 29 |
# File 'lib/active_any/relation/merger.rb', line 27 def relation @relation end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
27 28 29 |
# File 'lib/active_any/relation/merger.rb', line 27 def values @values end |
Instance Method Details
#merge ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/active_any/relation/merger.rb', line 41 def merge normal_values.each do |name| value = values[name] relation.send("#{name}!", *value) unless value.nil? || (value.blank? && value != false) end merge_multi_values merge_single_values merge_clauses relation end |
#normal_values ⇒ Object
35 36 37 38 39 |
# File 'lib/active_any/relation/merger.rb', line 35 def normal_values Relation::VALUE_METHODS - Relation::CLAUSE_METHODS - i[includes preload joins order reverse_order lock create_with reordering] end |