Sha256: 05c84459754a3f05b0cd0485bb3ba9f740c286245560027c22143b6ca9d15da3
Contents?: true
Size: 1.26 KB
Versions: 11
Compression:
Stored size: 1.26 KB
Contents
class Hash unless ({}.transform_keys(:x => 1) rescue false) require 'backports/2.5.0/hash/transform_keys' require 'backports/tools/alias_method_chain' def transform_keys_with_hash_arg(hash = not_given = true, &block) return to_enum(:transform_keys) { size } if not_given && !block return transform_keys_without_hash_arg(&block) if not_given h = {} if block_given? each do |key, value| h[hash.fetch(key) { yield key }] = value end else each do |key, value| h[hash.fetch(key, key)] = value end end h end Backports.alias_method_chain self, :transform_keys, :hash_arg def transform_keys_with_hash_arg!(hash = not_given = true, &block) return enum_for(:transform_keys!) { size } if not_given && !block return transform_keys_without_hash_arg!(&block) if not_given h = {} begin if block_given? each do |key, value| h[hash.fetch(key) { yield key }] = value end else each do |key, value| h[hash.fetch(key, key)] = value end end ensure replace(h) end self end Backports.alias_method_chain self, :transform_keys!, :hash_arg end end
Version data entries
11 entries across 11 versions & 1 rubygems