Module: Capistrano::TaskEnhancements
- Included in:
- DSL
- Defined in:
- lib/capistrano/dsl/task_enhancements.rb
Instance Method Summary collapse
- #after(task, post_task, *args, &block) ⇒ Object
- #before(task, prerequisite, *args, &block) ⇒ Object
- #default_tasks ⇒ Object
- #define_remote_file_task(task, target_roles) ⇒ Object
- #ensure_stage ⇒ Object
- #remote_file(task) ⇒ Object
- #tasks_without_stage_dependency ⇒ Object
Instance Method Details
#after(task, post_task, *args, &block) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/capistrano/dsl/task_enhancements.rb', line 8 def after(task, post_task, *args, &block) post_task = Rake::Task.define_task(post_task, *args, &block) if block_given? Rake::Task[task].enhance do invoke(post_task) end end |
#before(task, prerequisite, *args, &block) ⇒ Object
3 4 5 6 |
# File 'lib/capistrano/dsl/task_enhancements.rb', line 3 def before(task, prerequisite, *args, &block) prerequisite = Rake::Task.define_task(prerequisite, *args, &block) if block_given? Rake::Task[task].enhance [prerequisite] end |
#default_tasks ⇒ Object
48 49 50 |
# File 'lib/capistrano/dsl/task_enhancements.rb', line 48 def default_tasks %w{install} end |
#define_remote_file_task(task, target_roles) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/capistrano/dsl/task_enhancements.rb', line 20 def define_remote_file_task(task, target_roles) Rake::Task.define_task(task) do |t| prerequisite_file = t.prerequisites.first file = shared_path.join(t.name) on roles(target_roles) do unless test "[ -f #{file} ]" info "Uploading #{prerequisite_file} to #{file}" upload! File.open(prerequisite_file), file end end end end |
#ensure_stage ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/capistrano/dsl/task_enhancements.rb', line 35 def ensure_stage Rake::Task.define_task(:ensure_stage) do unless stage_set? puts t(:stage_not_set) exit 1 end end end |
#remote_file(task) ⇒ Object
15 16 17 18 |
# File 'lib/capistrano/dsl/task_enhancements.rb', line 15 def remote_file(task) target_roles = task.delete(:roles) { :all } define_remote_file_task(task, target_roles) end |
#tasks_without_stage_dependency ⇒ Object
44 45 46 |
# File 'lib/capistrano/dsl/task_enhancements.rb', line 44 def tasks_without_stage_dependency stages + default_tasks end |