Class: Hash
Instance Method Summary collapse
-
#map_keys(&block) ⇒ Object
Returns a new hash which is a copy of the current hash but each key is replaced by the result of running it through
block. -
#map_keys!(&block) ⇒ Object
Replaces the keys in
hshby running them each throughblock. -
#map_pairs(&block) ⇒ Object
Returns a new hash which is a copy of the current hash but each key-value pair is replaced by the result of running it through
block. -
#map_pairs!(&block) ⇒ Object
Replaces the values in
hshby running them each throughblock. -
#map_values(&block) ⇒ Object
Returns a new hash which is a copy of the current hash but each value is replaced by the result of running it through
block. -
#map_values!(&block) ⇒ Object
Replaces the values in
hshby running them each throughblock. -
#to_b ⇒ Object
Converts hsh to a boolean.
Instance Method Details
#map_keys(&block) ⇒ Object
Returns a new hash which is a copy of the current hash but each key is replaced by the result of running it through block.
If block returns duplicate keys, they will be overwritten in the resulting hash.
{'a'=>1, 'b'=>2}.map_keys { |k| k*2 } #=> {'aa'=>1, 'bb'=>2}
{'a'=>1, 'b'=>2}.map_keys { "cat" } #=> {'cat'=>2}
37 38 39 40 41 42 43 |
# File 'lib/mug/hashmap.rb', line 37 def map_keys &block # :yields: key hsh = {} each do |k, v| hsh[ yield k ] = v end hsh end |
#map_keys!(&block) ⇒ Object
Replaces the keys in hsh by running them each through block.
If block returns duplicate keys, they will be overwritten in turn.
See: #map_keys
52 53 54 |
# File 'lib/mug/hashmap.rb', line 52 def map_keys! &block # :yields: key replace map_keys(&block) end |
#map_pairs(&block) ⇒ Object
Returns a new hash which is a copy of the current hash but each key-value pair is replaced by the result of running it through block.
If block returns duplicate keys, they will be overwritten in the resulting hash.
{'a'=>1, 'b'=>2}.map_pairs { |k,v| [k*2, v+1] } #=> {'aa'=>2, 'bb'=>3}
{'a'=>1, 'b'=>2}.map_pairs { ["cat","dog"] } #=> {'cat'=>'dog'}
66 67 68 69 70 71 72 73 |
# File 'lib/mug/hashmap.rb', line 66 def map_pairs &block # :yields: key, value hsh = {} each do |k, v| a, b = yield k, v hsh[a] = b end hsh end |
#map_pairs!(&block) ⇒ Object
Replaces the values in hsh by running them each through block.
See: #map_values
80 81 82 |
# File 'lib/mug/hashmap.rb', line 80 def map_pairs! &block # :yields: key, value replace map_pairs(&block) end |
#map_values(&block) ⇒ Object
Returns a new hash which is a copy of the current hash but each value is replaced by the result of running it through block.
{'a'=>1, 'b'=>2}.map_values { |v| v*2 } #=> {'a'=>2, 'b'=>4}
{'a'=>1, 'b'=>2}.map_values { "cat" } #=> {'a'=>"cat", 'b'=>"cat"}
10 11 12 13 14 15 16 |
# File 'lib/mug/hashmap.rb', line 10 def map_values &block # :yields: value hsh = {} each do |k, v| hsh[k] = yield v end hsh end |
#map_values!(&block) ⇒ Object
Replaces the values in hsh by running them each through block.
See: #map_values
23 24 25 |
# File 'lib/mug/hashmap.rb', line 23 def map_values! &block # :yields: value replace map_values(&block) end |
#to_b ⇒ Object
Converts hsh to a boolean. Returns true if not empty.
76 77 78 |
# File 'lib/mug/bool.rb', line 76 def to_b !empty? end |