Module: Fibrio
- Defined in:
- lib/fibrio.rb,
lib/fibrio/errors.rb,
lib/fibrio/source.rb,
lib/fibrio/stream.rb,
lib/fibrio/version.rb,
lib/fibrio/parsers/csv.rb,
lib/fibrio/parsers/base.rb,
lib/fibrio/parsers/json.rb,
lib/fibrio/parsers/ndjson.rb
Defined Under Namespace
Modules: Parsers
Classes: Error, ParseError, Source, Stream, UnknownFormatError
Constant Summary
collapse
- FORMAT_PARSERS =
{
json: Parsers::JSON,
ndjson: Parsers::NDJSON,
csv: Parsers::CSV
}.freeze
- VERSION =
'0.1.0'
Class Method Summary
collapse
Class Method Details
.open(input, format:, **options) ⇒ Stream
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/fibrio.rb', line 23
def self.open(input, format:, **options)
source = Source.build(input)
parser = parser_for(format).new(source, **options)
stream = Stream.new(parser)
return stream unless block_given?
begin
yield stream
ensure
stream.close
end
end
|
.parser_for(format) ⇒ Class
39
40
41
42
43
|
# File 'lib/fibrio.rb', line 39
def self.parser_for(format)
FORMAT_PARSERS.fetch(format.to_sym)
rescue KeyError
raise UnknownFormatError, "unknown format: #{format.inspect}"
end
|