Class: JsonInspector::Stack

Inherits:
Object
  • Object
show all
Defined in:
lib/json_inspector/stack.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(doc) ⇒ Stack

Returns a new instance of Stack.



5
6
7
8
9
10
# File 'lib/json_inspector/stack.rb', line 5

def initialize(doc)
  @doc  = doc
  @keys = []
  @doc.extend(Hashie::Extensions::DeepFind)
  @doc.extend(Hashie::Extensions::DeepFetch)
end

Instance Attribute Details

#docObject (readonly)

Returns the value of attribute doc.



3
4
5
# File 'lib/json_inspector/stack.rb', line 3

def doc
  @doc
end

Instance Method Details

#clear!Object



25
26
27
# File 'lib/json_inspector/stack.rb', line 25

def clear!
  @keys = []
end

#current(keys = '') ⇒ Object



29
30
31
32
# File 'lib/json_inspector/stack.rb', line 29

def current(keys = '')
  keys = @keys + keys.split(?.)
  @doc.deep_fetch(*keys) { nil }
end

#pathObject



21
22
23
# File 'lib/json_inspector/stack.rb', line 21

def path
  @keys.join(?.)
end

#popObject



17
18
19
# File 'lib/json_inspector/stack.rb', line 17

def pop
  @keys.pop
end

#push(keys) ⇒ Object



12
13
14
15
# File 'lib/json_inspector/stack.rb', line 12

def push(keys)
  keys = keys.split(?.)
  @keys += keys
end