class Hash
Monkey patches for the ruby Hash
Public Instance Methods
Source
# File lib/sidekiq_unique_jobs/core_ext.rb, line 30 def deep_stringify_keys deep_transform_keys(&:to_s) end
Depp converts all keys to string
@return [Hash<String>]
Source
# File lib/sidekiq_unique_jobs/core_ext.rb, line 42 def deep_transform_keys(&block) _deep_transform_keys_in_object(self, &block) end
Deep transfor all keys by yielding to the caller
@return [Hash<String>]
Source
# File lib/sidekiq_unique_jobs/core_ext.rb, line 17 def slice(*keys) keys.map! { |key| convert_key(key) } if respond_to?(:convert_key, true) keys.each_with_object(self.class.new) { |k, hash| hash[k] = self[k] if key?(k) } end
Returns only the matching keys in a new hash
@param [Array<String>, Array
<Symbol>] keys the keys to match
@return [Hash]
Source
# File lib/sidekiq_unique_jobs/core_ext.rb, line 83 def slice!(*keys) keys.map! { |key| convert_key(key) } if respond_to?(:convert_key, true) omit = slice(*self.keys - keys) hash = slice(*keys) hash.default = default hash.default_proc = default_proc if default_proc replace(hash) omit end
Removes all keys not provided from the current hash and returns it
@param [Array<String>, Array
<Symbol>] keys the keys to match
@return [Hash]
Source
# File lib/sidekiq_unique_jobs/core_ext.rb, line 54 def stringify_keys transform_keys(&:to_s) end
Converts all keys to string
@return [Hash<String>]
Source
# File lib/sidekiq_unique_jobs/core_ext.rb, line 66 def transform_keys result = {} each_key do |key| result[yield(key)] = self[key] end result end
Transforms all keys by yielding to the caller
@return [Hash]
Private Instance Methods
Source
# File lib/sidekiq_unique_jobs/core_ext.rb, line 98 def _deep_transform_keys_in_object(object, &block) case object when Hash object.each_with_object(self.class.new) do |(key, value), result| result[yield(key)] = _deep_transform_keys_in_object(value, &block) end when Array object.map { |element| _deep_transform_keys_in_object(element, &block) } else object end end
support methods for deep transforming nested hashes and arrays