Class: Decidim::DirectVerifications::Parsers::MetadataParser

Inherits:
BaseParser
  • Object
show all
Defined in:
lib/decidim/direct_verifications/parsers/metadata_parser.rb

Constant Summary collapse

I18N_SCOPE =
"decidim.direct_verifications.verification.admin.direct_verifications"

Constants inherited from BaseParser

BaseParser::EMAIL_REGEXP

Instance Method Summary collapse

Methods inherited from BaseParser

#initialize, #to_h

Constructor Details

This class inherits a constructor from Decidim::DirectVerifications::Parsers::BaseParser

Instance Method Details

#headerObject



11
12
13
14
15
16
17
# File 'lib/decidim/direct_verifications/parsers/metadata_parser.rb', line 11

def header
  @header ||= begin
    raise InputParserError, I18n.t("#{I18N_SCOPE}.create.missing_header") if lines.count <= 1

    tokenize(lines[0].chomp).map { |h| h.to_s.downcase }
  end
end

#linesObject



19
20
21
# File 'lib/decidim/direct_verifications/parsers/metadata_parser.rb', line 19

def lines
  @lines ||= StringIO.new(txt).readlines
end

#parse_data(email, line, header) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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|
    next if column.blank?

    value = tokens[index]
    next if value&.include?(email)

    hash[column] = value
  end
  hash
end