class Physique::TasksBuilder

Attributes

subclasses[R]
solution[R]

Public Class Methods

build_tasks_for(solution) click to toggle source
# File lib/physique/tasks_builder.rb, line 24
def self.build_tasks_for(solution)
  TasksBuilder.subclasses.each do |builder_class|
    builder_class.new.build_tasks_for solution
  end
end
inherited(subclass) click to toggle source
# File lib/physique/tasks_builder.rb, line 18
def self.inherited(subclass)
  TasksBuilder.subclasses << subclass
end

Public Instance Methods

build_tasks() click to toggle source
# File lib/physique/tasks_builder.rb, line 35
def build_tasks
  raise 'This method must be implemented in your subclass'
end
build_tasks_for(solution) click to toggle source
# File lib/physique/tasks_builder.rb, line 30
def build_tasks_for(solution)
  @solution = solution
  build_tasks
end
ensure_output_location(path) click to toggle source
# File lib/physique/tasks_builder.rb, line 39
def ensure_output_location(path)
  # Ensure output directory exists
  FileUtils.mkdir_p path
end
namespace(name, &block) click to toggle source
# File lib/physique/tasks_builder.rb, line 44
def namespace(name, &block)
  name = to_string_or_symbol(name)
  Rake.application.in_namespace(name, &block)
end
to_string_or_symbol(name) click to toggle source
# File lib/physique/tasks_builder.rb, line 49
def to_string_or_symbol(name)
  name = name.to_s if name.kind_of?(Symbol)
  name = name.to_str if name.respond_to?(:to_str)
  unless name.kind_of?(String) || name.nil?
    raise ArgumentError, 'Expected a String or Symbol for a namespace name'
  end
  name
end