class Openapi3Parser::NodeFactory::Array
Attributes
context[R]
data[R]
default[R]
use_default_on_empty[R]
validation[R]
value_factory[R]
value_input_type[R]
Public Class Methods
new( context, default: [], use_default_on_empty: false, value_input_type: nil, value_factory: nil, validate: nil )
click to toggle source
rubocop:disable Metrics/ParameterLists
# File lib/openapi3_parser/node_factory/array.rb, line 10 def initialize( context, default: [], use_default_on_empty: false, value_input_type: nil, value_factory: nil, validate: nil ) @context = context @default = default @use_default_on_empty = use_default_on_empty @value_input_type = value_input_type @value_factory = value_factory @validation = validate @data = build_data(context.input) end
Public Instance Methods
errors()
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 44 def errors @errors ||= ValidNodeBuilder.errors(self) end
inspect()
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 53 def inspect %{#{self.class.name}(#{context.source_location.inspect})} end
nil_input?()
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 36 def nil_input? context.input.nil? end
node(node_context)
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 48 def node(node_context) data = ValidNodeBuilder.data(self, node_context) data.nil? ? nil : build_node(data, node_context) end
raw_input()
click to toggle source
rubocop:enable Metrics/ParameterLists
# File lib/openapi3_parser/node_factory/array.rb, line 28 def raw_input context.input end
resolved_input()
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 32 def resolved_input @resolved_input ||= build_resolved_input end
use_default?()
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 57 def use_default? return true if nil_input? || !raw_input.is_a?(::Array) return false unless use_default_on_empty raw_input.empty? end
valid?()
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 40 def valid? errors.empty? end
Private Instance Methods
build_data(raw_input)
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 66 def build_data(raw_input) return if use_default? && default.nil? process_data(use_default? ? default : raw_input) end
build_node(data, node_context)
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 90 def build_node(data, node_context) Node::Array.new(data, node_context) if data end
build_resolved_input()
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 94 def build_resolved_input return unless data data.map do |value| value.respond_to?(:resolved_input) ? value.resolved_input : value end end
initialize_value_factory(field_context)
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 82 def initialize_value_factory(field_context) if value_factory.is_a?(Class) value_factory.new(field_context) else value_factory.call(field_context) end end
process_data(data)
click to toggle source
# File lib/openapi3_parser/node_factory/array.rb, line 72 def process_data(data) data.each_with_index.map do |value, i| if value_factory initialize_value_factory(Context.next_field(context, i, value)) else value end end end