Class: Levels::KeyValues
- Inherits:
-
Object
- Object
- Levels::KeyValues
- Includes:
- Enumerable
- Defined in:
- lib/levels/key_values.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #each(&block) ⇒ Object
- #eql?(other) ⇒ Boolean (also: #==)
- #hash ⇒ Object
-
#initialize(data = nil) ⇒ KeyValues
constructor
A new instance of KeyValues.
- #inspect ⇒ Object (also: #to_s)
- #Key(key) ⇒ Object
- #key?(key) ⇒ Boolean
- #pair(key) ⇒ Object
Constructor Details
#initialize(data = nil) ⇒ KeyValues
Returns a new instance of KeyValues.
13 14 15 16 |
# File 'lib/levels/key_values.rb', line 13 def initialize(data = nil) @hash = {} data.each { |k, v| self[k] = v } if data end |
Instance Method Details
#[](key) ⇒ Object
18 19 20 |
# File 'lib/levels/key_values.rb', line 18 def [](key) @hash[Key(key)] end |
#[]=(key, value) ⇒ Object
26 27 28 |
# File 'lib/levels/key_values.rb', line 26 def []=(key, value) @hash[Key(key)] = value end |
#each(&block) ⇒ Object
34 35 36 |
# File 'lib/levels/key_values.rb', line 34 def each(&block) @hash.each(&block) end |
#eql?(other) ⇒ Boolean Also known as: ==
38 39 40 |
# File 'lib/levels/key_values.rb', line 38 def eql?(other) self.class == other.class && @hash.eql?(other.instance_variable_get(:@hash)) end |
#hash ⇒ Object
44 45 46 |
# File 'lib/levels/key_values.rb', line 44 def hash self.class.hash ^ @hash.hash end |
#inspect ⇒ Object Also known as: to_s
48 49 50 |
# File 'lib/levels/key_values.rb', line 48 def inspect "<Levels::KeyValues>" end |
#Key(key) ⇒ Object
4 5 6 7 8 9 |
# File 'lib/levels/key_values.rb', line 4 def Key(key) case key when Levels::Key then key else Levels::Key.new(key) end end |
#key?(key) ⇒ Boolean
30 31 32 |
# File 'lib/levels/key_values.rb', line 30 def key?(key) @hash.key?(Key(key)) end |
#pair(key) ⇒ Object
22 23 24 |
# File 'lib/levels/key_values.rb', line 22 def pair(key) return Key(key), self[key] end |