Sha256: efdb9346f140ba31bcb5e742272e009cfdacc660a6ef028533f3bb9d2790b6e7
Contents?: true
Size: 1.26 KB
Versions: 5
Compression:
Stored size: 1.26 KB
Contents
module Dap module Input require 'oj' # # Error codes for failed reads # module Error EOF = :eof Empty = :empty InvalidFormat = :invalid end module FileSource attr_accessor :fd def open(file_name) close self.fd = ['-', 'stdin', nil].include?(file_name) ? $stdin : ::File.open(file_name, "rb") end def close self.close if self.fd self.fd = nil end end # # Line Input # class InputLines include FileSource def initialize(args) self.open(args.first) end def read_record line = self.fd.readline rescue nil return Error::EOF unless line { 'line' => line.chomp("\n") } end end # # JSON Input (line-delimited records) # class InputJSON include FileSource def initialize(args) self.open(args.first) end def read_record line = self.fd.readline rescue nil return Error::EOF unless line begin json = Oj.load(line.strip) rescue $stderr.puts "\nRecord is not valid JSON and will be skipped." $stderr.puts line return Error::InvalidFormat end return Error::Empty unless json json end end end end require 'dap/input/warc' require 'dap/input/csv'
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
dap-0.0.15 | lib/dap/input.rb |
dap-0.0.14 | lib/dap/input.rb |
dap-0.0.13 | lib/dap/input.rb |
dap-0.0.12 | lib/dap/input.rb |
dap-0.0.11 | lib/dap/input.rb |