class MTBuild::Configuration

This is the base class for all configuration types.

Attributes

configuration_name[R]

The configuration's name

output_folder[R]

The project's output folder. Project output goes here.

parent_project[R]

The project that owns this configuration

project_folder[R]

The project's folder. Relative path references are interpreted as relative to this folder.

Public Class Methods

new(parent_project, output_folder, configuration_name, configuration) click to toggle source
# File lib/mtbuild/configuration.rb, line 19
def initialize(parent_project, output_folder, configuration_name, configuration)
  @parent_project = parent_project
  @project_folder = File.expand_path(@parent_project.project_folder)
  @configuration_name = configuration_name
  @output_folder = File.expand_path(File.join(output_folder, @configuration_name.to_s))
  check_configuration(configuration)

  @pre_build = configuration.fetch(:pre_build, nil)
  @post_build = configuration.fetch(:post_build, nil)

  @pre_build.call if @pre_build.respond_to? :call
end

Public Instance Methods

configure_tasks() click to toggle source

Create the actual Rake tasks that will perform the configuration's work

# File lib/mtbuild/configuration.rb, line 33
def configure_tasks
end

Private Instance Methods

check_configuration(configuration) click to toggle source
# File lib/mtbuild/configuration.rb, line 38
def check_configuration(configuration)
end
expand_configuration_wildcards(task_list) click to toggle source
# File lib/mtbuild/configuration.rb, line 46
def expand_configuration_wildcards(task_list)
  return task_list.collect {|task| task.sub(':.', ":#{@configuration_name}") }
end
namespace_tasks(task_list) click to toggle source
# File lib/mtbuild/configuration.rb, line 41
def namespace_tasks(task_list)
  return task_list.collect {|task| "#{@parent_project.parent_workspace.workspace_name}:#{task}"} unless @parent_project.parent_workspace.nil?
  return task_list
end