lib/openapi3_parser/node/array.rb in openapi3_parser-0.4.0 vs lib/openapi3_parser/node/array.rb in openapi3_parser-0.5.0
- old
+ new
@@ -1,7 +1,9 @@
# frozen_string_literal: true
+require "forwardable"
+
require "openapi3_parser/node/map"
module Openapi3Parser
module Node
# An array within a OpenAPI document.
@@ -9,26 +11,34 @@
# the context of where it sits in an OpenAPI document
#
# The contents of the data will be dependent on where this document is in
# the document hierachy.
class Array
+ extend Forwardable
include Enumerable
+ def_delegators :node_data, :each, :[], :empty?
attr_reader :node_data, :node_context
# @param [::Array] data data used to populate this node
# @param [Context] context The context of this node in the document
def initialize(data, context)
@node_data = data
@node_context = context
end
- def [](value)
- node_data[value]
+ # Used to access a node relative to this node
+ # @param [Context::Pointer, ::Array, ::String] pointer_like
+ # @return anything
+ def node_at(pointer_like)
+ current_pointer = node_context.document_location.pointer
+ node_context.document.node_at(pointer_like, current_pointer)
end
- def each(&block)
- node_data.each(&block)
+ # @return [String]
+ def inspect
+ fragment = node_context.document_location.pointer.fragment
+ %{#{self.class.name}(#{fragment})}
end
end
end
end