Class: Hash
Instance Method Summary collapse
- #assert_valid_keys(*valid_keys) ⇒ Object
- #deep_symbolize_keys ⇒ Object
- #deep_symbolize_keys! ⇒ Object
- #deep_transform_keys(&block) ⇒ Object
- #deep_transform_keys!(&block) ⇒ Object
- #reverse_merge(other_hash) ⇒ Object
- #reverse_merge!(other_hash) ⇒ Object
- #symbolize_keys ⇒ Object
- #symbolize_keys! ⇒ Object
- #transform_keys ⇒ Object
- #transform_keys! ⇒ Object
Instance Method Details
#assert_valid_keys(*valid_keys) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/core_ext/hash.rb', line 34 def assert_valid_keys(*valid_keys) valid_keys.flatten! each_key do |k| raise ArgumentError.new("Unknown key: #{k}") unless valid_keys.include?(k) end end |
#deep_symbolize_keys ⇒ Object
50 51 52 |
# File 'lib/core_ext/hash.rb', line 50 def deep_symbolize_keys deep_transform_keys { |key| key.to_sym rescue key } end |
#deep_symbolize_keys! ⇒ Object
54 55 56 |
# File 'lib/core_ext/hash.rb', line 54 def deep_symbolize_keys! deep_transform_keys! { |key| key.to_sym rescue key } end |
#deep_transform_keys(&block) ⇒ Object
42 43 44 |
# File 'lib/core_ext/hash.rb', line 42 def deep_transform_keys(&block) deep_transform_keys_in_object(self, &block) end |
#deep_transform_keys!(&block) ⇒ Object
46 47 48 |
# File 'lib/core_ext/hash.rb', line 46 def deep_transform_keys!(&block) deep_transform_keys_in_object!(self, &block) end |
#reverse_merge(other_hash) ⇒ Object
2 3 4 |
# File 'lib/core_ext/hash.rb', line 2 def reverse_merge(other_hash) other_hash.merge(self) end |
#reverse_merge!(other_hash) ⇒ Object
6 7 8 |
# File 'lib/core_ext/hash.rb', line 6 def reverse_merge!(other_hash) merge!(other_hash) { |key, left, right| left } end |
#symbolize_keys ⇒ Object
26 27 28 |
# File 'lib/core_ext/hash.rb', line 26 def symbolize_keys transform_keys { |key| key.to_sym rescue key } end |
#symbolize_keys! ⇒ Object
30 31 32 |
# File 'lib/core_ext/hash.rb', line 30 def symbolize_keys! transform_keys! { |key| key.to_sym rescue key } end |
#transform_keys ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/core_ext/hash.rb', line 10 def transform_keys {}.tap do |result| each_key do |key| result[yield(key)] = self[key] end end end |
#transform_keys! ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/core_ext/hash.rb', line 18 def transform_keys! keys.each do |key| self[yield(key)] = delete(key) end self end |