Class: Locraft::InfoPlistGenerator

Inherits:
Object
  • Object
show all
Includes:
FileUtils
Defined in:
lib/locraft/generators/info_plist_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(config, localizations_hash) ⇒ InfoPlistGenerator

Returns a new instance of InfoPlistGenerator.



9
10
11
12
# File 'lib/locraft/generators/info_plist_generator.rb', line 9

def initialize(config, localizations_hash)
  @config = config
  @localizations_hash = localizations_hash
end

Instance Method Details

#generateObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/locraft/generators/info_plist_generator.rb', line 14

def generate
  @config.langs.each do |lang, val|
    localizations = @localizations_hash[lang]
    destination_dir = "#{@config.relative_plist_destination}/#{val}.lproj"
    file = "#{destination_dir}/#{@config.info_plist_file}"
    mkdir_p destination_dir unless Dir.exist?(destination_dir)
    File.open(file, 'w+') do |f|
      f.puts info_plist_with(localizations)
    end
    puts "info plist generated: [#{file}]"
  end
end

#info_plist_with(localizations) ⇒ Object



27
28
29
30
# File 'lib/locraft/generators/info_plist_generator.rb', line 27

def info_plist_with(localizations)
  filter = /(NS|CF).*/
  localizations.select { |l| l.key =~ filter }.map(&:to_line).join("\n")
end