class Locraft::StringsGenerator

Public Instance Methods

broadcast_file_generation(f) click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 28
def broadcast_file_generation(f)
  puts "strings file generated: [#{f}]"
end
destination_dir_for(_, lang_code) click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 40
def destination_dir_for(_, lang_code)
  "#{@config.relative_strings_destination}/#{lang_code}.lproj"
end
file_template() click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 36
def file_template
  Utils.resource_file('strings_template.txt')
end
generate(localizations_hash) click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 15
def generate(localizations_hash)
  @config.langs.each do |lang, lang_code|
    localizations = localizations_hash[lang].select { |l| valid_localization?(l) }
    destination_dir = destination_dir_for(lang, lang_code)
    file = "#{destination_dir}/#{strings_file}"
    mkdir_p destination_dir unless Dir.exist?(destination_dir)
    File.open(file, 'w+') do |f|
      f.puts file_template % strings_file_content(localizations)
    end
    broadcast_file_generation(file)
  end
end
strings_file() click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 44
def strings_file
  @config.strings_file
end
strings_file_content(localizations) click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 48
def strings_file_content(localizations)
  localizations.select(&:valid?).map { |l| strings_line_with(l) }.join("\n")
end
strings_line_with(localization) click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 52
def strings_line_with(localization)
  content = ''
  content += "/* #{localization.comment} */" unless localization.comment.nil?
  content + %(\n"#{localization.key}" = "#{localization.strict_value}";\n)
end
valid?() click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 11
def valid?
  !@config.relative_strings_destination.nil?
end
valid_localization?(l) click to toggle source
# File lib/locraft/generators/strings_generator.rb, line 32
def valid_localization?(l)
  l.valid?
end