ruby_fly 0.40.0.pre.3 → 0.40.0.pre.5

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
  SHA256:
3
- metadata.gz: 7c1192e6ffd74036a2bbe4c03f1ed9e398b82e0224b6cbe8ba8330b8bfb64ab4
4
- data.tar.gz: 58458d790d965cb94e2d6412175a60167bd0034c051aee9724adbdd961ce44c2
3
+ metadata.gz: 7085daa7a409ae5b4301901607937f845c8bbb5d33376634c0cd470fc771b36c
4
+ data.tar.gz: c528f7720ed3055571eecfd7712cc2b9c50a814fa99c775995d081888ad075f2
5
5
  SHA512:
6
- metadata.gz: 37e962dc0e7872f8cc11be31f3d5c35d7053f658e637a0a6e90e72a01e97b591414f51b2ec9ed5540ced5d9a67aa9e71373b5ee2b9b4863b4976fb443ab7a080
7
- data.tar.gz: cc56c1fabb4695c6b58fbd69087cb0681f9fb7804c3133e7220b79aceacb3221e152f6a82b7b2cdc809fcd1b72800075e76cc588db7495cacfd58e888f9d26c9
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.3)
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.1)
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 (6.1.1)
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.1)
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)
@@ -74,76 +108,74 @@ GEM
74
108
  rake_factory (0.32.0.pre.2)
75
109
  activesupport (>= 4)
76
110
  rake (~> 13.0)
77
- rake_git (0.1.0.pre.8)
111
+ rake_git (0.1.0.pre.10)
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.27)
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.2)
85
- ruby_gpg2 (~> 0.6)
86
- rake_github (0.11.0)
118
+ ruby_git_crypt (= 0.1.0.pre.8)
119
+ ruby_gpg2 (= 0.11.0.pre.6)
120
+ rake_github (0.13.0)
87
121
  colored2 (~> 3.1)
88
- octokit (>= 4.16, < 7.0)
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.2)
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
data/Rakefile CHANGED
@@ -146,7 +146,7 @@ end
146
146
  RakeGithub.define_repository_tasks(
147
147
  namespace: :github,
148
148
  repository: 'infrablocks/ruby_fly'
149
- ) do |t, args|
149
+ ) do |t|
150
150
  github_config =
151
151
  YAML.load_file('config/secrets/github/config.yaml')
152
152
 
@@ -157,8 +157,6 @@ RakeGithub.define_repository_tasks(
157
157
  public_key: File.read('config/secrets/ci/ssh.public')
158
158
  }
159
159
  ]
160
- t.branch_name = args.branch_name
161
- t.commit_message = args.commit_message
162
160
  end
163
161
 
164
162
  namespace :pipeline do
@@ -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.3'
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.3
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-10-30 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.