class RSwift::ProjectConfigurator

Attributes

attributes_configurator[RW]
build_settings_configurator[RW]
scheme_configurator[RW]
target_configurator[RW]

Public Class Methods

new() click to toggle source
# File lib/rswift/project_configurator.rb, line 10
def initialize
  @build_settings_configurator = RSwift::BuildSettingsConfigurator.new
  @target_configurator = RSwift::TargetConfigurator.new
  @attributes_configurator = RSwift::AttributesConfigurator.new
  @scheme_configurator = RSwift::SchemeConfigurator.new
end

Public Instance Methods

configure_project(project, template) click to toggle source
# File lib/rswift/project_configurator.rb, line 17
def configure_project(project, template)
  setup_targets(project, template)
  setup_schemes project
  @build_settings_configurator.configure_project_settings(project, template)
  @attributes_configurator.configure_project_attributes project
end

Private Instance Methods

setup_schemes(project) click to toggle source
# File lib/rswift/project_configurator.rb, line 36
def setup_schemes(project)
  scheme = Xcodeproj::XCScheme.new
  @scheme_configurator.configure_app_scheme(project, scheme)
end
setup_targets(project, template) click to toggle source
# File lib/rswift/project_configurator.rb, line 26
def setup_targets(project, template)
  target_types = RSwift::Constants::TEMPLATE_PROPERTIES[template][:target_types]
  target_types.each do |target_type|
    target_properties = RSwift::Constants::TARGET_PROPERTIES[target_type]
    target = project.new_target(target_type, "#{project.name}#{target_properties[:suffix]}", template)
    @target_configurator.configure_target(project, target, template)
  end
  @target_configurator.configure_targets_dependencies project
end