class Thermite::Rails::Tasks::RootProjectRakeTask
This is intended as a base class for defining other Rake tasks at the Rails/root project level (as opposed to the crate/project level).
Public Class Methods
new()
click to toggle source
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 11 def initialize @root_project = Thermite::Rails.root_project end
Public Instance Methods
define_project_rake_tasks()
click to toggle source
Iterates through each project task and calls `#define_rake_task`.
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 48 def define_project_rake_tasks project_tasks.each(&:define_rake_task) end
define_rake_task()
click to toggle source
Method that does the standard Rake task DSL calls for defining the task.
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 33 def define_rake_task return if Rake::Task.task_defined?(task_name) desc(desc_text) task task_name => prerequisite_tasks end
defined?()
click to toggle source
@return [Boolean] Has a task with this name already been defined?
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 68 def defined? Rake::Task.task_defined?(task_name) end
desc_text()
click to toggle source
Text the task should list for its `desc`.
@return [String]
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 28 def desc_text raise 'Define in child' end
prerequisite_tasks()
click to toggle source
A list of all of the tasks this take should run.
@return [Array<String>]
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 43 def prerequisite_tasks project_task_names end
project_task_class()
click to toggle source
@return [Class]
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 21 def project_task_class raise 'Define in child' end
project_task_names()
click to toggle source
@return [Array<String>]
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 53 def project_task_names project_tasks.map(&:task_name) end
project_tasks()
click to toggle source
@return [Array<Class>]
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 58 def project_tasks @project_tasks ||= @root_project.projects.map do |project| p = project_task_class.new(project) p.define_rake_task unless p.defined? p end end
task_name()
click to toggle source
@return [String]
# File lib/thermite/rails/tasks/root_project_rake_task.rb, line 16 def task_name raise 'Define in child' end