Module: Ambient

Extended by:
Ambient
Included in:
Ambient
Defined in:
lib/ambient.rb

Constant Summary collapse

ROOT =
File.expand_path('.', File.dirname(__FILE__))

Instance Method Summary collapse

Instance Method Details

#configure(&block) ⇒ Object



26
27
28
# File 'lib/ambient.rb', line 26

def configure(&block)
  instance_eval &block
end

#load_in_parent_target_valuesObject



133
134
135
136
137
138
139
140
141
142
143
144
# File 'lib/ambient.rb', line 133

def load_in_parent_target_values
  @parents.each do |target, parents|
    parents.each do |child, parent|
      if parent
        options = @target_options[target]
        child_options = options[child]
        parent_options = options[parent]
        child_options.merge!(parent_options) { |_, child, _| child }
      end
    end
  end
end

#process_capabilitiesObject



123
124
125
126
# File 'lib/ambient.rb', line 123

def process_capabilities
  puts "applying ambient capabilities"
  project_helper.process_capabilities(@capabilities)
end

#process_development_teamsObject



128
129
130
131
# File 'lib/ambient.rb', line 128

def process_development_teams
  puts "applying ambient development teams"
  project_helper.process_development_teams(@development_teams)
end

#process_project_optionsObject



102
103
104
105
# File 'lib/ambient.rb', line 102

def process_project_options
  puts "applying ambient project settings"
  project_helper.process_project_options(@project_options)
end

#process_scheme_optionsObject



107
108
109
110
# File 'lib/ambient.rb', line 107

def process_scheme_options
  puts "applying ambient scheme settings"
  project_helper.process_scheme_options(@scheme_options)
end

#process_shared_target_optionsObject



112
113
114
115
# File 'lib/ambient.rb', line 112

def process_shared_target_options
  puts "applying ambient shared target settings"
  project_helper.process_shared_target_options(@shared_target_options)
end

#process_target_optionsObject



117
118
119
120
121
# File 'lib/ambient.rb', line 117

def process_target_options
  puts "applying ambient target settings"
  load_in_parent_target_values
  project_helper.process_target_options(@target_options)
end

#project_helperObject



30
31
32
# File 'lib/ambient.rb', line 30

def project_helper
  @project_helper ||= ProjectHelper.new
end

#reset_capabilites_to_defaultsObject



97
98
99
100
# File 'lib/ambient.rb', line 97

def reset_capabilites_to_defaults
  puts "resetting capabilities to xcode default settings"
  project_helper.reset_capabilities_to_defaults
end

#reset_project_to_defaultsObject



87
88
89
90
# File 'lib/ambient.rb', line 87

def reset_project_to_defaults
  puts "resetting project settings to xcode default settings"
  project_helper.reset_project_to_defaults
end

#reset_targets_to_defaultsObject



92
93
94
95
# File 'lib/ambient.rb', line 92

def reset_targets_to_defaults
  puts "resetting target settings to xcode default settings"
  project_helper.reset_targets_to_defaults
end

#run_ambientfile(filename) ⇒ Object



146
147
148
149
150
151
# File 'lib/ambient.rb', line 146

def run_ambientfile(filename)
  puts "Reading settings from #{filename}"
  ambient = File.join(Dir.pwd, filename)
  raise "#{filename} not found in current directory." unless File.exists?(ambient)
  load ambient
end

#set_capability(target_name, capability_name) ⇒ Object



63
64
65
66
# File 'lib/ambient.rb', line 63

def set_capability(target_name, capability_name)
  capabilities = @capabilities[target_name] ||= []
  capabilities << capability_name
end

#set_development_team(target_name, team_name) ⇒ Object



68
69
70
# File 'lib/ambient.rb', line 68

def set_development_team(target_name, team_name)
  @development_teams[target_name] = team_name
end

#set_option(option, value, target: nil, scheme: nil, parent: nil) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/ambient.rb', line 39

def set_option(option, value, target: nil, scheme: nil, parent: nil)
  value = "YES" if value == true
  value = "NO" if value == false
  value = nil if value == :default

  if target
    if scheme
      @target_options[target] ||= {}
      @target_options[target][scheme] ||= {}
      @target_options[target][scheme][option] = value
    else
      @shared_target_options[target] ||= {}
      @shared_target_options[target][option] = value
    end
  else
    if scheme
      @scheme_options[scheme] ||= {}
      @scheme_options[scheme][option] = value
    else
      @project_options[option] = value
    end
  end
end

#set_parent_target(target, child, parent) ⇒ Object



34
35
36
37
# File 'lib/ambient.rb', line 34

def set_parent_target(target, child, parent)
  @parents[target] ||= {}
  @parents[target][child] = parent
end

#setup_project(ambientfile) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/ambient.rb', line 72

def setup_project(ambientfile)
  run_ambientfile(ambientfile)
  project_helper.print_info
  reset_project_to_defaults if @use_defaults
  reset_targets_to_defaults if @use_defaults
  reset_capabilites_to_defaults if @use_defaults
  process_project_options
  process_scheme_options
  process_shared_target_options
  process_target_options
  process_capabilities
  process_development_teams
  project_helper.save_changes
end