class Hash
Public Instance Methods
compact()
click to toggle source
Intuitive, see the source.
# File lib/tengine/support/core_ext/hash/compact.rb, line 11 def compact dup.tap {|i| i.compact! } end
compact!()
click to toggle source
Destructive elimination of nil, like Array#compact!
# File lib/tengine/support/core_ext/hash/compact.rb, line 4 def compact! reject! do |k, v| v.nil? end end
deep_dup()
click to toggle source
Returns a deep copy of hash.
# File lib/tengine/support/core_ext/hash/deep_dup.rb, line 15 def deep_dup duplicate = self.dup duplicate.each_pair do |k,v| tv = duplicate[k] duplicate[k] = tv.respond_to?(:deep_dup) && v.respond_to?(:deep_dup) ? tv.deep_dup : v end duplicate end
deep_stringify_keys()
click to toggle source
Return a new hash with all keys converted to strings recursively.
# File lib/tengine/support/core_ext/hash/keys.rb, line 7 def deep_stringify_keys deep_dup.deep_stringify_keys! end
deep_stringify_keys!()
click to toggle source
Destructively convert all keys to strings recursively.
# File lib/tengine/support/core_ext/hash/keys.rb, line 12 def deep_stringify_keys! stringify_keys! # active_support/core_ext/hash/keysのメソッドをそのまま使う values.each do |value| if value.respond_to?(:deep_stringify_keys!) value.deep_stringify_keys! elsif value.respond_to?(:each) value.each{|v| v.deep_stringify_keys! if v.respond_to?(:deep_stringify_keys!)} end end self end
deep_symbolize_keys()
click to toggle source
Return a new hash with all keys converted to symbols recursively, as long as they respond to to_sym
.
# File lib/tengine/support/core_ext/hash/keys.rb, line 26 def deep_symbolize_keys deep_dup.deep_symbolize_keys! end
deep_symbolize_keys!()
click to toggle source
Destructively convert all keys to symbols recursively, as long as they respond to to_sym
.
# File lib/tengine/support/core_ext/hash/keys.rb, line 32 def deep_symbolize_keys! symbolize_keys! # active_support/core_ext/hash/keysのメソッドをそのまま使う values.each do |value| if value.respond_to?(:deep_symbolize_keys!) value.deep_symbolize_keys! elsif value.respond_to?(:each) value.each{|v| v.deep_symbolize_keys! if v.respond_to?(:deep_symbolize_keys!)} end end self end