Module: Mongoid::Criteria::Queryable::Extensions::Hash
- Defined in:
- lib/mongoid/criteria/queryable/extensions/hash.rb
Overview
This module contains additional hash behavior.
Instance Method Summary collapse
-
#__add__(object) ⇒ Hash
Add an object to a hash using the merge strategies.
-
#__add_from_array__(array) ⇒ Hash
Merge this hash into the provided array.
-
#__deep_copy__ ⇒ Hash
Make a deep copy of this hash.
-
#__expand_complex__ ⇒ Hash
Get the object as expanded.
-
#__intersect__(object) ⇒ Hash
Add an object to a hash using the merge strategies.
-
#__intersect_from_array__(array) ⇒ Hash
Merge this hash into the provided array.
-
#__intersect_from_object__(object) ⇒ Hash
Merge this hash into the provided object.
-
#__sort_option__ ⇒ Hash
Get the hash as a sort option.
-
#__union__(object) ⇒ Hash
Add an object to a hash using the merge strategies.
-
#__union_from_object__(object) ⇒ Hash
Merge this hash into the provided object.
-
#update_values(&block) ⇒ Hash
Update all the values in the hash with the provided block.
Instance Method Details
#__add__(object) ⇒ Hash
Add an object to a hash using the merge strategies.
22 23 24 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 22 def __add__(object) apply_strategy(:__add__, object) end |
#__add_from_array__(array) ⇒ Hash
Merge this hash into the provided array.
36 37 38 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 36 def __add_from_array__(array) { keys.first => array.__add__(values.first) } end |
#__deep_copy__ ⇒ Hash
Make a deep copy of this hash.
118 119 120 121 122 123 124 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 118 def __deep_copy__ {}.tap do |copy| each_pair do |key, value| copy.store(key, value.__deep_copy__) end end end |
#__expand_complex__ ⇒ Hash
Get the object as expanded.
150 151 152 153 154 155 156 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 150 def replacement = {} each_pair do |key, value| replacement.merge!(key.__expr_part__(value.)) end replacement end |
#__intersect__(object) ⇒ Hash
Add an object to a hash using the merge strategies.
50 51 52 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 50 def __intersect__(object) apply_strategy(:__intersect__, object) end |
#__intersect_from_array__(array) ⇒ Hash
Merge this hash into the provided array.
64 65 66 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 64 def __intersect_from_array__(array) { keys.first => array.__intersect__(values.first) } end |
#__intersect_from_object__(object) ⇒ Hash
Merge this hash into the provided object.
78 79 80 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 78 def __intersect_from_object__(object) { keys.first => object.__intersect__(values.first) } end |
#__sort_option__ ⇒ Hash
Get the hash as a sort option.
134 135 136 137 138 139 140 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 134 def __sort_option__ tap do |hash| hash.each_pair do |key, value| hash.store(key, value.to_direction) end end end |
#__union__(object) ⇒ Hash
Add an object to a hash using the merge strategies.
92 93 94 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 92 def __union__(object) apply_strategy(:__union__, object) end |
#__union_from_object__(object) ⇒ Hash
Merge this hash into the provided object.
106 107 108 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 106 def __union_from_object__(object) { keys.first => object.__union__(values.first) } end |
#update_values(&block) ⇒ Hash
Update all the values in the hash with the provided block.
168 169 170 171 172 |
# File 'lib/mongoid/criteria/queryable/extensions/hash.rb', line 168 def update_values(&block) each_pair do |key, value| store(key, block[value]) end end |