capistrano_multiconfig_parallel 0.23.2 → 0.23.3

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: 1ae7c4b376c7329c94f00f2335f312f73bc4d42d
4
- data.tar.gz: 210843574ae404d0a2e6ec626e7fdb303063e9d8
3
+ metadata.gz: fc16361255623968a8072c114d5bc7a6129be46d
4
+ data.tar.gz: 2c6477dede330ad276c6b985aea54fddeb2a0e2b
5
5
  SHA512:
6
- metadata.gz: 17e1c46a802f7dc6811708f9be41928b757e54a0be99e82fe4cc09fd14c2991c48726c84f540477e9016aa9ee7f8c9564cd91aca59a55b20b0c0075f2d7f94df
7
- data.tar.gz: 26c7014872dda4f088f9d40e91d0d85d66c75bcb217de791018cc12400beabdd75af3fc09593b1b56504ddf044867309252230742c5a1ad00382f83a59ffb5ec
6
+ metadata.gz: cd160acb58df0e43783156957ced50e4cd67d142c3173240d2bac8aa1a0161e36eb6ea034d1d94aa903bec150783fc2033bc79daa56b84d15a7bf0ac0fdb00f0
7
+ data.tar.gz: afed88d835ba15464fb6413ceb0cea5294745e91919441a0cb3624e3d98517ea2edbcbe3a653999694a5e4f87f4f840b83ccf0ff89bcf9eb2042333c326812af
data/.reek CHANGED
@@ -1,3 +1,7 @@
1
1
  ---
2
2
  Attribute:
3
3
  enabled: false
4
+ TooManyInstanceVariables:
5
+ enabled: false
6
+ TooManyMethods:
7
+ enabled: false
@@ -14,20 +14,25 @@ module CapistranoMulticonfigParallel
14
14
  def initialize(manager, job_manager)
15
15
  @manager = manager
16
16
  @job_manager = job_manager
17
+ @table = Terminal::Table.new(title: 'Deployment Status Table', headings: default_heaadings)
17
18
  async.run
18
19
  rescue => ex
19
20
  rescue_exception(ex)
20
21
  end
21
22
 
23
+ def default_heaadings
24
+ ['Job ID', 'Job UUID', 'App/Stage', 'Action', 'ENV Variables', 'Current Task']
25
+ end
26
+
22
27
  def run
23
28
  subscribe(CapistranoMulticonfigParallel::TerminalTable.topic, :notify_time_change)
24
29
  end
25
30
 
26
- def notify_time_change(_topic, _message)
27
- table = Terminal::Table.new(title: 'Deployment Status Table', headings: ['Job ID', 'Job UUID', 'App/Stage', 'Action', 'ENV Variables', 'Current Task'])
31
+ def notify_time_change(_channel, _message)
32
+ @table.rows = []
28
33
  jobs = @manager.alive? ? @manager.jobs.dup : []
29
- setup_table_jobs(table, jobs)
30
- display_table_on_terminal(table)
34
+ setup_table_jobs(jobs)
35
+ display_table_on_terminal
31
36
  end
32
37
 
33
38
  def rescue_exception(ex)
@@ -36,16 +41,16 @@ module CapistranoMulticonfigParallel
36
41
  terminate
37
42
  end
38
43
 
39
- def display_table_on_terminal(table)
44
+ def display_table_on_terminal
40
45
  terminal_clear
41
- puts "\n#{table}\n"
46
+ puts "\n#{@table}\n"
42
47
  signal_complete
43
48
  end
44
49
 
45
- def setup_table_jobs(table, jobs)
50
+ def setup_table_jobs(jobs)
46
51
  jobs.each_with_index do |(_job_id, job), count|
47
- table.add_row(job.terminal_row(count))
48
- table.add_separator
52
+ @table.add_row(job.terminal_row(count))
53
+ @table.add_separator
49
54
  end
50
55
  end
51
56
 
@@ -14,17 +14,17 @@ module CapistranoMulticonfigParallel
14
14
 
15
15
  def fetch_menu
16
16
  print_menu_choices
17
- default_printing
18
- result = show_all_websites_interactive_menu
17
+ result = print_selections
19
18
  print "#{@msg}\n"
20
19
  result.present? ? result.split(',') : []
21
20
  end
22
21
 
23
22
  private
24
23
 
25
- def default_printing
24
+ def print_selections
26
25
  print "\nYou selected"
