Class: CapistranoMulticonfigParallel::ExtensionHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/capistrano_multiconfig_parallel/extensions/extension_helper.rb

Class Method Summary collapse

Class Method Details

.actor ⇒ Object



19
20
21
22
23
24
# File 'lib/capistrano_multiconfig_parallel/extensions/extension_helper.rb', line 19

def actor
  CapistranoMulticonfigParallel::RakeWorker.supervise_as(rake_actor_id,
    actor_id: rake_actor_id,
    job_id: job_id) if Celluloid::Actor[rake_actor_id].blank?
  Celluloid::Actor[rake_actor_id]
end

.inside_job? ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/capistrano_multiconfig_parallel/extensions/extension_helper.rb', line 6

def inside_job?
  job_id.present?
end

.job_id ⇒ Object



10
11
12
# File 'lib/capistrano_multiconfig_parallel/extensions/extension_helper.rb', line 10

def job_id
  ENV[CapistranoMulticonfigParallel::ENV_KEY_JOB_ID]
end

.rake_actor_id ⇒ Object



15
16
17
# File 'lib/capistrano_multiconfig_parallel/extensions/extension_helper.rb', line 15

def rake_actor_id
  ENV['count_rake'].present? ? "rake_worker_#{job_id}_count" : "rake_worker_#{job_id}"
end

.run_the_actor(task, &block) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/capistrano_multiconfig_parallel/extensions/extension_helper.rb', line 26

def run_the_actor(task, &block)
  actor.work(ENV, task: task)
  actor.wait_execution until actor.task_approved
  return unless actor.task_approved
  stringio = StringIO.new
  CapistranoMulticonfigParallel::OutputStream.hook(stringio)
  CapistranoMulticonfigParallel::InputStream.hook(actor, stringio)
  block.call
  CapistranoMulticonfigParallel::InputStream.unhook
  CapistranoMulticonfigParallel::OutputStream.unhook
end