Class: JsonInspector::Stack
- Inherits:
-
Object
- Object
- JsonInspector::Stack
- Defined in:
- lib/json_inspector/stack.rb
Instance Attribute Summary collapse
-
#doc ⇒ Object
readonly
Returns the value of attribute doc.
Instance Method Summary collapse
- #clear! ⇒ Object
- #current(keys = '') ⇒ Object
-
#initialize(doc) ⇒ Stack
constructor
A new instance of Stack.
- #path ⇒ Object
- #pop ⇒ Object
- #push(keys) ⇒ Object
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
#doc ⇒ Object (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 |
#path ⇒ Object
21 22 23 |
# File 'lib/json_inspector/stack.rb', line 21 def path @keys.join(?.) end |
#pop ⇒ Object
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 |