Class: Twig::Runtime::EnumerableHash

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/twig/runtime/enumerable_hash.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(wrapped) ⇒ EnumerableHash

Returns a new instance of EnumerableHash.



22
23
24
# File 'lib/twig/runtime/enumerable_hash.rb', line 22

def initialize(wrapped)
  @wrapped = wrapped
end

Class Method Details

.from(object) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/twig/runtime/enumerable_hash.rb', line 12

def self.from(object)
  if object.is_a?(Array)
    new(AutoHash.new.add(*object))
  elsif object.is_a?(Hash)
    new(object.to_h)
  else
    new(object)
  end
end

Instance Method Details

#eachObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/twig/runtime/enumerable_hash.rb', line 26

def each(...)
  key = 0
  @wrapped&.each do |k, v = MISSING_KEY| # rubocop:disable Style/HashEachMethods
    if v == MISSING_KEY
      yield(key, k)
      key += 1
    else
      yield(k, v)
    end
  end
end

#filterObject



46
47
48
# File 'lib/twig/runtime/enumerable_hash.rb', line 46

def filter
  self.class.new(super)
end

#keysObject



42
43
44
# File 'lib/twig/runtime/enumerable_hash.rb', line 42

def keys
  collect { |k, _| k }
end

#valuesObject



38
39
40
# File 'lib/twig/runtime/enumerable_hash.rb', line 38

def values
  collect { |_, v| v }
end