class Capistrano::Atlas::Recipe
Attributes
name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/capistrano/atlas/recipe.rb, line 6 def initialize(name) @name = name.to_s end
Public Instance Methods
during(task_to_extend, *recipe_tasks)
click to toggle source
# File lib/capistrano/atlas/recipe.rb, line 18 def during(task_to_extend, *recipe_tasks) inject_tasks(:after, task_to_extend, *recipe_tasks) end
enabled?()
click to toggle source
# File lib/capistrano/atlas/recipe.rb, line 10 def enabled? fetch(:atlas_recipes, []).map(&:to_s).include?(name) end
prior_to(task_to_extend, *recipe_tasks)
click to toggle source
# File lib/capistrano/atlas/recipe.rb, line 14 def prior_to(task_to_extend, *recipe_tasks) inject_tasks(:before, task_to_extend, *recipe_tasks) end
Private Instance Methods
apply_namespace(task_name)
click to toggle source
# File lib/capistrano/atlas/recipe.rb, line 36 def apply_namespace(task_name) return task_name if task_name.include?(":") "atlas:#{name}:#{task_name}" end
create_task_unless_exists(task_name, &block)
click to toggle source
# File lib/capistrano/atlas/recipe.rb, line 42 def create_task_unless_exists(task_name, &block) unless Rake::Task.task_defined?(task_name) Rake::Task.define_task(task_name, &block) end end
inject_tasks(method, task_to_extend, *recipe_tasks)
click to toggle source
# File lib/capistrano/atlas/recipe.rb, line 24 def inject_tasks(method, task_to_extend, *recipe_tasks) create_task_unless_exists(task_to_extend) recipe_tasks.flatten.each do |task| qualified_task = apply_namespace(task) create_task_unless_exists("#{qualified_task}:if_enabled") do invoke qualified_task if enabled? end send(method, task_to_extend, "#{qualified_task}:if_enabled") end end