Class: Locraft::CSVParser
- Inherits:
-
Object
- Object
- Locraft::CSVParser
- Defined in:
- lib/locraft/csv_parser.rb
Instance Method Summary collapse
- #csv_rows(body) ⇒ Object
-
#initialize(config) ⇒ CSVParser
constructor
A new instance of CSVParser.
-
#parse_csv(csv_body) ⇒ Object
return localizations hash like #{ ‘Lang’ => [array of localizations] }.
-
#parse_rows_for_lang(rows, lang) ⇒ Object
return localizations array.
Constructor Details
#initialize(config) ⇒ CSVParser
Returns a new instance of CSVParser.
7 8 9 |
# File 'lib/locraft/csv_parser.rb', line 7 def initialize(config) @config = config end |
Instance Method Details
#csv_rows(body) ⇒ Object
11 12 13 14 |
# 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) ⇒ Object
return localizations hash like #{ ‘Lang’ => [array of localizations] }
17 18 19 20 21 22 23 24 |
# 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) ⇒ Object
return localizations array
27 28 29 30 31 32 33 |
# 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 |