Class: StructuredReader::JSONReader::OneOfReader
- Inherits:
-
Object
- Object
- StructuredReader::JSONReader::OneOfReader
- Defined in:
- lib/structured_reader.rb
Defined Under Namespace
Classes: ReaderBuilder
Instance Method Summary collapse
-
#initialize(reader_set:, **_) {|ReaderBuilder.new(self, reader_set: reader_set)| ... } ⇒ OneOfReader
constructor
A new instance of OneOfReader.
- #option(reader) ⇒ Object
- #read(fragment, context) ⇒ Object
Constructor Details
#initialize(reader_set:, **_) {|ReaderBuilder.new(self, reader_set: reader_set)| ... } ⇒ OneOfReader
Returns a new instance of OneOfReader.
275 276 277 278 279 280 281 282 |
# File 'lib/structured_reader.rb', line 275 def initialize(reader_set:, **_) @readers = [] yield ReaderBuilder.new(self, reader_set: reader_set) if @readers.empty? raise DeclarationError, "must define at least one option" end freeze end |
Instance Method Details
#option(reader) ⇒ Object
294 295 296 |
# File 'lib/structured_reader.rb', line 294 def option(reader) @readers << reader end |
#read(fragment, context) ⇒ Object
284 285 286 287 288 289 290 291 292 |
# File 'lib/structured_reader.rb', line 284 def read(fragment, context) @readers.each do |reader| if reader.read(fragment, ValidatorContext.new).empty? return context.accept(reader.read(fragment, context)) end end context.flunk(fragment, "was not any of the expected options") end |