capistrano_multiconfig_parallel 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 41637732b5b656f58b1abf8a34ee438c4a462f8d
4
- data.tar.gz: 5a7ffd4a138edf79c01bb8af11817c082ffa7f34
3
+ metadata.gz: 663547541ff47210168ea5bf1322ebdb9fe0df58
4
+ data.tar.gz: 1f2710ed5c8b320293923f20448a7d0c6d52e099
5
5
  SHA512:
6
- metadata.gz: cac726968d4d54a923ad181e6cb6291df404e2939d74d12910afd5eae36ba6d99ccc701e7d00fe7a2bd2ec9dd2276a63f57808c96352581fffc1d221d603ee1e
7
- data.tar.gz: b20ab1b87988c254de6d0d925fa472c86e0fcaabdc4ece5f7911b5af9aed31b773e0e3bbec51acd2a6217e6f7c0a0c687ccbf1a1264fb57abdb27791f3d836dd
6
+ metadata.gz: 552ce1999eda34099cb20965dfb2784fbd61e476b0386a50a2bbd955593720009eafab39bf81278d094ef774ecd36ad1e2ba2e6b4d1a7423c16055068cec3a43
7
+ data.tar.gz: 6cbb53c3de91c94ad595a8f21556b7de039a3db07c5ae43dbfd38d6350b360c662c30ca7a2fbad8a7ed11e9ba67829126f168f020bf195594484bb70be5e19fd
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_runtime_dependency 'celluloid', '>= 0.16', '>= 0.16.0'
21
21
  s.add_runtime_dependency 'celluloid-pmap', '~> 0.2', '>= 0.2.2'
22
- s.add_runtime_dependency 'celluloid_pubsub', '~> 0.7', '>= 0.7.2'
22
+ s.add_runtime_dependency 'celluloid_pubsub', '~> 0.8', '>= 0.8.1'
23
23
  s.add_runtime_dependency 'celluloid-websocket-client', '~> 0.0', '>= 0.0.1'
24
24
  s.add_runtime_dependency 'composable_state_machine', '~> 1.0', '>= 1.0.2'
25
25
  s.add_runtime_dependency 'terminal-table', '~> 1.5', '>= 1.5.2'
@@ -49,7 +49,7 @@ module CapistranoMulticonfigParallel
49
49
 
50
50
  def set_celluloid_exception_handling
51
51
  Celluloid.logger = logger
52
- Celluloid.task_class = Celluloid::TaskThread
52
+ Celluloid.task_class = defined?(Celluloid::TaskThread) ? Celluloid::TaskThread : Celluloid::Task::Threaded
53
53
  Celluloid.exception_handler do |ex|
54
54
  unless ex.is_a?(Interrupt)
55
55
  rescue_error(ex, 'stderr')
@@ -21,7 +21,8 @@ module CapistranoMulticonfigParallel
21
21
  # Get a handle on the SupervisionGroup::Member
22
22
  @mutex = Mutex.new
23
23
  # http://rubydoc.info/gems/celluloid/Celluloid/SupervisionGroup/Member
24
- @workers = setup_pool_of_actor(@worker_supervisor, actor_name: :workers, type: CapistranoMulticonfigParallel::CelluloidWorker, size: 10)
24
+ setup_pool_of_actor(@worker_supervisor, actor_name: :workers, type: CapistranoMulticonfigParallel::CelluloidWorker, size: 10)
25
+ @workers = Celluloid::Actor[:workers]
25
26
  Actor.current.link @workers
26
27
  setup_actor_supervision(@worker_supervisor, actor_name: :terminal_server, type: CapistranoMulticonfigParallel::TerminalTable, args: [Actor.current, @job_manager, configuration.fetch(:terminal, {})])
27
28
  setup_actor_supervision(@worker_supervisor, actor_name: :web_server, type: CapistranoMulticonfigParallel::WebServer, args: websocket_config)
@@ -25,6 +25,9 @@ module CapistranoMulticonfigParallel
25
25
  :successfull_subscription, :subscription_channel, :publisher_channel, # for subscriptions and publishing events
26
26
  :job_termination_condition, :worker_state, :invocation_chain, :filename, :worker_log, :exit_status
27
27
 
28
+ def initialize(*args)
29
+ end
30
+
28
31
  def work(job, manager)
29
32
  @job = job
30
33
  @job_id = job.id
