Class: Blumquist::JSONPointer

Inherits:
Object
  • Object
show all
Defined in:
lib/blumquist/json_pointer.rb

Constant Summary collapse

DOCUMENT_ROOT_IDENTIFIER =
'#'.freeze
DOCUMENT_ADDRESS_IDENTIFIER =
'.json'.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uri, document: nil) ⇒ JSONPointer

Returns a new instance of JSONPointer.



21
22
23
24
25
# File 'lib/blumquist/json_pointer.rb', line 21

def initialize(uri, document: nil)
  @uri = uri
  validate_uri!
  @document = document
end

Instance Attribute Details

#uriObject (readonly)

Returns the value of attribute uri.



19
20
21
# File 'lib/blumquist/json_pointer.rb', line 19

def uri
  @uri
end

Instance Method Details

#valueObject



27
28
29
30
31
32
33
# File 'lib/blumquist/json_pointer.rb', line 27

def value
  result = keys.any? ? document&.dig(*keys) : document

  raise(Errors::InvalidPointer, pointer: uri, document: document) if result.nil?

  result
end