Class: Locraft::Extractor

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

Instance Method Summary collapse

Constructor Details

#initialize(config_file) ⇒ Extractor

Returns a new instance of Extractor.



10
11
12
# File 'lib/locraft/extractor.rb', line 10

def initialize(config_file)
  @config = Config.load_from(config_file)
end

Instance Method Details

#extractObject



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

def extract
  csv = GoogleDriveWrapper.new(@config).export_worksheet_csv
  csv_parser = CSVParser.new(@config)
  localizations_hash = csv_parser.parse_csv(csv)
  if localizations_hash[@config.default_lang].nil?
    warn 'extract ERROR: no localizations given'
  else
    generate_strings(localizations_hash)
    generate_info_plist(localizations_hash)
    generate_constant(localizations_hash)
  end
end

#generate_constant(localizations_hash) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'lib/locraft/extractor.rb', line 37

def generate_constant(localizations_hash)
  return if @config.macro_destination.nil?
  localizations = localizations_hash[@config.default_lang]
  if @config.dev_lang.equal? OBJC
    ObjcConstantsGenerator.new(@config, localizations).generate
  else
    SwiftConstantsGenerator.new(@config, localizations).generate
  end
end

#generate_info_plist(localizations_hash) ⇒ Object



32
33
34
35
# File 'lib/locraft/extractor.rb', line 32

def generate_info_plist(localizations_hash)
  return if @config.info_plist_destination.nil?
  InfoPlistGenerator.new(@config, localizations_hash).generate
end

#generate_strings(localizations_hash) ⇒ Object



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

def generate_strings(localizations_hash)
  return if @config.strings_destination.nil?
  StringsGenerator.new(@config, localizations_hash).generate
end