Class: Locraft::InfoPlistGenerator

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

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ InfoPlistGenerator

Returns a new instance of InfoPlistGenerator.



5
6
7
# File 'lib/locraft/info_plist_generator.rb', line 5

def initialize(config)
  @config = config
end

Instance Method Details

#generateObject



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

def generate
  dir = @config.relative_destination_dir
  folders = Dir.entries(dir).select { |d| d =~ /.+(.lproj)/ }.map { |d| File.join(dir, d) }
  folders.each { |f| generate_info_plist_in_lproj(f) }
end

#generate_info_plist_in_lproj(folder) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/locraft/info_plist_generator.rb', line 15

def generate_info_plist_in_lproj(folder)
  localizable_file = File.join(folder, @config.strings_file.to_s)
  info_file = File.join(folder, @config.info_plist_file.to_s)
  File.write(info_file, info_plist_from(localizable_file))

  puts "- #{info_file} created"
end

#info_plist_from(localizable_file) ⇒ Object



23
24
25
26
# File 'lib/locraft/info_plist_generator.rb', line 23

def info_plist_from(localizable_file)
  filter = /"(NS|CF).*"\s*=\s*".*";/
  File.readlines(localizable_file).select { |l| l =~ filter }.join("\n")
end