Class: Text::Gen::Meta
- Inherits:
-
Object
- Object
- Text::Gen::Meta
- Defined in:
- lib/text/gen/meta.rb
Class Method Summary collapse
Class Method Details
.append_kv(hsh, key, val) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/text/gen/meta.rb', line 18 def append_kv(hsh, key, val) key = key.to_s.downcase arr = val.is_a?(Array) ? val : Array(val) hsh[key] = hsh.key?(key) ? (hsh[key] + arr).uniq : arr.dup hsh end |
.clear_kv(hsh, key, val) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/text/gen/meta.rb', line 25 def clear_kv(hsh, key, val) return {} if key == "*" && val == "*" new_hsh = {} if key == "*" hsh.each_key { |k| new_hsh[k] = hsh[k].dup.reject { |v| v == val } } elsif val == "*" hsh.each_key { |k| new_hsh[k] = hsh[k].dup unless k == key } else hsh.each_key do |k| if hsh.key?(k) new_hsh[k] = k == key ? hsh[k].select { |v| v != val } : hsh[k].dup end end end new_hsh end |
.merge_meta(lhs, rhs) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/text/gen/meta.rb', line 7 def (lhs, rhs) return {} unless lhs && rhs return lhs.dup if rhs.empty? return rhs.dup if lhs.empty? hsh = {} lhs.each { |k, v| append_kv(hsh, k, v) } rhs.each { |k, v| append_kv(hsh, k, v) } hsh end |