Sha256: 88ac16ba5fb4ccc5ff669adc8dc8be354a4729da2a5608d6fd676470fd5608fc
Contents?: true
Size: 1.35 KB
Versions: 3
Compression:
Stored size: 1.35 KB
Contents
class Hash # File activesupport/lib/active_support/core_ext/hash/keys.rb # # hash = { name: 'Rob', age: '28' } # hash.transform_keys{ |key| key.to_s.upcase } # => { "NAME" => "Rob", "AGE" => "28" } def transform_keys result = {} each_key do |key| result[yield(key)] = self[key] end result end def transform_keys!(&block) keys.each do |key| value = delete(key) self[yield(key)] = value.is_a?(Hash) ? value.transform_keys!(&block) : value end self end # hash = { 'name' => 'Rob', 'age' => '28' } # hash.symbolize_keys # => { name: "Rob", age: "28" } def symbolize_keys transform_keys { |key| key.to_sym rescue key } end # File activesupport/lib/active_support/core_ext/hash/keys.rb, line 135 def symbolize_keys! transform_keys! { |key| key.to_sym rescue key } end # Merges the caller into +other_hash+. For example, # # options = options.reverse_merge(size: 25, velocity: 10) # # is equivalent to # # options = { size: 25, velocity: 10 }.merge(options) # # This is particularly useful for initializing an options hash # with default values. def reverse_merge(other_hash) other_hash.merge(self) end # Destructive +reverse_merge+. def reverse_merge!(other_hash) # right wins if there is no left merge!(other_hash) { |key, left, right| left } end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ebooks_renamer-0.1.3 | lib/ebooks_renamer/core_ext/hash/keys.rb |
ebooks_renamer-0.1.2 | lib/ebooks_renamer/core_ext/hash/keys.rb |
ebooks_renamer-0.1.1 | lib/ebooks_renamer/core_ext/hash/keys.rb |