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