class StructuredReader::JSONReader::ArrayReader
Public Class Methods
new(of: nil, reader_set:) { |reader_builder(self, reader_set: reader_set)| ... }
click to toggle source
# File lib/structured_reader.rb, line 122 def initialize(of: nil, reader_set:, &blk) if block_given? yield ReaderBuilder.new(self, reader_set: reader_set) elsif of ReaderBuilder.new(self, reader_set: reader_set).send(of) end unless @member_reader raise DeclarationError, "array must have a member type" end end
Public Instance Methods
member(reader)
click to toggle source
# File lib/structured_reader.rb, line 134 def member(reader) @member_reader = reader end
read(fragment, context)
click to toggle source
# File lib/structured_reader.rb, line 138 def read(fragment, context) if fragment.kind_of?(Array) context.accept(fragment.map.with_index do |member, idx| context.push("[#{idx}]") do |sub_context| @member_reader.read(member, sub_context) end end) else context.flunk(fragment, "expected an Array") end end