ruby_fly 0.40.0.pre.4 → 0.40.0.pre.5

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
  SHA256:
3
- metadata.gz: babdef6b3e212cee202ef49c85e89dd4552bb1e0fed633b0c5bf36f6fea9feb1
4
- data.tar.gz: 5f4c0c37fb3993a9e11454d91a9178a25ddebe60539f6332557bc3aef92572f2
3
+ metadata.gz: 7085daa7a409ae5b4301901607937f845c8bbb5d33376634c0cd470fc771b36c
4
+ data.tar.gz: c528f7720ed3055571eecfd7712cc2b9c50a814fa99c775995d081888ad075f2
5
5
  SHA512:
6
- metadata.gz: 5acaa04994ed43b1e077425c8f6dbb378cf7be5ed91f88dcfbf156462954cb5407a600017ff9b91a5e9e78ea3d634dc1301a304ff5a4b690f1adcf53216323e3
7
- data.tar.gz: 881abd334d03fb4c88583bbd271c48c726a801321aaea36135f9ea28b26e37c36292cef5ec379dbbabf0092adb13d84e7ed1317379f1a7414fe2d0168478a84d
6
+ metadata.gz: 13596da5ab82b0031be0de4832ae502c852d34e17546148b71177474cfc748d4bec6fcf0b8d54fd11da5dcac89ec8b28ecefa157a880d5b342f573b6dc2cf4e9
7
+ data.tar.gz: 5d64c42f89490067e0af69bd5d1abf20898d0d5b9ea1468486caf148b4dec267e771f130d573a6a28562407196d84bc47bf50a69cfcebb08c7102acdc7424093
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby_fly (0.40.0.pre.4)
5
- lino (~> 3.0)
4
+ ruby_fly (0.40.0.pre.5)
5
+ lino (>= 4.1.0.pre.1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (7.1.1)
10
+ activesupport (7.1.3.4)
11
11
  base64
12
12
  bigdecimal
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -17,55 +17,89 @@ GEM
17
17
  minitest (>= 5.1)
18
18
  mutex_m
19
19
  tzinfo (~> 2.0)
20
- addressable (2.8.5)
21
- public_suffix (>= 2.0.2, < 6.0)
20
+ addressable (2.8.7)
21
+ public_suffix (>= 2.0.2, < 7.0)
22
22
  ast (2.4.2)
23
- base64 (0.1.1)
24
- bigdecimal (3.1.4)
23
+ base64 (0.2.0)
24
+ bigdecimal (3.1.8)
25
+ childprocess (5.0.0)
26
+ coderay (1.1.3)
25
27
  colored2 (3.1.2)
26
- concurrent-ruby (1.2.2)
28
+ concurrent-ruby (1.3.3)
27
29
  connection_pool (2.4.1)
28
- diff-lcs (1.5.0)
30
+ diff-lcs (1.5.1)
29
31
  docile (1.4.0)
30
- drb (2.1.1)
31
- ruby2_keywords
32
- excon (0.104.0)
32
+ drb (2.2.1)
33
+ excon (0.111.0)
33
34
  fakefs (2.5.0)
34
- faker (3.2.2)
35
+ faker (3.4.1)
35
36
  i18n (>= 1.8.11, < 2)
36
- faraday (2.7.11)
37
- base64
38
- faraday-net_http (>= 2.0, < 3.1)
39
- ruby2_keywords (>= 0.0.4)
40
- faraday-net_http (3.0.2)
37
+ faraday (2.10.0)
38
+ faraday-net_http (>= 2.0, < 3.2)
39
+ logger
40
+ faraday-net_http (3.1.0)
41
+ net-http
42
+ ffi (1.17.0)
43
+ formatador (1.1.0)
41
44
  gem-release (2.2.2)
42
- git (1.18.0)
45
+ git (1.19.1)
43
46
  addressable (~> 2.8)
44
47
  rchardet (~> 1.8)
48
+ guard (2.18.1)
49
+ formatador (>= 0.2.4)
50
+ listen (>= 2.7, < 4.0)
51
+ lumberjack (>= 1.0.12, < 2.0)
52
+ nenv (~> 0.1)
53
+ notiffany (~> 0.0)
54
+ pry (>= 0.13.0)
55
+ shellany (~> 0.0)
56
+ thor (>= 0.18.1)
57
+ guard-compat (1.2.1)
58
+ guard-rspec (4.7.3)
59
+ guard (~> 2.1)
60
+ guard-compat (~> 1.1)
61
+ rspec (>= 2.99.0, < 4.0)
45
62
  hamster (3.0.0)
46
63
  concurrent-ruby (~> 1.0)
47
- i18n (1.14.1)
64
+ i18n (1.14.5)
48
65
  concurrent-ruby (~> 1.0)
49
66
  immutable-struct (2.4.1)
50
- json (2.6.3)
67
+ json (2.7.2)
51
68
  language_server-protocol (3.17.0.3)
52
- lino (3.1.0)
69
+ lino (4.1.0.pre.1)
70
+ childprocess (~> 5.0.0)
53
71
  hamster (~> 3.0)
54
72
  open4 (~> 1.3)
55
- minitest (5.20.0)
56
- mutex_m (0.1.2)
57
- octokit (8.0.0)
73
+ listen (3.9.0)
74
+ rb-fsevent (~> 0.10, >= 0.10.3)
75
+ rb-inotify (~> 0.9, >= 0.9.10)
76
+ logger (1.6.0)
77
+ lumberjack (1.2.10)
78
+ method_source (1.1.0)
79
+ minitest (5.24.1)
80
+ mutex_m (0.2.0)
81
+ nenv (0.3.0)
82
+ net-http (0.4.1)
83
+ uri
84
+ notiffany (0.1.3)
85
+ nenv (~> 0.1)
86
+ shellany (~> 0.0)
87
+ octokit (8.1.0)
88
+ base64
58
89
  faraday (>= 1, < 3)
59
90
  sawyer (~> 0.9)
60
91
  open4 (1.3.4)
61
- parallel (1.23.0)
62
- parser (3.2.2.4)
92
+ parallel (1.25.1)
93
+ parser (3.3.4.0)
63
94
  ast (~> 2.4.1)
64
95
  racc
65
- public_suffix (5.0.3)
66
- racc (1.7.3)
96
+ pry (0.14.2)
97
+ coderay (~> 1.1)
98
+ method_source (~> 1.0)
99
+ public_suffix (6.0.0)
100
+ racc (1.8.0)
67
101
  rainbow (3.1.1)
68
- rake (13.1.0)
102
+ rake (13.2.1)
69
103
  rake_circle_ci (0.11.0)
70
104
  colored2 (~> 3.1)
71
105
  excon (~> 0.72)
@@ -78,72 +112,70 @@ GEM
78
112
  colored2 (~> 3.1)
79
113
  git (~> 1.13, >= 1.13.2)
80
114
  rake_factory (= 0.32.0.pre.2)
81
- rake_git_crypt (0.1.0.pre.29)
115
+ rake_git_crypt (0.1.0.pre.32)
82
116
  colored2 (~> 3.1)
83
117
  rake_factory (= 0.32.0.pre.2)
84
- ruby_git_crypt (= 0.1.0.pre.4)
85
- ruby_gpg2 (~> 0.6)
118
+ ruby_git_crypt (= 0.1.0.pre.8)
119
+ ruby_gpg2 (= 0.11.0.pre.6)
86
120
  rake_github (0.13.0)
87
121
  colored2 (~> 3.1)
88
122
  octokit (>= 4.16, < 9.0)
89
123
  rake_factory (~> 0.23)
90
124
  sshkey (~> 2.0)
91
- rake_gpg (0.18.0)
125
+ rake_gpg (0.19.0.pre.6)
92
126
  rake_factory (~> 0.23)
93
- ruby_gpg2 (~> 0.6)
127
+ ruby_gpg2 (= 0.11.0.pre.6)
94
128
  rake_ssh (0.10.0)
95
129
  colored2 (~> 3.1)
96
130
  rake_factory (~> 0.23)
97
131
  sshkey (~> 2.0)
132
+ rb-fsevent (0.11.2)
133
+ rb-inotify (0.11.1)
134
+ ffi (~> 1.0)
98
135
  rchardet (1.8.0)
99
- regexp_parser (2.8.2)
100
- rexml (3.2.6)
101
- rspec (3.12.0)
102
- rspec-core (~> 3.12.0)
103
- rspec-expectations (~> 3.12.0)
104
- rspec-mocks (~> 3.12.0)
105
- rspec-core (3.12.2)
106
- rspec-support (~> 3.12.0)
107
- rspec-expectations (3.12.3)
136
+ regexp_parser (2.9.2)
137
+ rexml (3.3.1)
138
+ strscan
139
+ rspec (3.13.0)
140
+ rspec-core (~> 3.13.0)
141
+ rspec-expectations (~> 3.13.0)
142
+ rspec-mocks (~> 3.13.0)
143
+ rspec-core (3.13.0)
144
+ rspec-support (~> 3.13.0)
145
+ rspec-expectations (3.13.1)
108
146
  diff-lcs (>= 1.2.0, < 2.0)
109
- rspec-support (~> 3.12.0)
110
- rspec-mocks (3.12.6)
147
+ rspec-support (~> 3.13.0)
148
+ rspec-mocks (3.13.1)
111
149
  diff-lcs (>= 1.2.0, < 2.0)
112
- rspec-support (~> 3.12.0)
113
- rspec-support (3.12.1)
114
- rubocop (1.57.2)
150
+ rspec-support (~> 3.13.0)
151
+ rspec-support (3.13.1)
152
+ rubocop (1.65.0)
115
153
  json (~> 2.3)
116
154
  language_server-protocol (>= 3.17.0)
117
155
  parallel (~> 1.10)
118
- parser (>= 3.2.2.4)
156
+ parser (>= 3.3.0.2)
119
157
  rainbow (>= 2.2.2, < 4.0)
120
- regexp_parser (>= 1.8, < 3.0)
158
+ regexp_parser (>= 2.4, < 3.0)
121
159
  rexml (>= 3.2.5, < 4.0)
122
- rubocop-ast (>= 1.28.1, < 2.0)
160
+ rubocop-ast (>= 1.31.1, < 2.0)
123
161
  ruby-progressbar (~> 1.7)
124
162
  unicode-display_width (>= 2.4.0, < 3.0)
125
- rubocop-ast (1.30.0)
126
- parser (>= 3.2.1.0)
127
- rubocop-capybara (2.19.0)
128
- rubocop (~> 1.41)
129
- rubocop-factory_bot (2.24.0)
130
- rubocop (~> 1.33)
163
+ rubocop-ast (1.31.3)
164
+ parser (>= 3.3.1.0)
131
165
  rubocop-rake (0.6.0)
132
166
  rubocop (~> 1.0)
133
- rubocop-rspec (2.25.0)
134
- rubocop (~> 1.40)
135
- rubocop-capybara (~> 2.17)
136
- rubocop-factory_bot (~> 2.22)
167
+ rubocop-rspec (3.0.3)
168
+ rubocop (~> 1.61)
137
169
  ruby-progressbar (1.13.0)
138
- ruby2_keywords (0.0.5)
139
- ruby_git_crypt (0.1.0.pre.4)
170
+ ruby_git_crypt (0.1.0.pre.8)
140
171
  immutable-struct (~> 2.4)
141
- lino (~> 3.0)
142
- ruby_gpg2 (0.10.0)
143
- lino (~> 3.0)
172
+ lino (>= 3.1)
173
+ ruby_gpg2 (0.11.0.pre.6)
174
+ lino (>= 3.1)
144
175
  sawyer (0.9.2)
145
176
  addressable (>= 2.3.5)
146
177
  faraday (>= 0.17.3, < 3)
178
+ shellany (0.0.1)
147
179
  simplecov (0.22.0)
148
180
  docile (~> 1.1)
149
181
  simplecov-html (~> 0.11)
@@ -151,9 +183,13 @@ GEM
151
183
  simplecov-html (0.12.3)
152
184
  simplecov_json_formatter (0.1.4)
153
185
  sshkey (2.0.0)
186
+ strscan (3.1.0)
187
+ terminal-notifier-guard (1.7.0)
188
+ thor (1.3.1)
154
189
  tzinfo (2.0.6)
155
190
  concurrent-ruby (~> 1.0)
156
191
  unicode-display_width (2.5.0)
192
+ uri (0.13.0)
157
193
 
158
194
  PLATFORMS
159
195
  arm64-darwin-21
@@ -169,12 +205,14 @@ DEPENDENCIES
169
205
  fakefs
170
206
  faker
171
207
  gem-release
208
+ guard
209
+ guard-rspec
172
210
  rake
173
211
  rake_circle_ci
174
212
  rake_git
175
- rake_git_crypt
213
+ rake_git_crypt (>= 0.1.0.pre.31)
176
214
  rake_github
177
- rake_gpg
215
+ rake_gpg (>= 0.19.0.pre.6)
178
216
  rake_ssh
179
217
  rspec
180
218
  rubocop
@@ -182,6 +220,7 @@ DEPENDENCIES
182
220
  rubocop-rspec
183
221
  ruby_fly!
184
222
  simplecov
223
+ terminal-notifier-guard
185
224
 
186
225
  BUNDLED WITH
187
226
  2.4.17
@@ -1,46 +1,120 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'lino'
4
+ require 'tempfile'
4
5
 
5
6
  module RubyFly
6
7
  module Commands
7
8
  class Base
8
- attr_reader :binary, :stdin, :stdout, :stderr
9
-
10
- def initialize(opts = {})
11
- @binary = opts[:binary] || RubyFly.configuration.binary
9
+ def initialize(parameters = {})
10
+ @binary = parameters[:binary] || RubyFly.configuration.binary
12
11
  @stdin = stdin || RubyFly.configuration.stdin
13
12
  @stdout = stdout || RubyFly.configuration.stdout
14
13
  @stderr = stderr || RubyFly.configuration.stderr
15
14
  end
16
15
 
17
- def execute(opts = {})
18
- do_before(opts)
19
- do_around(opts) do |new_opts|
20
- configure_command(instantiate_builder, new_opts)
21
- .build
22
- .execute(stdin: stdin, stdout: stdout, stderr: stderr)
16
+ def execute(parameters = {}, invocation_options = {})
17
+ parameters = resolve_parameters(parameters)
18
+ invocation_options = resolve_invocation_options(invocation_options)
19
+
20
+ do_before(parameters, invocation_options)
21
+ result = do_around(parameters, invocation_options) do |p, io|
22
+ build_and_execute_command(p, io)
23
23
  end
24
- do_after(opts)
24
+ result = do_after(result, parameters, invocation_options)
25
+ prepare_result(result, parameters, invocation_options)
25
26
  end
26
27
 
27
- def instantiate_builder
28
- Lino::CommandLineBuilder
29
- .for_command(binary)
30
- .with_option_separator('=')
28
+ private
29
+
30
+ attr_reader :binary, :stdin, :stdout, :stderr
31
+
32
+ def do_before(parameters, invocation_options); end
33
+
34
+ def do_around(parameters, invocation_options)
35
+ yield parameters, invocation_options
36
+ end
37
+
38
+ def do_after(result, _parameters, _invocation_options)
39
+ result
31
40
  end
32
41
 
33
- def do_before(opts); end
42
+ def build_and_execute_command(parameters, invocation_options)
43
+ command = configure_command(instantiate_builder, parameters).build
44
+ stdout = resolve_stdout(invocation_options)
45
+ stderr = resolve_stderr(invocation_options)
46
+ begin
47
+ command.execute(stdin:, stdout:, stderr:)
48
+ rescue Lino::Errors::ExecutionError => e
49
+ raise e unless e.exit_code == 1
50
+ end
51
+ process_streams(invocation_options, stdout, stderr)
52
+ end
34
53
 
35
- def do_around(opts, &block)
36
- block.call(opts)
54
+ def instantiate_builder
55
+ Lino.builder_for_command(binary)
56
+ .with_option_separator('=')
37
57
  end
38
58
 
39
- def configure_command(builder, _opts)
59
+ def configure_command(builder, _parameters)
40
60
  builder
41
61
  end
42
62
 
43
- def do_after(opts); end
63
+ def process_result(result, _parameters, _invocation_options)
64
+ result
65
+ end
66
+
67
+ def parameter_defaults(_parameters)
68
+ {}
69
+ end
70
+
71
+ def parameter_overrides(_parameters)
72
+ {}
73
+ end
74
+
75
+ def invocation_option_defaults(_invocation_options)
76
+ { capture: [], result: :processed }
77
+ end
78
+
79
+ def resolve_parameters(parameters)
80
+ parameter_defaults(parameters)
81
+ .merge(parameters)
82
+ .merge(parameter_overrides(parameters))
83
+ end
84
+
85
+ def resolve_invocation_options(invocation_options)
86
+ invocation_option_defaults(invocation_options)
87
+ .merge(invocation_options)
88
+ end
89
+
90
+ def resolve_stdout(invocation_options)
91
+ invocation_options[:capture].include?(:stdout) ? Tempfile.new : @stdout
92
+ end
93
+
94
+ def resolve_stderr(invocation_options)
95
+ invocation_options[:capture].include?(:stderr) ? Tempfile.new : @stderr
96
+ end
97
+
98
+ def process_streams(invocation_options, stdout, stderr)
99
+ cap = invocation_options[:capture]
100
+ result = {}
101
+ add_contents_to_result(cap, result, :stdout, stdout, :output)
102
+ add_contents_to_result(cap, result, :stderr, stderr, :error)
103
+ result
104
+ end
105
+
106
+ def add_contents_to_result(capture, result, stream_name, stream, type)
107
+ return unless capture.include?(stream_name)
108
+
109
+ stream.rewind
110
+ result[type] = stream.read
111
+ end
112
+
113
+ def prepare_result(result, parameters, invocation_options)
114
+ return result if invocation_options[:result] == :raw
115
+
116
+ process_result(result, parameters, invocation_options)
117
+ end
44
118
  end
45
119
  end
46
120
  end
@@ -11,20 +11,20 @@ module RubyFly
11
11
  include Mixins::Environment
12
12
  include Mixins::RequiredParams
13
13
 
14
- def configure_command(builder, opts)
15
- builder = super(builder, opts)
14
+ private
15
+
16
+ def configure_command(initial_builder, parameters)
17
+ builder = super
16
18
  builder
17
19
  .with_subcommand('destroy-pipeline') do |sub|
18
- sub = with_target(sub, opts[:target])
19
- sub = with_pipeline(sub, opts[:pipeline])
20
- sub = with_team(sub, opts[:team])
21
- sub = with_non_interactive(sub, opts[:non_interactive])
20
+ sub = with_target(sub, parameters[:target])
21
+ sub = with_pipeline(sub, parameters[:pipeline])
22
+ sub = with_team(sub, parameters[:team])
23
+ sub = with_non_interactive(sub, parameters[:non_interactive])
22
24
  sub
23
25
  end
24
26
  end
25
27
 
26
- private
27
-
28
28
  def required_params
29
29
  %i[target pipeline]
30
30
  end
@@ -11,12 +11,12 @@ module RubyFly
11
11
  include Mixins::Environment
12
12
  include Mixins::RequiredParams
13
13
 
14
- def configure_command(builder, opts)
15
- builder = super(builder, opts)
14
+ def configure_command(initial_builder, parameters)
15
+ builder = super
16
16
  builder
17
17
  .with_subcommand('get-pipeline') do |sub|
18
- sub = with_target(sub, opts[:target])
19
- sub = with_pipeline(sub, opts[:pipeline])
18
+ sub = with_target(sub, parameters[:target])
19
+ sub = with_pipeline(sub, parameters[:pipeline])
20
20
  sub
21
21
  end
22
22
  end
@@ -11,15 +11,15 @@ module RubyFly
11
11
  include Mixins::Environment
12
12
  include Mixins::RequiredParams
13
13
 
14
- def configure_command(builder, opts)
15
- builder = super(builder, opts)
14
+ def configure_command(initial_builder, parameters)
15
+ builder = super
16
16
  builder
17
17
  .with_subcommand('login') do |sub|
18
- sub = with_target(sub, opts[:target])
19
- sub = with_concourse_url(sub, opts[:concourse_url])
20
- sub = with_username(sub, opts[:username])
21
- sub = with_password(sub, opts[:password])
22
- sub = with_team(sub, opts[:team])
18
+ sub = with_target(sub, parameters[:target])
19
+ sub = with_concourse_url(sub, parameters[:concourse_url])
20
+ sub = with_username(sub, parameters[:username])
21
+ sub = with_password(sub, parameters[:password])
22
+ sub = with_team(sub, parameters[:team])
23
23
  sub
24
24
  end
25
25
  end
@@ -5,7 +5,7 @@ module RubyFly
5
5
  module Mixins
6
6
  module Environment
7
7
  def initialize(opts = {})
8
- super(opts)
8
+ super
9
9
  @environment = opts[:environment]
10
10
  end
11
11
 
@@ -14,9 +14,9 @@ module RubyFly
14
14
  self
15
15
  end
16
16
 
17
- def configure_command(builder, opts)
18
- builder = super(builder, opts)
19
- environment = opts[:environment] || @environment
17
+ def configure_command(initial_builder, parameters)
18
+ builder = super
19
+ environment = parameters[:environment] || @environment
20
20
  if environment
21
21
  builder =
22
22
  environment.to_a.inject(builder) do |b, environment_variable|
@@ -4,9 +4,9 @@ module RubyFly
4
4
  module Commands
5
5
  module Mixins
6
6
  module RequiredParams
7
- def configure_command(builder, opts)
8
- assert_required_params(opts)
9
- super(builder, opts)
7
+ def configure_command(initial_builder, parameters)
8
+ assert_required_params(parameters)
9
+ super
10
10
  end
11
11
 
12
12
  def required_params
@@ -15,12 +15,12 @@ module RubyFly
15
15
 
16
16
  private
17
17
 
18
- def missing_params(opts)
19
- required_params.select { |param| opts[param].nil? }
18
+ def missing_params(parameters)
19
+ required_params.select { |param| parameters[param].nil? }
20
20
  end
21
21
 
22
- def assert_required_params(opts)
23
- missing_params = missing_params(opts)
22
+ def assert_required_params(parameters)
23
+ missing_params = missing_params(parameters)
24
24
  return if missing_params.empty?
25
25
 
26
26
  description = missing_params.map { |p| "'#{p}'" }.join(', ')
@@ -13,17 +13,17 @@ module RubyFly
13
13
 
14
14
  # rubocop:disable Metrics/AbcSize
15
15
  # rubocop:disable Metrics/MethodLength
16
- def configure_command(builder, opts)
17
- builder = super(builder, opts)
16
+ def configure_command(initial_builder, parameters)
17
+ builder = super
18
18
  builder
19
19
  .with_subcommand('set-pipeline') do |sub|
20
- sub = with_target(sub, opts[:target])
21
- sub = with_pipeline(sub, opts[:pipeline])
22
- sub = with_config(sub, opts[:config])
23
- sub = with_team(sub, opts[:team])
24
- sub = with_vars(sub, opts[:vars])
25
- sub = with_var_files(sub, opts[:var_files])
26
- sub = with_non_interactive(sub, opts[:non_interactive])
20
+ sub = with_target(sub, parameters[:target])
21
+ sub = with_pipeline(sub, parameters[:pipeline])
22
+ sub = with_config(sub, parameters[:config])
23
+ sub = with_team(sub, parameters[:team])
24
+ sub = with_vars(sub, parameters[:vars])
25
+ sub = with_var_files(sub, parameters[:var_files])
26
+ sub = with_non_interactive(sub, parameters[:non_interactive])
27
27
  sub
28
28
  end
29
29
  end
@@ -11,32 +11,28 @@ module RubyFly
11
11
  include Mixins::Environment
12
12
  include Mixins::RequiredParams
13
13
 
14
- def initialize(*args)
15
- super(*args)
16
- @stdout = StringIO.new unless
17
- defined?(@stdout) && @stdout.respond_to?(:string)
18
- @stderr = StringIO.new unless
19
- defined?(@stderr) && @stderr.respond_to?(:string)
14
+ private
15
+
16
+ def invocation_option_defaults(_invocation_options)
17
+ super.merge(capture: %i[stdout stderr])
20
18
  end
21
19
 
22
- def configure_command(builder, opts)
23
- builder = super(builder, opts)
20
+ def configure_command(initial_builder, parameters)
21
+ builder = super
24
22
  builder
25
23
  .with_subcommand('status') do |sub|
26
- sub = with_target(sub, opts[:target])
27
- sub
28
- end
24
+ sub = with_target(sub, parameters[:target])
25
+ sub
26
+ end
29
27
  end
30
28
 
31
- def do_around(opts, &block)
32
- block.call(opts)
33
- rescue Open4::SpawnError => e
34
- raise e unless e.status.exitstatus == 1
29
+ def do_around(parameters, invocation_options, &block)
30
+ block.call(parameters, invocation_options)
35
31
  end
36
32
 
37
- def do_after(_opts)
38
- output = stdout.string
39
- error = stderr.string
33
+ def process_result(result, _parameters, _invocation_options)
34
+ output = result[:output]
35
+ error = result[:error]
40
36
 
41
37
  return :logged_in if output =~ /logged in successfully/
42
38
  return :logged_out if error =~ /logged out/
@@ -46,8 +42,6 @@ module RubyFly
46
42
  :unknown_status
47
43
  end
48
44
 
49
- private
50
-
51
45
  def required_params
52
46
  %i[target]
53
47
  end
@@ -11,13 +11,13 @@ module RubyFly
11
11
  include Mixins::Environment
12
12
  include Mixins::RequiredParams
13
13
 
14
- def configure_command(builder, opts)
15
- builder = super(builder, opts)
14
+ def configure_command(initial_builder, parameters)
15
+ builder = super
16
16
  builder
17
17
  .with_subcommand('unpause-pipeline') do |sub|
18
- sub = with_target(sub, opts[:target])
19
- sub = with_pipeline(sub, opts[:pipeline])
20
- sub = with_team(sub, opts[:team])
18
+ sub = with_target(sub, parameters[:target])
19
+ sub = with_pipeline(sub, parameters[:pipeline])
20
+ sub = with_team(sub, parameters[:team])
21
21
  sub
22
22
  end
23
23
  end
@@ -6,20 +6,20 @@ require_relative 'base'
6
6
  module RubyFly
7
7
  module Commands
8
8
  class Version < Base
9
- def stdout
10
- @version_string
11
- end
9
+ private
12
10
 
13
- def do_before(_opts)
14
- @version_string = StringIO.new
11
+ def invocation_option_defaults(_invocation_options)
12
+ super.merge(capture: [:stdout])
15
13
  end
16
14
 
17
- def configure_command(builder, _opts)
15
+ def configure_command(initial_builder, _parameters)
16
+ builder = super
18
17
  builder.with_flag('--version')
19
18
  end
20
19
 
21
- def do_after(_opts)
22
- @version_string.string.gsub("\n", '')
20
+ def process_result(result, _parameters, _invocation_options)
21
+ output = result[:output]
22
+ output.gsub("\n", '')
23
23
  end
24
24
  end
25
25
  end
data/lib/ruby_fly/rc.rb CHANGED
@@ -59,7 +59,7 @@ module RubyFly
59
59
  def bearer_token=(value)
60
60
  @token = {
61
61
  type: 'bearer',
62
- value: value
62
+ value:
63
63
  }
64
64
  end
65
65
 
@@ -103,7 +103,7 @@ module RubyFly
103
103
  contents = options[:contents] || try_load_rc_file_contents(path) || {}
104
104
  targets = try_load_rc_file_targets(path, contents) || []
105
105
 
106
- RubyFly::RC.new(home: home, name: name, targets: targets)
106
+ RubyFly::RC.new(home:, name:, targets:)
107
107
  end
108
108
 
109
109
  class << self
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyFly
4
- VERSION = '0.40.0.pre.4'
4
+ VERSION = '0.40.0.pre.5'
5
5
  end
data/lib/ruby_fly.rb CHANGED
@@ -61,7 +61,7 @@ module RubyFly
61
61
 
62
62
  def initialize
63
63
  @binary = 'fly'
64
- @stdin = ''
64
+ @stdin = nil
65
65
  @stdout = $stdout
66
66
  @stderr = $stderr
67
67
  end
data/ruby_fly.gemspec CHANGED
@@ -34,26 +34,29 @@ Gem::Specification.new do |spec|
34
34
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
35
35
  spec.require_paths = ['lib']
36
36
 
37
- spec.required_ruby_version = '>= 2.7'
37
+ spec.required_ruby_version = '>= 3.1'
38
38
 
39
- spec.add_dependency 'lino', '~> 3.0'
39
+ spec.add_dependency 'lino', '>= 4.1.0.pre.1'
40
40
 
41
41
  spec.add_development_dependency 'bundler'
42
42
  spec.add_development_dependency 'fakefs'
43
43
  spec.add_development_dependency 'faker'
44
44
  spec.add_development_dependency 'gem-release'
45
+ spec.add_development_dependency 'guard'
46
+ spec.add_development_dependency 'guard-rspec'
45
47
  spec.add_development_dependency 'rake'
46
48
  spec.add_development_dependency 'rake_circle_ci'
47
49
  spec.add_development_dependency 'rake_git'
48
- spec.add_development_dependency 'rake_git_crypt'
50
+ spec.add_development_dependency 'rake_git_crypt', '>= 0.1.0.pre.31'
49
51
  spec.add_development_dependency 'rake_github'
50
- spec.add_development_dependency 'rake_gpg'
52
+ spec.add_development_dependency 'rake_gpg', '>= 0.19.0.pre.6'
51
53
  spec.add_development_dependency 'rake_ssh'
52
54
  spec.add_development_dependency 'rspec'
53
55
  spec.add_development_dependency 'rubocop'
54
56
  spec.add_development_dependency 'rubocop-rake'
55
57
  spec.add_development_dependency 'rubocop-rspec'
56
58
  spec.add_development_dependency 'simplecov'
59
+ spec.add_development_dependency 'terminal-notifier-guard'
57
60
 
58
61
  spec.metadata['rubygems_mfa_required'] = 'false'
59
62
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_fly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.40.0.pre.4
4
+ version: 0.40.0.pre.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - InfraBlocks Maintainers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-06 00:00:00.000000000 Z
11
+ date: 2024-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lino
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: 4.1.0.pre.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3.0'
26
+ version: 4.1.0.pre.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rake
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +156,14 @@ dependencies:
128
156
  requirements:
129
157
  - - ">="
130
158
  - !ruby/object:Gem::Version
131
- version: '0'
159
+ version: 0.1.0.pre.31
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - ">="
137
165
  - !ruby/object:Gem::Version
138
- version: '0'
166
+ version: 0.1.0.pre.31
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: rake_github
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +184,14 @@ dependencies:
156
184
  requirements:
157
185
  - - ">="
158
186
  - !ruby/object:Gem::Version
159
- version: '0'
187
+ version: 0.19.0.pre.6
160
188
  type: :development
161
189
  prerelease: false
162
190
  version_requirements: !ruby/object:Gem::Requirement
163
191
  requirements:
164
192
  - - ">="
165
193
  - !ruby/object:Gem::Version
166
- version: '0'
194
+ version: 0.19.0.pre.6
167
195
  - !ruby/object:Gem::Dependency
168
196
  name: rake_ssh
169
197
  requirement: !ruby/object:Gem::Requirement
@@ -248,6 +276,20 @@ dependencies:
248
276
  - - ">="
249
277
  - !ruby/object:Gem::Version
250
278
  version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: terminal-notifier-guard
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
251
293
  description: Wraps the concourse fly CLI so that fly can be invoked from a Ruby script
252
294
  or Rakefile.
253
295
  email:
@@ -292,14 +334,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
292
334
  requirements:
293
335
  - - ">="
294
336
  - !ruby/object:Gem::Version
295
- version: '2.7'
337
+ version: '3.1'
296
338
  required_rubygems_version: !ruby/object:Gem::Requirement
297
339
  requirements:
298
340
  - - ">"
299
341
  - !ruby/object:Gem::Version
300
342
  version: 1.3.1
301
343
  requirements: []
302
- rubygems_version: 3.1.6
344
+ rubygems_version: 3.3.7
303
345
  signing_key:
304
346
  specification_version: 4
305
347
  summary: A simple Ruby wrapper for invoking fly commands.