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_scheme_valuesObject



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/ambient.rb', line 134

def load_in_parent_scheme_values
  @parents.each do |target, parents|
    parents.each do |child, parent|
      if parent
        if target == :all
          puts "Identified #{child} as a child of #{parent}"
          child_options = @scheme_options[child]
          parent_options = @scheme_options[parent]
        else
          target_options = @target_options[target]
          child_options = target_options[child]
          parent_options = target_options[parent]
        end
        child_options.merge!(parent_options) { |_, child, _| child }
      end
    end
  end
end

#process_capabilitiesObject



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

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

#process_development_teamsObject



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

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

#process_project_optionsObject



104
105
106
107
# File 'lib/ambient.rb', line 104

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

#process_scheme_optionsObject



109
110
111
112
# File 'lib/ambient.rb', line 109

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

#process_shared_target_optionsObject



114
115
116
117
# File 'lib/ambient.rb', line 114

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

#process_target_optionsObject



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

def process_target_options
  puts "applying ambient target settings"
  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



99
100
101
102
# File 'lib/ambient.rb', line 99

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

#reset_project_to_defaultsObject



89
90
91
92
# File 'lib/ambient.rb', line 89

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

#reset_targets_to_defaultsObject



94
95
96
97
# File 'lib/ambient.rb', line 94

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

#run_ambientfile(filename) ⇒ Object



153
154
155
156
157
158
# File 'lib/ambient.rb', line 153

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



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

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

#set_development_team(target_name, team_name) ⇒ Object



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

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



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

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_scheme(target: nil, child: nil, parent: nil) ⇒ Object



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

def set_parent_scheme(target: nil, child: nil, parent: nil)
  target = target || :all
  @parents[target] ||= {}
  @parents[target][child] = parent
end

#setup_project(ambientfile) ⇒ Object



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

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
  load_in_parent_scheme_values
  process_project_options
  process_scheme_options
  process_shared_target_options
  process_target_options
  process_capabilities
  process_development_teams
  project_helper.save_changes
end