class StructuredReader::JSONReader::ReaderSet
Constants
- READERS
Public Class Methods
new()
click to toggle source
# File lib/structured_reader.rb, line 427 def initialize @readers = READERS.dup end
Public Instance Methods
add_reader(type, reader)
click to toggle source
# File lib/structured_reader.rb, line 431 def add_reader(type, reader) @readers[type.to_sym] = reader end
custom(type, &blk)
click to toggle source
# File lib/structured_reader.rb, line 435 def custom(type, &blk) add_reader type, BuilderDeriver.new(CustomReader, &blk) end
has_reader?(type)
click to toggle source
# File lib/structured_reader.rb, line 456 def has_reader?(type) @readers.has_key?(type) end
object(type, &blk)
click to toggle source
# File lib/structured_reader.rb, line 439 def object(type, &blk) add_reader type, BuilderDeriver.new(ObjectReader, &blk) end
reader(type, *args, **kwargs, &blk)
click to toggle source
# File lib/structured_reader.rb, line 443 def reader(type, *args, **kwargs, &blk) if kwargs[:nullable] kwargs = kwargs.dup kwargs.delete :nullable OneOfReader.new(reader_set: self) do |o| o.null o.send(type, *args, **kwargs, &blk) end else @readers.fetch(type).new(*args, reader_set: self, **kwargs, &blk) end end