class HashWithIndifferentAccess
Public Instance Methods
&(keys)
click to toggle source
# File lib/invoca/utils/hash_with_indifferent_access.rb, line 16 def &(keys) res = HashWithIndifferentAccess.new keys.each do |k| k = k.to_s if k.is_a?(Symbol) res[k] = self[k] if has_key?(k) end res end
-(keys)
click to toggle source
rubocop:disable Naming/BinaryOperatorParameterName
# File lib/invoca/utils/hash_with_indifferent_access.rb, line 9 def -(keys) res = HashWithIndifferentAccess.new keys = keys.map { |k| k.is_a?(Symbol) ? k.to_s : k } each_pair { |k, v| res[k] = v unless k.in?(keys) } res end
partition_hash(keys = nil) { |k, v| ... }
click to toggle source
rubocop:enable Naming/BinaryOperatorParameterName
# File lib/invoca/utils/hash_with_indifferent_access.rb, line 26 def partition_hash(keys = nil) keys = keys&.map { |k| k.is_a?(Symbol) ? k.to_s : k } yes = HashWithIndifferentAccess.new no = HashWithIndifferentAccess.new each do |k, v| if block_given? ? yield(k, v) : keys.include?(k) yes[k] = v else no[k] = v end end [yes, no] end