module FlatFile::QSV
Read data exports from Postico
Constants
- OPTIONS
ruby-doc.org/stdlib-2.6.1/libdoc/csv/rdoc/CSV.html#method-c-new @return [Hash]
Public Class Methods
from_file(filepath)
click to toggle source
@param filepath [String] Path to the file. @return [Array<Hash{String => String}>]
# File lib/flat_file/qsv.rb, line 18 def self.from_file(filepath) # ::CSV::Converters[:json] = ->(s) { self.parse_postico_json(s) } return ::CSV.read(filepath, self.options).map(&:to_hash) end
options()
click to toggle source
@return [Hash]
# File lib/flat_file/qsv.rb, line 24 def self.options() custom_converter = ->(value, field_info) { self.parse_postico_json(value, field_info) } return { col_sep: ";", headers: true, quote_char: '"', converters: [custom_converter], } end
parse_postico_json(value, _field_info)
click to toggle source
@param value [Object] @param _field_info [Hash] @return [Object]
# File lib/flat_file/qsv.rb, line 37 def self.parse_postico_json(value, _field_info) return value if value.nil?() return value if value.length == 0 return value unless value[0] == "{" return ::JSON.parse(value) rescue ::JSON::ParserError => e # if defined?(Rails) # Rails.logger.error({ # message: "Rescued from 'JSON::ParserError' in parse_postico_json", # error: e, # }) # end return value rescue StandardError => e # if defined?(Rails) # Rails.logger.error({ # message: "Rescued from 'StandardError' in parse_postico_json", # error: e, # }) # end return value end