@@ -74,7 +74,11 @@ module CapistranoMulticonfigParallel
74
74
 
75
75
  def supervise_actor
76
76
  return unless actor.blank?
77
+ if CapistranoMulticonfigParallel::BaseActorHelper::ClassMethods.version_less_than_seventeen?
77
78
  CapistranoMulticonfigParallel::RakeWorker.supervise_as(rake_actor_id)
79
+ else
80
+ CapistranoMulticonfigParallel::RakeWorker.supervise(as: rake_actor_id)
81
+ end
78
82
  end
79
83
 
80
84
  def rake_actor_id
@@ -28,7 +28,7 @@ module CapistranoMulticonfigParallel
28
28
  end
29
29
 
30
30
  def version_less_than_seventeen?
31
- verify_gem_version('celluloid', '0.17', operator: '<')
31
+ verify_gem_version(celluloid_version, '0.17', operator: '<')
32
32
  end
33
33
  end
34
34
  end
@@ -37,14 +37,25 @@ module CapistranoMulticonfigParallel
37
37
  delegate :version_less_than_seventeen?,
38
38
  to: :'CapistranoMulticonfigParallel::BaseActorHelper::ClassMethods'
39
39
 
40
- def setup_actor_supervision(class_name, options)
41
- arguments = options[:args].is_a?(Array) ? options[:args] : [options[:args]]
40
+
41
+ def setup_actor_supervision_details(class_name, options)
42
+ arguments = (options[:args].is_a?(Array) ? options[:args] : [options[:args]]).compact
42
43
  if version_less_than_seventeen?
43
- class_name.supervise_as(options[:actor_name], options[:type], *arguments)
44
+ [options[:actor_name], options[:type], *arguments]
44
45
  else
45
46
  #supervises_opts = options[:supervises].present? ? { supervises: options[:supervises] } : {}
46
- default_opts = options[:actor_name].present? ? { as: options[:actor_name], type: options[:type], args: arguments, size: options.fetch(:size, nil) } : {}
47
- class_name.supervise(default_opts)
47
+ { as: options[:actor_name], type: options[:type], args: arguments, size: options.fetch(:size, nil) }
48
+ end
49
+ end
50
+
51
+
52
+ def setup_actor_supervision(class_name, options)
53
+ if version_less_than_seventeen?
54
+ class_name.supervise_as(*setup_actor_supervision_details(class_name, options))
55
+ else
56
+ setup_supervision_group do |supervisor|
57
+ supervisor.supervise setup_actor_supervision_details(class_name, options)
58
+ end
48
59
  end
49
60
  end
50
61
 
@@ -52,7 +63,9 @@ module CapistranoMulticonfigParallel
52
63
  if version_less_than_seventeen?
53
64
  Celluloid::SupervisionGroup.run!
54
65
  else
55
- Celluloid::Supervision::Container.run!
66
+ Class.new(Celluloid::Supervision::Container) do
67
+ yield(self) if block_given?
68
+ end.run!
56
69
  end
57
70
  end
58
71
 
@@ -60,7 +73,10 @@ module CapistranoMulticonfigParallel
60
73
  if version_less_than_seventeen?
61
74
  class_name.pool(options[:type], as: options[:actor_name], size: options.fetch(:size, 10))
62
75
  else
63
- setup_actor_supervision(class_name, options)
76
+ options = setup_actor_supervision_details(class_name, options)
77
+ setup_supervision_group do |supervisor|
78
+ supervisor.pool *[options[:type], options.except(:type)]
79
+ end
64
80
  end
65
81
  end
66
82
  end
@@ -7,7 +7,7 @@ module CapistranoMulticonfigParallel
7
7
  # module used for generating the version
8
8
  module VERSION
9
9
  MAJOR = 1
10
- MINOR = 6
10
+ MINOR = 7
11
11
  TINY = 0
12
12
  PRE = nil
13
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano_multiconfig_parallel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-05 00:00:00.000000000 Z
11
+ date: 2016-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: celluloid
@@ -56,20 +56,20 @@ dependencies:
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '0.7'
59
+ version: '0.8'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 0.7.2
62
+ version: 0.8.1
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0.7'
69
+ version: '0.8'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 0.7.2
72
+ version: 0.8.1
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: celluloid-websocket-client
75
75
  requirement: !ruby/object:Gem::Requirement