Module: CapistranoMulticonfigParallel::BaseActorHelper::InstanceMethods

Defined in:
lib/capistrano_multiconfig_parallel/helpers/base_actor_helper.rb

Instance Method Summary collapse

Instance Method Details

#setup_actor_supervision(class_name, options) ⇒ Object



52
53
54
55
56
57
58
59
60
# File 'lib/capistrano_multiconfig_parallel/helpers/base_actor_helper.rb', line 52

def setup_actor_supervision(class_name, options)
  if version_less_than_seventeen?
    class_name.supervise_as(*setup_actor_supervision_details(class_name, options))
  else
    setup_supervision_group do |supervisor|
      supervisor.supervise setup_actor_supervision_details(class_name, options)
    end
  end
end

#setup_actor_supervision_details(class_name, options) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/capistrano_multiconfig_parallel/helpers/base_actor_helper.rb', line 41

def setup_actor_supervision_details(class_name, options)
  arguments = (options[:args].is_a?(Array) ? options[:args] : [options[:args]]).compact
  if version_less_than_seventeen?
    [options[:actor_name], options[:type], *arguments]
  else
    #supervises_opts = options[:supervises].present? ? { supervises: options[:supervises] } : {}
   { as: options[:actor_name], type: options[:type], args: arguments, size: options.fetch(:size, nil) }
  end
end

#setup_pool_of_actor(class_name, options) ⇒ Object



72
73
74
75
76
77
78
79
80
81
# File 'lib/capistrano_multiconfig_parallel/helpers/base_actor_helper.rb', line 72

def setup_pool_of_actor(class_name, options)
  if version_less_than_seventeen?
    class_name.pool(options[:type], as: options[:actor_name], size:  options.fetch(:size, 10))
  else
    options = setup_actor_supervision_details(class_name, options)
    setup_supervision_group do |supervisor|
      supervisor.pool *[options[:type], options.except(:type)]
    end
  end
end

#setup_supervision_groupObject



62
63
64
65
66
67
68
69
70
# File 'lib/capistrano_multiconfig_parallel/helpers/base_actor_helper.rb', line 62

def setup_supervision_group
  if version_less_than_seventeen?
    Celluloid::SupervisionGroup.run!
  else
    Class.new(Celluloid::Supervision::Container) do
      yield(self) if block_given?
    end.run!
  end
end