class CommaSplice::Line

Attributes

line[R]
values[R]

Public Class Methods

new(line) click to toggle source
# File lib/comma_splice/helpers/line.rb, line 5
def initialize(line)
  @line = line
  @values = parse_csv_content(line).first
end

Private Instance Methods

parse_csv_content(content, headers = false) click to toggle source
# File lib/comma_splice/helpers/line.rb, line 12
def parse_csv_content(content, headers = false)
  quote_chars = %w[" | ~ ^ & *]
  begin
    CSV.parse(content.mb_chars.tidy_bytes.to_s, quote_char: quote_chars.shift, headers: headers, liberal_parsing: true)
  rescue CSV::MalformedCSVError
    quote_chars.empty? ? raise : retry
  end
end