class Mayday::TargetIntegrator
Public Class Methods
new(project, script_generator)
click to toggle source
# File lib/mayday/target_integrator.rb, line 6 def initialize(project, script_generator) @project = project @script_generator = script_generator end
Public Instance Methods
benchmark()
click to toggle source
# File lib/mayday/target_integrator.rb, line 37 def benchmark ENV["SRCROOT"] = @project.path.parent.to_s require 'benchmark' Benchmark.bm(7) do |benchmarker| benchmarker.report('Mayday') { eval(@script_generator.to_ruby(:exit_after => false, :output => false)) } end end
deintegrate()
click to toggle source
# File lib/mayday/target_integrator.rb, line 23 def deintegrate native_targets_to_integrate.each do |native_target_to_integrate| phase = existing_mayday_build_phase_for_native_target(native_target_to_integrate) phase.remove_from_project if phase end @project.save end
integrate()
click to toggle source
# File lib/mayday/target_integrator.rb, line 11 def integrate if runs_successfully? native_targets_to_integrate.each do |native_target_to_integrate| phase = existing_mayday_build_phase_for_native_target(native_target_to_integrate) || native_target_to_integrate.new_shell_script_build_phase(mayday_build_phase_name) phase.shell_path = "/usr/bin/ruby" phase.shell_script = @script_generator.to_ruby phase.show_env_vars_in_log = '0' end @project.save end end
run()
click to toggle source
# File lib/mayday/target_integrator.rb, line 46 def run ENV["SRCROOT"] = @project.path.parent.to_s eval(@script_generator.to_ruby(:exit_after => false, :output => true)) end
runs_successfully?()
click to toggle source
# File lib/mayday/target_integrator.rb, line 31 def runs_successfully? ENV["SRCROOT"] = @project.path.parent.to_s eval(@script_generator.to_ruby(:exit_after => false, :output => false)) true end
Private Instance Methods
existing_mayday_build_phase_for_native_target(native_target)
click to toggle source
# File lib/mayday/target_integrator.rb, line 65 def existing_mayday_build_phase_for_native_target(native_target) native_target.shell_script_build_phases.detect { |bp| bp.name == mayday_build_phase_name } end
mayday_build_phase_name()
click to toggle source
# File lib/mayday/target_integrator.rb, line 70 def mayday_build_phase_name 'Generate Mayday Flags' end
native_targets_to_integrate()
click to toggle source
# File lib/mayday/target_integrator.rb, line 51 def native_targets_to_integrate native_targets = @project.targets.select do |target| target.is_a?(Xcodeproj::Project::Object::PBXNativeTarget) end if native_targets.count > 0 native_targets else puts "Could not find any native targets".red abort end end