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