Class: Depth::Traverser

Inherits:
Struct
  • Object
show all
Defined in:
lib/depth/traverser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#objectObject

Returns the value of attribute object

Returns:

  • (Object)

    the current value of object



2
3
4
# File 'lib/depth/traverser.rb', line 2

def object
  @object
end

Instance Method Details

#array?Boolean

Returns:

  • (Boolean)


3
4
5
# File 'lib/depth/traverser.rb', line 3

def array?
  object.is_a?(Array)
end

#hash?Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/depth/traverser.rb', line 7

def hash?
  object.is_a?(Hash)
end

#next(key_or_index) ⇒ Object



11
12
13
14
# File 'lib/depth/traverser.rb', line 11

def next(key_or_index)
  return Traverser.new(nil) if object.nil? 
  Traverser.new(object[key_or_index])
end

#next_or_create(key_or_index, &block) ⇒ Object



16
17
18
19
20
# File 'lib/depth/traverser.rb', line 16

def next_or_create(key_or_index, &block)
  return Traverser.new(nil) if object.nil? 
  object[key_or_index] = block.call if object[key_or_index].nil?
  Traverser.new(object[key_or_index])
end