Class: Phoenx::ExtractBuildSettings

Inherits:
Object
  • Object
show all
Defined in:
lib/phoenx/use_cases/extract_build_settings.rb

Instance Method Summary collapse

Constructor Details

#initialize(project) ⇒ ExtractBuildSettings

Returns a new instance of ExtractBuildSettings.



7
8
9
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 7

def initialize(project)
  @project = project
end

Instance Method Details

#extractObject



37
38
39
40
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 37

def extract
  self.extract_target_settings
  self.extract_project_settings
end

#extract_project_settingsObject



20
21
22
23
24
25
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 20

def extract_project_settings
  FileUtils::mkdir_p 'xcconfig'
  @project.build_configuration_list.build_configurations.each do |config|
    extract_settings(config, 'xcconfig/')
  end
end

#extract_settings(config, to_folder) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 27

def extract_settings(config, to_folder)
  build_settings = config.build_settings.map { |key,values|
    key + ' = ' + (values.is_a?(String) ? values  : values.join(' '))
  }
  build_settings.sort!
  open(to_folder + config.name + '.xcconfig', 'w') { |file|
    build_settings.each { |setting| file.puts(setting) }
  }
end

#extract_target_settingsObject



11
12
13
14
15
16
17
18
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 11

def extract_target_settings
  @project.targets.each do |target|
    FileUtils::mkdir_p 'xcconfig/' + target.name
    target.build_configuration_list.build_configurations.each do |config|
      extract_settings(config, 'xcconfig/' + target.name + '/')
    end
  end
end