class Decidim::DirectVerifications::Parsers::MetadataParser
Constants
- I18N_SCOPE
Public Instance Methods
header()
click to toggle source
# File lib/decidim/direct_verifications/parsers/metadata_parser.rb, line 11 def header @header ||= begin header_row = lines[0].chomp header_row = tokenize(header_row) normalize_header(header_row) end end
lines()
click to toggle source
# File lib/decidim/direct_verifications/parsers/metadata_parser.rb, line 19 def lines @lines ||= StringIO.new(txt).readlines end
parse_data(email, line, header)
click to toggle source
# File lib/decidim/direct_verifications/parsers/metadata_parser.rb, line 23 def parse_data(email, line, header) tokens = tokenize(line) hash = {} header.each_with_index do |column, index| value = tokens[index] next if value&.include?(email) hash[column] = value end hash end
Private Instance Methods
normalize_header(line)
click to toggle source
# File lib/decidim/direct_verifications/parsers/metadata_parser.rb, line 44 def normalize_header(line) line.map do |field| raise InputParserError, I18n.t("#{I18N_SCOPE}.create.missing_header") if field.nil? field.to_sym.downcase end end
tokenize(line)
click to toggle source
# File lib/decidim/direct_verifications/parsers/metadata_parser.rb, line 38 def tokenize(line) CSV.parse_line(line).map do |token| token&.strip end end