Class: ProjectHelper

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

Constant Summary collapse

PROJECTS =
Dir.glob('*.xcodeproj')

Instance Method Summary collapse

Constructor Details

#initializeProjectHelper

Returns a new instance of ProjectHelper.



7
8
9
# File 'lib/project_helper.rb', line 7

def initialize
  @project = Xcodeproj::Project.open(PROJECTS.first)
end

Instance Method Details



76
77
78
79
80
81
82
83
# File 'lib/project_helper.rb', line 76

def print_info
  puts "Targets:"
  @project.targets.each { |t| puts "- #{t.to_s}" }
  puts ""
  puts "Build configurations:"
  @project.build_configurations.each { |c| puts "- #{c.to_s}" }
  puts ""
end

#process_project_options(options) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/project_helper.rb', line 28

def process_project_options(options)
  @project.build_configurations.each do |configuration|
    options.each do |key, value|
      configuration.build_settings[key] = value
      configuration.build_settings.delete(key) if value == nil
    end
  end
  save_changes
end

#process_scheme_options(options) ⇒ Object



65
66
67
68
69
70
71
72
73
74
# File 'lib/project_helper.rb', line 65

def process_scheme_options(options)
  @project.build_configurations.each do |configuration|
    scheme_options = options[configuration.to_s] || {}
    scheme_options.each do |key, value|
      configuration.build_settings[key] = value
      configuration.build_settings.delete(key) if value == nil
    end
  end
  save_changes
end

#process_shared_target_options(shared_target_options) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/project_helper.rb', line 38

def process_shared_target_options(shared_target_options)
  @project.targets.each do |target|
    options = shared_target_options[target.to_s]
    if options
      @project.build_configurations.each do |configuration|
        target.build_configuration_list.build_settings(configuration.to_s).merge!(options)
      end
    end
  end
  save_changes
end

#process_target_options(target_options) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/project_helper.rb', line 50

def process_target_options(target_options)
  @project.targets.each do |target|
    options = target_options[target.to_s]
    if options
      @project.build_configurations.each do |configuration|
        scheme_options = options[configuration.to_s]
        if scheme_options
          target.build_configuration_list.build_settings(configuration.to_s).merge!(scheme_options)
        end
      end
    end
  end
  save_changes
end

#reset_project_to_defaultsObject



11
12
13
14
15
16
17
# File 'lib/project_helper.rb', line 11

def reset_project_to_defaults
  @project.build_configurations.each do |configuration|
    build_settings = configuration.build_settings
    build_settings.each { |k, _| build_settings.delete(k) }
  end
  save_changes
end

#reset_targets_to_defaultsObject



19
20
21
22
23
24
25
26
# File 'lib/project_helper.rb', line 19

def reset_targets_to_defaults
  @project.targets.each do |target|
    @project.build_configurations.each do |configuration|
      build_settings = target.build_configuration_list.build_settings(configuration.to_s)
      build_settings.each { |k, _| build_settings.delete(k) }
    end
  end
end