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
10
11
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 7

def initialize(project)

	@project = project

end

Instance Method Details

#extractObject



55
56
57
58
59
60
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 55

def extract

	self.extract_target_settings
	self.extract_project_settings

end

#extract_project_settingsObject



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 29

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



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 41

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



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/phoenx/use_cases/extract_build_settings.rb', line 13

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