class BabelBot::TwineGenerator
Constants
- COMMENT_ID
- EN_LOCALE
- KEY_ID
Public Class Methods
new(csv, out_path)
click to toggle source
# File lib/babel_bot/twine_generator.rb, line 17 def initialize(csv, out_path) @csv = csv @out_path = out_path @non_english_locales = @csv.headers - [KEY_ID, COMMENT_ID, EN_LOCALE] end
Public Instance Methods
filter_duplicate_rows()
click to toggle source
# File lib/babel_bot/twine_generator.rb, line 47 def filter_duplicate_rows @csv.entries.uniq{|x| x[KEY_ID] } end
generate()
click to toggle source
# File lib/babel_bot/twine_generator.rb, line 23 def generate section = generate_section strings_file = generate_strings_file(section) strings_file.write(@out_path) end
generate_section()
click to toggle source
# File lib/babel_bot/twine_generator.rb, line 29 def generate_section Twine::StringsSection.new("General").tap do |section| valid_rows = filter_duplicate_rows valid_rows.sort{|a, b| a[KEY_ID] <=> b[KEY_ID] }.each do |row| translation_row = Twine::StringsRow.new(row[KEY_ID]) translation_row.comment = row[COMMENT_ID] translation_row.translations[EN_LOCALE] = row[EN_LOCALE] @non_english_locales.each do |locale| translation_row.translations[locale] = row[locale] if row[locale] end section.rows << translation_row end end end
generate_strings_file(section)
click to toggle source
# File lib/babel_bot/twine_generator.rb, line 51 def generate_strings_file(section) Twine::StringsFile.new.tap do |strings_file| strings_file.set_developer_language_code(EN_LOCALE) @non_english_locales.each do |locale| strings_file.add_language_code(locale) end strings_file.sections << section end end