Class: Odin::Types::OrderedMap

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/odin/types/ordered_map.rb

Instance Method Summary collapse

Constructor Details

#initialize(hash = {}) ⇒ OrderedMap

Returns a new instance of OrderedMap.



8
9
10
# File 'lib/odin/types/ordered_map.rb', line 8

def initialize(hash = {})
  @store = hash.dup
end

Instance Method Details

#==(other) ⇒ Object



55
56
57
58
59
60
61
# File 'lib/odin/types/ordered_map.rb', line 55

def ==(other)
  case other
  when OrderedMap then @store == other.to_h
  when Hash then @store == other
  else false
  end
end

#[](key) ⇒ Object



12
13
14
# File 'lib/odin/types/ordered_map.rb', line 12

def [](key)
  @store[key]
end

#[]=(key, value) ⇒ Object



16
17
18
# File 'lib/odin/types/ordered_map.rb', line 16

def []=(key, value)
  @store[key] = value
end

#delete(key) ⇒ Object



20
21
22
# File 'lib/odin/types/ordered_map.rb', line 20

def delete(key)
  @store.delete(key)
end

#dupObject



68
69
70
# File 'lib/odin/types/ordered_map.rb', line 68

def dup
  self.class.new(@store)
end

#each(&block) ⇒ Object



47
48
49
# File 'lib/odin/types/ordered_map.rb', line 47

def each(&block)
  @store.each(&block)
end

#empty?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/odin/types/ordered_map.rb', line 43

def empty?
  @store.empty?
end

#freezeObject



63
64
65
66
# File 'lib/odin/types/ordered_map.rb', line 63

def freeze
  @store.freeze
  super
end

#key?(key) ⇒ Boolean Also known as: has_key?, include?

Returns:

  • (Boolean)


24
25
26
# File 'lib/odin/types/ordered_map.rb', line 24

def key?(key)
  @store.key?(key)
end

#keysObject



30
31
32
# File 'lib/odin/types/ordered_map.rb', line 30

def keys
  @store.keys
end

#merge(other_hash) ⇒ Object



72
73
74
75
76
# File 'lib/odin/types/ordered_map.rb', line 72

def merge(other_hash)
  result = dup
  other_hash.each { |k, v| result[k] = v }
  result
end

#sizeObject Also known as: length



38
39
40
# File 'lib/odin/types/ordered_map.rb', line 38

def size
  @store.size
end

#to_hObject



51
52
53
# File 'lib/odin/types/ordered_map.rb', line 51

def to_h
  @store.dup
end

#valuesObject



34
35
36
# File 'lib/odin/types/ordered_map.rb', line 34

def values
  @store.values
end