Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/makeloc/core_extensions.rb
Instance Method Summary collapse
- #at(path) ⇒ Object
- #flatten_keys(prefix = "") ⇒ Object
- #parse(only_leaves = false, &block) ⇒ Object
- #parse_leaves(&block) ⇒ Object
- #update_leaves!(&block) ⇒ Object
Instance Method Details
#at(path) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/makeloc/core_extensions.rb', line 40 def at(path) array_path = path.to_s.split('.') current_key = array_path.shift if array_path.empty? self[current_key] else self[current_key].at(array_path.join('.')) end end |
#flatten_keys(prefix = "") ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 |
# File 'lib/makeloc/core_extensions.rb', line 2 def flatten_keys(prefix="") keys = [] self.keys.each do |key| keys << if self[key].is_a? Hash current_prefix = prefix + "#{key}." self[key].flatten_keys(current_prefix) else "#{prefix}#{key}" end end prefix == "" ? keys.flatten : keys end |
#parse(only_leaves = false, &block) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/makeloc/core_extensions.rb', line 15 def parse(only_leaves = false, &block) each do |k,v| if v.is_a? Hash yield(k,v) unless only_leaves v.parse(only_leaves,&block) else yield(k,v) end end end |
#parse_leaves(&block) ⇒ Object
26 27 28 |
# File 'lib/makeloc/core_extensions.rb', line 26 def parse_leaves(&block) parse(only_leaves = true, &block) end |
#update_leaves!(&block) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/makeloc/core_extensions.rb', line 30 def update_leaves!(&block) each do |k,v| if v.is_a? Hash v.update_leaves!(&block) else self[k] = yield(k,v) end end end |