capistrano_multiconfig_parallel 2.0.8 → 2.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 951c2c37ab7dc5e1ebc9356c94eeefabd2a46783
4
- data.tar.gz: 821cafc97c35075c5488980d8e6d0a44d182e72e
3
+ metadata.gz: 7c4eed71b6e4d4a89cd378fe8db3a8a3e9bf30e7
4
+ data.tar.gz: 8affa031ae36f442a83d350a4188db99904661a5
5
5
  SHA512:
6
- metadata.gz: 6dc69605ba2600684c094956e624d2e84f34bbf2c4901f36c8ec7f279f811e92f03df4faea20da40b9a8b7eb8f8e18d354c5ef0b106ff7d09aa420b68fe3538b
7
- data.tar.gz: 00e88e2b05782487fd1e44019762ff2ab80a2a56261d00eb310e371a4549a4df9a6c1355884185c6e9fdb9c632caa304c4ac1a0a4f810c72407085bee04b2334
6
+ metadata.gz: fb874d06f84ca5c37c524484cb3973e595c8048b028e1edecd953d63f6d2b30f173ab2d3fdb8817dfc4afc8951d8e5dd6854e7afe0655c9025405589cfffacb5
7
+ data.tar.gz: 672d7a3c8d23749206bae3dee35e633a5c3ad8b790b0607ecd33c9b834e8c9513f0db17034d5a2bd7f6fc08c5a2aee1495e7c389fe2b5f2bf4722f77f41ed590
data/README.md CHANGED
@@ -32,7 +32,7 @@ NEW Improvements started in version 2.0.0.alpha ( currently gem is in stable ver
32
32
 
33
33
  - When the command will finish , the files created will be removed. ("Gemfile.multi_cap", "Gemfile.multi_cap.lock" and "Capfile.multi_cap") if they exist in the application root directory.
34
34
 
35
- - If you are using RVM and there is a .rvmrc file in your project root directory and bash is available , the script will use bash emulator in order to properly load RVM gemsets because .rvmrc files need trusting. **If you use .rvmrc files please make sure you have the `bash` executable available in your PATH**
35
+ - If you are using RVM and there is a .rvmrc file in your project root directory and bash is available , the script will use bash emulator in order to properly load RVM gemsets because .rvmrc files need trusting. **If you use .rvmrc files please make sure you have the `bash` executable available in your PATH** . Please consider switching to .ruby-version and .ruby-gemset files instead which are faster and don't require trusting. You can read more about it here [RVM Workflow](https://rvm.io/workflow/projects)
36
36
 
37
37
  - **Dont use BUNDLE EXEC command when running the executable for this gem unless you are using version 1 or this gem is part of the Gemfile of the application you are using. Otherwise just use the `multi_cap` executable without any prefix ( Unless this gem is part of your gemfile, in which case the BUNDLE EXEC prefix is needed )**
38
38
 
@@ -44,7 +44,7 @@ Requirements
44
44
 
45
45
  1. [celluloid >= 0.16](https://github.com/celluloid/celluloid)
46
46
  2. [celluloid-pmap >= 0.2.2](https://github.com/jwo/celluloid-pmap)
47
- 3. [celluloid_pubsub >= 0.8.3](https://github.com/bogdanRada/celluloid_pubsub)
47
+ 3. [celluloid_pubsub >= 0.8.4](https://github.com/bogdanRada/celluloid_pubsub)
48
48
  4. [composable_state_machine >= 1.0.2](https://github.com/swoop-inc/composable_state_machine)
49
49
  5. [terminal-table >= 1.5.2](https://github.com/tj/terminal-table)
50
50
  6. [colorize >= 0.7](https://github.com/fazibear/colorize)
@@ -54,17 +54,17 @@ Requirements
54
54
  10. [configliere >= 0.4](https://github.com/infochimps-platform/configliere)
55
55
  11. [inquirer >= 0.2](https://github.com/arlimus/inquirer.rb)
56
56
  12. [devnull >= 0.1](https://github.com/arlimus/inquirer.rb)
57
- 13. [capistrano_sentinel >= 0.0.16](http://github.com/bogdanRada/capistrano_sentinel)
57
+ 13. [capistrano_sentinel >= 0.0.17](http://github.com/bogdanRada/capistrano_sentinel)
58
58
  14. [powerbar >= 1.0.17](https://github.com/busyloop/powerbar)
59
59
 
60
60
  Compatibility
61
61
  -------------
62
62
 
63
- Rails >3.0 only. [MRI 1.9.x or 2.x](http://www.ruby-lang.org)
63
+ [MRI >= 2.2](http://www.ruby-lang.org) due to activesupport dependency. We will accept further compatibilty for **MRI > 2.0 and <= 2.2** pull-requests but no upcoming versions will be tested against it.
64
64
 
65
- Ruby 1.8 is not officially supported. We will accept further compatibilty pull-requests but no upcoming versions will be tested against it.
65
+ Ruby 1.8, 1.9 are not officially supported.
66
66
 
67
- Rubinius and Jruby support temporarily dropped due to Rails 4 incompatibility.
67
+ Rubinius and Jruby support dropped.
68
68
 
69
69
  Installation Instructions
70
70
  -------------------------
@@ -16,11 +16,11 @@ Gem::Specification.new do |s|
16
16
  s.test_files = s.files.grep(/^(spec)/)
17
17
  s.require_paths = ['lib']
18
18
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
- s.required_ruby_version = '>= 2.0'
19
+ s.required_ruby_version = '>= 2.2'
20
20
 
21
21
  s.add_runtime_dependency 'celluloid', '>= 0.16', '>= 0.16'
22
22
  s.add_runtime_dependency 'celluloid-pmap', '~> 0.2', '>= 0.2.2'
23
- s.add_runtime_dependency 'celluloid_pubsub', '~> 0.8', '>= 0.8.3'
23
+ s.add_runtime_dependency 'celluloid_pubsub', '~> 0.8', '>= 0.8.4'
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'
26
26
  s.add_runtime_dependency 'colorize', '~> 0.7', '>= 0.7'
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_runtime_dependency 'configliere', '~> 0.4', '>=0.4'
31
31
  s.add_runtime_dependency 'inquirer', '~> 0.2', '>= 0.2'
32
32
  s.add_runtime_dependency 'devnull','~> 0.1', '>= 0.1'
33
- s.add_runtime_dependency 'capistrano_sentinel', '>= 0.0', '>= 0.0.16'
33
+ s.add_runtime_dependency 'capistrano_sentinel', '>= 0.0', '>= 0.0.17'
34
34
  s.add_runtime_dependency 'powerbar', '~> 1.0', '>= 1.0.17'
35
35
 
36
36
  s.add_development_dependency 'rake', '>= 10.4', '>= 10.4'
@@ -4,13 +4,14 @@ require 'bundler/setup'
4
4
 
5
5
  require 'active_support/core_ext/object/blank'
6
6
  require 'active_support/core_ext/hash/keys'
7
- require 'active_support/core_ext/module/delegation'
8
- require 'active_support/concern'
7
+ require 'active_support/core_ext/hash/slice'
8
+ require 'active_support/core_ext/string/inflections'
9
+ require 'active_support/core_ext/hash/reverse_merge'
10
+ require 'active_support/core_ext/array/extract_options'
11
+ require 'active_support/core_ext/enumerable'
9
12
 
10
- require_relative './helpers/base_actor_helper'
11
13
  require 'celluloid/pmap'
12
14
  require 'celluloid_pubsub'
13
-
14
15
  require 'composable_state_machine'
15
16
  require 'eventmachine'
16
17
  require 'right_popen'
@@ -29,10 +30,13 @@ require 'pp'
29
30
  require 'yaml'
30
31
  require 'stringio'
31
32
  require 'io/console'
33
+ require 'forwardable'
32
34
 
33
35
  # fix error with not files that can not be found
34
36
  Gem.find_files('composable_state_machine/**/*.rb').each { |path| require path }
35
37
 
38
+ require_relative './helpers/base_actor_helper'
39
+
36
40
  %w(helpers classes celluloid).each do |folder_name|
37
41
  Gem.find_files("capistrano_multiconfig_parallel/#{folder_name}/**/*.rb").each { |path| require path }
38
42
  end
@@ -82,7 +82,7 @@ module CapistranoMulticonfigParallel
82
82
  @application = custom_command? ? nil : @top_level_tasks.first.split(':').reverse[1]
83
83
  @stage = custom_command? ? nil : @top_level_tasks.first.split(':').reverse[0]
84
84
  @stage = @stage.present? ? @stage : @default_stage
85
- @name, @args = parse_task_string(@top_level_tasks.second)
85
+ @name, @args = parse_task_string(@top_level_tasks[1])
86
86
  end
87
87
 
88
88
  def collect_command_line_tasks(args) # :nodoc:
@@ -3,15 +3,13 @@ require_relative '../helpers/base_actor_helper'
3
3
  module CapistranoMulticonfigParallel
4
4
  # class used to display the progress of each worker on terminal screen using a table
5
5
  class TerminalTable
6
- include CapistranoMulticonfigParallel::BaseActorHelper
6
+ extend Forwardable
7
+ include CapistranoMulticonfigParallel::BaseActorHelper
7
8
 
8
9
  attr_reader :options, :errors, :manager, :position, :job_manager, :terminal_rows, :screen_erased
9
10
 
10
- delegate :workers_terminated,
11
- to: :manager
12
-
13
- delegate :condition,
14
- to: :job_manager
11
+ def_delegators :@manager, :workers_terminated
12
+ def_delegators :@job_manager, :condition
15
13
 
16
14
  def self.topic
17
15
  'sshkit_terminal'
@@ -64,12 +62,12 @@ module CapistranoMulticonfigParallel
64
62
  def display_table_on_terminal(table, jobs)
65
63
  table_size = fetch_table_size(jobs)
66
64
  @position, @terminal_rows, @screen_erased = @cursor.display_on_screen(
67
- "#{table}",
68
- @options.merge(
69
- position: @position,
70
- table_size: table_size,
71
- screen_erased: @screen_erased
72
- )
65
+ "#{table}",
66
+ @options.merge(
67
+ position: @position,
68
+ table_size: table_size,
69
+ screen_erased: @screen_erased
70
+ )
73
71
  )
74
72
  print_errors
75
73
  end
@@ -94,7 +92,7 @@ module CapistranoMulticonfigParallel
94
92
  end
95
93
 
96
94
  def managers_alive?
97
- @manager.alive?
95
+ @manager.alive?
98
96
  end
99
97
 
100
98
  def signal_complete
@@ -25,7 +25,8 @@ module CapistranoMulticonfigParallel
25
25
  return [[], {}] if configuration.application_dependencies.blank? || application.blank?
26
26
  applications = get_applications_to_deploy(action, [application.camelcase])
27
27
  applications = applications.present? ? applications : []
28
- app_options = applications.find { |hash| hash['app'] == application }.try(:dup)
28
+ app_options = applications.find { |hash| hash['app'] == application }
29
+ app_options = app_options.present? ? app_options.dup : app_options
29
30
  applications.delete_if { |hash| hash['app'] == application }
30
31
  [applications, (app_options || {})]
31
32
  end
@@ -3,13 +3,14 @@ require_relative './job_command'
3
3
  module CapistranoMulticonfigParallel
4
4
  # class used for defining the job class
5
5
  class Job
6
+ extend Forwardable
6
7
  include CapistranoMulticonfigParallel::ApplicationHelper
7
8
 
8
9
  attr_reader :options, :application, :manager, :bundler_status, :bundler_check_status
9
10
  attr_writer :status, :exit_status, :bundler_status, :new_jobs_dispatched, :will_dispatch_new_job, :bundler_check_status
10
11
 
11
- delegate :stderr_buffer,
12
- to: :manager
12
+ def_delegators :@manager, :stderr_buffer
13
+
13
14
 
14
15
  def initialize(application, options)
15
16
  @options = options.stringify_keys
@@ -3,11 +3,12 @@ require_relative '../helpers/application_helper'
3
3
  module CapistranoMulticonfigParallel
4
4
  # class used to find application dependencies
5
5
  class JobCommand
6
- include FileUtils
6
+ extend Forwardable
7
7
  include CapistranoMulticonfigParallel::ApplicationHelper
8
8
 
9
9
  attr_reader :job, :job_capistrano_version, :legacy_capistrano, :tempfile, :job_final_gemfile, :job_final_capfile
10
- delegate :id, :app, :stage, :action, :task_arguments, :env_options, :path, to: :job
10
+
11
+ def_delegators :@job, :id, :app, :stage, :action, :task_arguments, :env_options, :path
11
12
 
12
13
  def initialize(job)
13
14
  @job = job
@@ -14,106 +14,110 @@ module CapistranoMulticonfigParallel
14
14
  include CapistranoMulticonfigParallel::GemHelper
15
15
  include CapistranoMulticonfigParallel::CapistranoHelper
16
16
 
17
- delegate :logger,
18
- :configuration,
19
- :configuration_valid?,
20
- :original_args,
21
- to: :CapistranoMulticonfigParallel
17
+ [
18
+ :logger,
19
+ :configuration,
20
+ :configuration_valid?,
21
+ :original_args
22
+ ].each do |method_name|
23
+ define_method(method_name) do
24
+ CapistranoMulticonfigParallel.send(method_name)
25
+ end
26
+ end
22
27
 
28
+ module_function
23
29
 
24
- module_function
30
+ def truncate(string, truncate_at, options = {})
31
+ return string.dup unless string.length > truncate_at
25
32
 
26
- def truncate(string, truncate_at, options = {})
27
- return string.dup unless string.length > truncate_at
33
+ options[:omission] ||= '...'
34
+ length_with_room_for_omission = truncate_at - options[:omission].length
35
+ stop = if options[:separator]
36
+ string.rindex(options[:separator], length_with_room_for_omission) || length_with_room_for_omission
37
+ else
38
+ length_with_room_for_omission
39
+ end
28
40
 
29
- options[:omission] ||= '...'
30
- length_with_room_for_omission = truncate_at - options[:omission].length
31
- stop = if options[:separator]
32
- string.rindex(options[:separator], length_with_room_for_omission) || length_with_room_for_omission
33
- else
34
- length_with_room_for_omission
41
+ "#{string[0...stop]}#{options[:omission]}"
35
42
  end
36
43
 
37
- "#{string[0...stop]}#{options[:omission]}"
38
- end
39
-
40
- # Method that is used to parse a string as JSON , if it fails will return nil
41
- # @see JSON#parse
42
- # @param [string] res The string that will be parsed as JSON
43
- # @return [Hash, nil] Returns Hash object if the json parse succeeds or nil otherwise
44
- def parse_json(res)
45
- return if res.blank?
46
- JSON.parse(res)
47
- rescue JSON::ParserError
48
- nil
49
- end
44
+ # Method that is used to parse a string as JSON , if it fails will return nil
45
+ # @see JSON#parse
46
+ # @param [string] res The string that will be parsed as JSON
47
+ # @return [Hash, nil] Returns Hash object if the json parse succeeds or nil otherwise
48
+ def parse_json(res)
49
+ return if res.blank?
50
+ JSON.parse(res)
51
+ rescue JSON::ParserError
52
+ nil
53
+ end
50
54
 
51
- def msg_for_stdin?(message)
52
- message['action'] == 'stdin'
53
- end
55
+ def msg_for_stdin?(message)
56
+ message['action'] == 'stdin'
57
+ end
54
58
 
55
- def message_is_for_stdout?(message)
56
- message.present? && message.is_a?(Hash) && message['action'].present? && message['job_id'].present? && message['action'] == 'stdout'
57
- end
59
+ def message_is_for_stdout?(message)
60
+ message.present? && message.is_a?(Hash) && message['action'].present? && message['job_id'].present? && message['action'] == 'stdout'
61
+ end
58
62
 
59
- def message_is_about_a_task?(message)
60
- message.present? && message.is_a?(Hash) && message['action'].present? && message['job_id'].present? && message['task'].present? && message['action'] == 'invoke'
61
- end
63
+ def message_is_about_a_task?(message)
64
+ message.present? && message.is_a?(Hash) && message['action'].present? && message['job_id'].present? && message['task'].present? && message['action'] == 'invoke'
65
+ end
62
66
 
63
- def message_from_bundler?(message)
64
- message.present? && message.is_a?(Hash) && message['action'].present? && message['job_id'].present? && message['task'].present? && message['action'] == 'bundle_install'
65
- end
67
+ def message_from_bundler?(message)
68
+ message.present? && message.is_a?(Hash) && message['action'].present? && message['job_id'].present? && message['task'].present? && message['action'] == 'bundle_install'
69
+ end
66
70
 
67
- def get_question_details(data)
68
- matches = /(.*)\?*\s*\:*\s*(\([^)]*\))*/m.match(data).captures
69
- [matches[0], matches[1]]
70
- end
71
+ def get_question_details(data)
72
+ matches = /(.*)\?*\s*\:*\s*(\([^)]*\))*/m.match(data).captures
73
+ [matches[0], matches[1]]
74
+ end
71
75
 
72
- def setup_command_line_standard(*args)
73
- options = args.extract_options!
74
- [args.select(&:present?), options]
75
- end
76
+ def setup_command_line_standard(*args)
77
+ options = args.extract_options!
78
+ [args.select(&:present?), options]
79
+ end
76
80
 
77
- def wrap_string(string, options = {})
78
- options.stringify_keys!
79
- string.scan(/.{#{options.fetch('length', 80)}}|.+/).map(&:strip).join(options.fetch('character', $INPUT_RECORD_SEPARATOR))
80
- end
81
+ def wrap_string(string, options = {})
82
+ options.stringify_keys!
83
+ string.scan(/.{#{options.fetch('length', 80)}}|.+/).map(&:strip).join(options.fetch('character', $INPUT_RECORD_SEPARATOR))
84
+ end
81
85
 
82
- def percent_of(index, total)
83
- index.to_f / total.to_f * 100.0
84
- end
86
+ def percent_of(index, total)
87
+ index.to_f / total.to_f * 100.0
88
+ end
85
89
 
86
- def action_confirmed?(result)
87
- result.present? && result.downcase == 'y'
88
- end
90
+ def action_confirmed?(result)
91
+ result.present? && result.downcase == 'y'
92
+ end
89
93
 
90
- def regex_last_match(number)
91
- Regexp.last_match(number)
92
- end
94
+ def regex_last_match(number)
95
+ Regexp.last_match(number)
96
+ end
93
97
 
94
- def parse_task_string(string) # :nodoc:
95
- name, remaining_args = fetch_parsed_string(string)
96
- name.present? ? find_remaining_args(name, remaining_args) : [string, []]
97
- end
98
+ def parse_task_string(string) # :nodoc:
99
+ name, remaining_args = fetch_parsed_string(string)
100
+ name.present? ? find_remaining_args(name, remaining_args) : [string, []]
101
+ end
98
102
 
99
- def fetch_parsed_string(string)
100
- /^([^\[]+)(?:\[(.*)\])$/ =~ string.to_s
101
- [regex_last_match(1), regex_last_match(2)]
102
- end
103
+ def fetch_parsed_string(string)
104
+ /^([^\[]+)(?:\[(.*)\])$/ =~ string.to_s
105
+ [regex_last_match(1), regex_last_match(2)]
106
+ end
103
107
 
104
- def fetch_remaining_arguments(args, remaining_args)
105
- /((?:[^\\,]|\\.)*?)\s*(?:,\s*(.*))?$/ =~ remaining_args
106
- args << regex_last_match(1).gsub(/\\(.)/, '\1')
107
- regex_last_match(2)
108
- end
108
+ def fetch_remaining_arguments(args, remaining_args)
109
+ /((?:[^\\,]|\\.)*?)\s*(?:,\s*(.*))?$/ =~ remaining_args
110
+ args << regex_last_match(1).gsub(/\\(.)/, '\1')
111
+ regex_last_match(2)
112
+ end
109
113
 
110
- def find_remaining_args(name, remaining_args)
111
- args = []
112
- loop do
113
- remaining_args = fetch_remaining_arguments(args, remaining_args)
114
- break if remaining_args.blank?
114
+ def find_remaining_args(name, remaining_args)
115
+ args = []
116
+ loop do
117
+ remaining_args = fetch_remaining_arguments(args, remaining_args)
118
+ break if remaining_args.blank?
119
+ end
120
+ [name, args]
115
121
  end
116
- [name, args]
117
122
  end
118
123
  end
119
- end
@@ -34,9 +34,14 @@ module CapistranoMulticonfigParallel
34
34
  end
35
35
 
36
36
  module InstanceMethods
37
- delegate :version_less_than_seventeen?,
38
- to: :'CapistranoMulticonfigParallel::BaseActorHelper::ClassMethods'
39
-
37
+
38
+ [
39
+ :version_less_than_seventeen?,
40
+ ].each do |method_name|
41
+ define_method(method_name) do
42
+ CapistranoMulticonfigParallel::BaseActorHelper::ClassMethods.send(method_name)
43
+ end
44
+ end
40
45
 
41
46
  def setup_actor_supervision_details(class_name, options)
42
47
  arguments = (options[:args].is_a?(Array) ? options[:args] : [options[:args]]).compact
@@ -44,7 +49,7 @@ module CapistranoMulticonfigParallel
44
49
  [options[:actor_name], options[:type], *arguments]
45
50
  else
46
51
  #supervises_opts = options[:supervises].present? ? { supervises: options[:supervises] } : {}
47
- { as: options[:actor_name], type: options[:type], args: arguments, size: options.fetch(:size, nil) }
52
+ { as: options[:actor_name], type: options[:type], args: arguments, size: options.fetch(:size, nil) }
48
53
  end
49
54
  end
50
55
 
@@ -89,9 +89,7 @@ module CapistranoMulticonfigParallel
89
89
  end
90
90
 
91
91
  def print_to_log_file(worker_log, options = {})
92
- ActiveSupport::Deprecation.silence do
93
- worker_log.send(options.fetch(:log_method, 'debug'), "#{options.fetch(:message, '')}\n")
94
- end
92
+ worker_log.send(options.fetch(:log_method, 'debug'), "#{options.fetch(:message, '')}\n")
95
93
  end
96
94
 
97
95
  def find_worker_log(job_id, prefix = nil)
@@ -3,22 +3,6 @@ module CapistranoMulticonfigParallel
3
3
  module InternalHelper
4
4
  module_function
5
5
 
6
- def get_current_gem_name
7
- searcher = if Gem::Specification.respond_to? :find
8
- # ruby 2.0
9
- Gem::Specification
10
- elsif Gem.respond_to? :searcher
11
- # ruby 1.8/1.9
12
- Gem.searcher.init_gemspecs
13
- end
14
- spec = unless searcher.nil?
15
- searcher.find do |spec|
16
- File.fnmatch(File.join(spec.full_gem_path,'*'), __FILE__)
17
- end
18
- end
19
- spec.name if spec.present?
20
- end
21
-
22
6
  def get_current_gem_name
23
7
  searcher = if Gem::Specification.respond_to? :find
24
8
  # ruby 2.0
@@ -90,7 +74,7 @@ module CapistranoMulticonfigParallel
90
74
 
91
75
  def find_config_type(type)
92
76
  type = type.to_s
93
- %w(boolean filename string).include?(type) ? type.delete(':').to_sym : type.constantize
77
+ %w(boolean filename string).include?(type) ? type.delete(':').to_sym : type.to_s.constantize
94
78
  end
95
79
 
96
80
  def find_env_multi_cap_root
@@ -9,7 +9,7 @@ module CapistranoMulticonfigParallel
9
9
 
10
10
  MAJOR = 2
11
11
  MINOR = 0
12
- TINY = 8
12
+ TINY = 9
13
13
  PRE = nil
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
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: 2.0.8
4
+ version: 2.0.9
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-19 00:00:00.000000000 Z
11
+ date: 2016-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: celluloid
@@ -53,7 +53,7 @@ dependencies:
53
53
  version: '0.8'
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 0.8.3
56
+ version: 0.8.4
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -63,7 +63,7 @@ dependencies:
63
63
  version: '0.8'
64
64
  - - ">="
65
65
  - !ruby/object:Gem::Version
66
- version: 0.8.3
66
+ version: 0.8.4
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: composable_state_machine
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -247,7 +247,7 @@ dependencies:
247
247
  version: '0.0'
248
248
  - - ">="
249
249
  - !ruby/object:Gem::Version
250
- version: 0.0.16
250
+ version: 0.0.17
251
251
  type: :runtime
252
252
  prerelease: false
253
253
  version_requirements: !ruby/object:Gem::Requirement
@@ -257,7 +257,7 @@ dependencies:
257
257
  version: '0.0'
258
258
  - - ">="
259
259
  - !ruby/object:Gem::Version
260
- version: 0.0.16
260
+ version: 0.0.17
261
261
  - !ruby/object:Gem::Dependency
262
262
  name: powerbar
263
263
  requirement: !ruby/object:Gem::Requirement
@@ -545,7 +545,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
545
545
  requirements:
546
546
  - - ">="
547
547
  - !ruby/object:Gem::Version
548
- version: '2.0'
548
+ version: '2.2'
549
549
  required_rubygems_version: !ruby/object:Gem::Requirement
550
550
  requirements:
551
551
  - - ">="
@@ -553,7 +553,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
553
553
  version: '0'
554
554
  requirements: []
555
555
  rubyforge_project:
556
- rubygems_version: 2.4.8
556
+ rubygems_version: 2.6.4
557
557
  signing_key:
558
558
  specification_version: 4
559
559
  summary: CapistranoMulticonfigParallel is a simple ruby implementation that allows