27
26
  @msg = ' nothing'
27
+ show_all_websites_interactive_menu
28
28
  end
29
29
 
30
30
  def show_all_websites_interactive_menu
@@ -12,7 +12,7 @@ module CapistranoMulticonfigParallel
12
12
  :capistrano_action,
13
13
  :build_capistrano_task,
14
14
  :execute_standard_deploy,
15
- :setup_command_line_standard,
15
+ :setup_command_line,
16
16
  to: :command
17
17
 
18
18
  def initialize(application, options)
@@ -29,14 +29,18 @@ module CapistranoMulticonfigParallel
29
29
  @command ||= CapistranoMulticonfigParallel::JobCommand.new(self)
30
30
  end
31
31
 
32
+ def terminal_env_variables
33
+ setup_command_line(filtered_keys: [env_variable])
34
+ end
35
+
32
36
  def terminal_row(index)
33
37
  [
34
38
  { value: (index + 1).to_s },
35
39
  { value: id.to_s },
36
- { value: job_stage },
37
- { value: capistrano_action },
38
- { value: setup_command_line_standard(filtered_keys: [env_variable]).join("\n") },
39
- { value: worker_state }
40
+ { value: wrap_string(job_stage) },
41
+ { value: wrap_string(capistrano_action) },
42
+ { value: terminal_env_variables.map { |str| wrap_string(str) }.join("\n") },
43
+ { value: wrap_string(worker_state) }
40
44
  ]
41
45
  end
42
46
 
@@ -58,15 +62,15 @@ module CapistranoMulticonfigParallel
58
62
  end
59
63
 
60
64
  def id
61
- @id ||= SecureRandom.uuid
65
+ @id ||= @options.fetch('id', SecureRandom.uuid)
62
66
  end
63
67
 
64
68
  def status
65
- @status ||= :unstarted
69
+ @status ||= @options.fetch('status', :unstarted)
66
70
  end
67
71
 
68
72
  def exit_status
69
- @exit_status ||= nil
73
+ @exit_status ||= @options.fetch('exit_status', nil)
70
74
  end
71
75
 
