class Nocode::Util::Dictionary
A hash-like object which ensures all keys are strings.
Constants
- NEWLINE_CHAR
Attributes
values[R]
Public Class Methods
ensure(value)
click to toggle source
# File lib/nocode/util/dictionary.rb, line 12 def ensure(value) if value.is_a?(self) value else new(value) end end
new(values = {})
click to toggle source
# File lib/nocode/util/dictionary.rb, line 25 def initialize(values = {}) @values = {} (values || {}).each { |k, v| assign(k, v) } freeze end
Public Instance Methods
[](key)
click to toggle source
# File lib/nocode/util/dictionary.rb, line 41 def [](key) values[keyify(key)] end
[]=(key, value)
click to toggle source
# File lib/nocode/util/dictionary.rb, line 37 def []=(key, value) tap { values[keyify(key)] = value } end
delete(key)
click to toggle source
# File lib/nocode/util/dictionary.rb, line 33 def delete(key) tap { values.delete(keyify(key)) } end
dig(*keys)
click to toggle source
# File lib/nocode/util/dictionary.rb, line 45 def dig(*keys) top_level = keyify(keys.first) keys = [top_level] + keys[1..] values.dig(*keys) end
key?(key)
click to toggle source
# File lib/nocode/util/dictionary.rb, line 52 def key?(key) values.key?(keyify(key)) end
to_s()
click to toggle source
# File lib/nocode/util/dictionary.rb, line 56 def to_s values.map { |k, v| "#{k}: #{v}" }.join(NEWLINE_CHAR) end
Private Instance Methods
assign(key, value)
click to toggle source
# File lib/nocode/util/dictionary.rb, line 62 def assign(key, value) values[keyify(key)] = value end
keyify(value)
click to toggle source
# File lib/nocode/util/dictionary.rb, line 66 def keyify(value) value.to_s end