Class: Hash
- Defined in:
- lib/riak/core_ext/blank.rb,
lib/riak/core_ext/slice.rb,
lib/riak/core_ext/deep_dup.rb,
lib/riak/core_ext/to_param.rb,
lib/riak/core_ext/stringify_keys.rb,
lib/riak/core_ext/symbolize_keys.rb
Instance Method Summary collapse
-
#deep_dup ⇒ Object
Returns a deep copy of hash.
- #slice(*keys) ⇒ Object
- #slice!(*keys) ⇒ Object
- #stringify_keys ⇒ Object
- #symbolize_keys ⇒ Object
- #to_param(namespace = nil) ⇒ Object
Instance Method Details
#deep_dup ⇒ Object
Returns a deep copy of hash.
18 19 20 21 22 23 24 25 |
# File 'lib/riak/core_ext/deep_dup.rb', line 18 def deep_dup duplicate = self.dup duplicate.each_pair do |k, v| tv = duplicate[k] duplicate[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_dup : v end duplicate end |
#slice(*keys) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/riak/core_ext/slice.rb', line 17 def slice(*keys) allowed = Set.new(respond_to?(:convert_key) ? keys.map { |key| convert_key(key) } : keys) hash = {} allowed.each { |k| hash[k] = self[k] if has_key?(k) } hash end |
#slice!(*keys) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/riak/core_ext/slice.rb', line 24 def slice!(*keys) keys = keys.map! { |key| convert_key(key) } if respond_to?(:convert_key) omit = slice(*self.keys - keys) hash = slice(*keys) replace(hash) omit end |
#stringify_keys ⇒ Object
17 18 19 20 21 22 |
# File 'lib/riak/core_ext/stringify_keys.rb', line 17 def stringify_keys inject({}) do |hash, pair| hash[pair[0].to_s] = pair[1] hash end end |
#symbolize_keys ⇒ Object
17 18 19 20 21 22 |
# File 'lib/riak/core_ext/symbolize_keys.rb', line 17 def symbolize_keys inject({}) do |hash, pair| hash[pair[0].to_sym] = pair[1] hash end end |
#to_param(namespace = nil) ⇒ Object
39 40 41 42 43 |
# File 'lib/riak/core_ext/to_param.rb', line 39 def to_param(namespace = nil) collect do |key, value| value.to_query(namespace ? "#{namespace}[#{key}]" : key) end.sort * '&' end |