72
76
  [
@@ -26,28 +26,27 @@ module CapistranoMulticonfigParallel
26
26
  "#{rake_action}#{argv}"
27
27
  end
28
28
 
29
+ def env_option_filtered?(key, filtered_keys_array = [])
30
+ filtered_env_keys.include?(key) || filtered_keys_array.include?(key.to_s)
31
+ end
32
+
29
33
  def setup_env_options(options = {})
30
- options.stringify_keys!
31
34
  array_options = []
32
35
  env_options.each do |key, value|
33
- array_options << "#{key}=#{value}" if value.present? && (!filtered_env_keys.include?(key) && !options.fetch('filtered_keys', []).include?(key.to_s))
36
+ array_options << "#{key}=#{value}" if value.present? && !env_option_filtered?(key, options.fetch(:filtered_keys, []))
34
37
  end
35
38
  array_options << '--trace' if app_debug_enabled?
36
39
  array_options
37
40
  end
38
41
 
39
- def setup_command_line_standard(*args)
40
- options = args.extract_options!
41
- array_options = setup_env_options(options)
42
- args.each do |arg|
43
- array_options << arg if arg.present?
44
- end
45
- array_options
42
+ def setup_command_line(*args)
43
+ new_arguments, options = setup_command_line_standard(*args)
44
+ setup_env_options(options).concat(new_arguments)
46
45
  end
47
46
 
48
- def build_capistrano_task(rake_action = nil, env = [])
47
+ def build_capistrano_task(rake_action = nil, *args)
49
48
  rake_action = rake_action.present? ? rake_action : action
50
- environment_options = setup_command_line_standard(env).join(' ')
49
+ environment_options = setup_command_line(*args).join(' ')
51
50
  "cd #{detect_root} && RAILS_ENV=#{@stage} bundle exec multi_cap #{job_stage} #{capistrano_action(rake_action)} #{environment_options}"
52
51
  end
53
52
 
@@ -7,9 +7,12 @@ module CapistranoMulticonfigParallel
7
7
 
8
8
  # method used to start
9
9
  def start
10
- check_terminal_tty
11
- CapistranoMulticonfigParallel.original_args = ARGV.dup
10
+ before_start
12
11
  arguments = multi_fetch_argv(original_args)
12
+ execute_start(arguments)
13
+ end
14
+
15
+ def execute_start(arguments)
13
16
  if arguments[CapistranoMulticonfigParallel::ENV_KEY_JOB_ID].blank?
14
17
  require_relative './application'
15
18
  run_the_application
@@ -18,6 +21,11 @@ module CapistranoMulticonfigParallel
18
21
  end
19
22
  end
20
23
 
24
+ def before_start
25
+ check_terminal_tty
26
+ CapistranoMulticonfigParallel.original_args = ARGV.dup
27
+ end
28
+
21
29
  def run_the_application
22
30
  execute_with_rescue('stderr') do
23
31
  configuration_valid?
@@ -14,6 +14,17 @@ module CapistranoMulticonfigParallel
14
14
 
15
15
  module_function
16
16
 
17
+ def setup_command_line_standard(*args)
18
+ options = args.extract_options!
19
+ args.select(&:present?)
20
+ [args, options]
21
+ end
22
+
23
+ def wrap_string(string, options = {})
24
+ options.stringify_keys!
25
+ string.scan(/.{#{options.fetch('length', 80)}}|.+/).map(&:strip).join(options.fetch('character', $INPUT_RECORD_SEPARATOR))
26
+ end
27
+
17
28
  def find_loaded_gem(name)
18
29
  Gem.loaded_specs.values.find { |repo| repo.name == name }
19
30
  end
@@ -79,28 +90,28 @@ module CapistranoMulticonfigParallel
79
90
  end
80
91
 
81
92
  def parse_task_string(string) # :nodoc:
82
- /^([^\[]+)(?:\[(.*)\])$/ =~ string.to_s
83
-
84
- name = regex_last_match(1)
85
- remaining_args = regex_last_match(2)
93
+ name, remaining_args = fetch_parsed_string(string)
94
+ name.present? ? find_remaining_args(name, remaining_args) : [string, []]
95
+ end
86
96
 
87
- return string, [] unless name
88
- return name, [] if remaining_args.empty?
97
+ def fetch_parsed_string(string)
98
+ /^([^\[]+)(?:\[(.*)\])$/ =~ string.to_s
99
+ [regex_last_match(1), regex_last_match(2)]
100
+ end
89
101
 
90
- args = find_remaining_args(remaining_args)
91
- [name, args]
102
+ def fetch_remaining_arguments(args, remaining_args)
103
+ /((?:[^\\,]|\\.)*?)\s*(?:,\s*(.*))?$/ =~ remaining_args
104
+ args << regex_last_match(1).gsub(/\\(.)/, '\1')
105
+ regex_last_match(2)
92
106
  end
93
107
 
94
- def find_remaining_args(remaining_args)
108
+ def find_remaining_args(name, remaining_args)
95
109
  args = []
96
110
  loop do
97
- /((?:[^\\,]|\\.)*?)\s*(?:,\s*(.*))?$/ =~ remaining_args
98
-
99
- remaining_args = regex_last_match(2)
100
- args << regex_last_match(1).gsub(/\\(.)/, '\1')
111
+ remaining_args = fetch_remaining_arguments(args, remaining_args)
101
112
  break if remaining_args.blank?
102
113
  end
103
- args
114
+ [name, args]
104
115
  end
105
116
  end
106
117
  end
@@ -0,0 +1,3 @@
1
+ Terminal::Table.class_eval do
2
+ attr_accessor :rows
3
+ end
@@ -8,7 +8,7 @@ module CapistranoMulticonfigParallel
8
8
  module VERSION
9
9
  MAJOR = 0
10
10
  MINOR = 23
11
- TINY = 2
11
+ TINY = 3
12
12
  PRE = nil
13
13
 
14
14
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano_multiconfig_parallel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.2
4
+ version: 0.23.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
@@ -662,6 +662,7 @@ files:
662
662
  - lib/capistrano_multiconfig_parallel/helpers/core_helper.rb
663
663
  - lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb
664
664
  - lib/capistrano_multiconfig_parallel/initializers/rake.rb
665
+ - lib/capistrano_multiconfig_parallel/initializers/terminal-table.rb
665
666
  - lib/capistrano_multiconfig_parallel/version.rb
666
667
  homepage: http://github.com/bogdanRada/capistrano_multiconfig_parallel/
667
668
  licenses: