capistrano_multiconfig_parallel 2.0.8 → 2.0.9

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: 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