Sha256: e934a518e22d3c3443d910cc4a10cba275c671f11501fe1cc6ffac933e141c8b
Contents?: true
Size: 1.08 KB
Versions: 13
Compression:
Stored size: 1.08 KB
Contents
module IOStreams class Tabular module Parser # For parsing a single line of Pipe-separated values class Psv < Base # Returns [Array<String>] the header row. # Returns nil if the row is blank. def parse_header(row) return row if row.is_a?(::Array) unless row.is_a?(String) raise(IOStreams::Errors::InvalidHeader, "Format is :psv. Invalid input header: #{row.class.name}") end row.split('|') end # Returns [Array] the parsed PSV line def parse(row) return row if row.is_a?(::Array) raise(IOStreams::Errors::TypeMismatch, "Format is :psv. Invalid input: #{row.class.name}") unless row.is_a?(String) row.split('|') end # Return the supplied array as a single line JSON string. def render(row, header) array = header.to_array(row) cleansed_array = array.collect do |i| i.is_a?(String) ? i.tr('|', ':') : i end cleansed_array.join('|') end end end end end
Version data entries
13 entries across 13 versions & 1 rubygems