Class: Locraft::StringsGenerator
- Inherits:
-
Generator
show all
- Includes:
- FileUtils
- Defined in:
- lib/locraft/generators/strings_generator.rb
Instance Method Summary
collapse
Methods inherited from Generator
#initialize
Instance Method Details
#broadcast_file_generation(f) ⇒ Object
28
29
30
|
# 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) ⇒ Object
40
41
42
|
# 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 ⇒ Object
36
37
38
|
# File 'lib/locraft/generators/strings_generator.rb', line 36
def file_template
Utils.resource_file('strings_template.txt')
end
|
#generate(localizations_hash) ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
|
# 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 ⇒ Object
44
45
46
|
# File 'lib/locraft/generators/strings_generator.rb', line 44
def strings_file
@config.strings_file
end
|
#strings_file_content(localizations) ⇒ Object
48
49
50
|
# 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) ⇒ Object
52
53
54
55
56
|
# File 'lib/locraft/generators/strings_generator.rb', line 52
def strings_line_with(localization)
content = ''
content += "/* #{localization.comment} */" unless localization..nil?
content + %(\n"#{localization.key}" = "#{localization.strict_value}";\n)
end
|
#valid? ⇒ Boolean
11
12
13
|
# File 'lib/locraft/generators/strings_generator.rb', line 11
def valid?
!@config.relative_strings_destination.nil?
end
|
#valid_localization?(l) ⇒ Boolean
32
33
34
|
# File 'lib/locraft/generators/strings_generator.rb', line 32
def valid_localization?(l)
l.valid?
end
|