class Locraft::CSVParser

Public Class Methods

new(config) click to toggle source
# File lib/locraft/csv_parser.rb, line 7
def initialize(config)
  @config = config
end

Public Instance Methods

csv_rows(body) click to toggle source
# File lib/locraft/csv_parser.rb, line 11
def csv_rows(body)
  csv = CSV.new(body, headers: true)
  csv.to_a.map(&:to_hash)
end
parse_csv(csv_body) click to toggle source

return localizations hash like #{ 'Lang' => [array of localizations] }

# File lib/locraft/csv_parser.rb, line 17
def parse_csv(csv_body)
  rows = csv_rows(csv_body)
  localizations_hash = {}
  @config.langs.each_key do |lang|
    localizations_hash[lang] = parse_rows_for_lang(rows, lang) || []
  end
  localizations_hash
end
parse_rows_for_lang(rows, lang) click to toggle source

return localizations array

# File lib/locraft/csv_parser.rb, line 27
def parse_rows_for_lang(rows, lang)
  if rows.first.keys.include? lang
    rows.map { |row| Localization.load_with_csv_row(row, @config, lang) }
  else
    warn "WARNING: there is no such a language in doc file: [#{lang}]"
  end
end