ruby_fly 0.23.0 → 0.28.0.pre.1

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: b19bf3dc6ccd8b781c66d6bd6e60f7f5d6507fc196b274daee72839cfbd2cd47
4
- data.tar.gz: 9ab71c32055783c25736a981f52071f12021ce392dc0462afe77a9646a30c0b5
3
+ metadata.gz: df53a98dc14d09cb09532166d5b4284041a12626c7e5006c7bee75984b63d517
4
+ data.tar.gz: 3aa60fd2315ceb3459672cc372037a5b9790cb88d18ed25a24480518f0dd17ad
5
5
  SHA512:
6
- metadata.gz: 69c158ddfdebda0ac27540b415247080b0ab005306cc5cfd9e65ab9df018c0ebad4edee9043724696d9d66d4ccddb89d7109fef493ad631a4568c3f70186fcb5
7
- data.tar.gz: 26bd6a866dae473a88d288b57ce20cde1e339a1adca3de5071857c9f55d45dc80063dd6aca785fee6fd0fd30ce5f66cee895bcecc0869486504bafd261c1d4a0
6
+ metadata.gz: 6b10280580120e377d99182136649fc1f0c2ea4cded7255b2d10b4310f869711c373d7a8634a3239e1c8c670b3df95d040b098802e374cefc5e5fb3fe9c1f3b4
7
+ data.tar.gz: 8c85b694601460932878fd86aeb98a02cf1769b3d1d70294423ae154508ee369d9d1d141165cc5dc4f9a123384e2cc23a904ae824b3295856a079202788a5808
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby_fly (0.23.0)
4
+ ruby_fly (0.28.0.pre.1)
5
5
  lino (>= 1.5)
6
6
 
7
7
  GEM
@@ -20,6 +20,14 @@ module RubyFly
20
20
  end
21
21
 
22
22
  module ClassMethods
23
+ def login(opts = {})
24
+ Commands::Login.new.execute(opts)
25
+ end
26
+
27
+ def status(opts = {})
28
+ Commands::Status.new.execute(opts)
29
+ end
30
+
23
31
  def get_pipeline(opts = {})
24
32
  Commands::GetPipeline.new.execute(opts)
25
33
  end
@@ -43,10 +51,13 @@ module RubyFly
43
51
  end
44
52
 
45
53
  class Configuration
46
- attr_accessor :binary
54
+ attr_accessor :binary, :stdin, :stdout, :stderr
47
55
 
48
56
  def initialize
49
57
  @binary = 'fly'
58
+ @stdin = ''
59
+ @stdout = $stdout
60
+ @stderr = $stderr
50
61
  end
51
62
  end
52
63
  end
@@ -1,3 +1,5 @@
1
+ require_relative 'commands/login'
2
+ require_relative 'commands/status'
1
3
  require_relative 'commands/get_pipeline'
2
4
  require_relative 'commands/set_pipeline'
3
5
  require_relative 'commands/unpause_pipeline'
@@ -3,22 +3,13 @@ require 'lino'
3
3
  module RubyFly
4
4
  module Commands
5
5
  class Base
6
- attr_reader :binary
6
+ attr_reader :binary, :stdin, :stdout, :stderr
7
7
 
8
8
  def initialize(binary: nil)
9
9
  @binary = binary || RubyFly.configuration.binary
10
- end
11
-
12
- def stdin
13
- ''
14
- end
15
-
16
- def stdout
17
- STDOUT
18
- end
19
-
20
- def stderr
21
- STDERR
10
+ @stdin = stdin || RubyFly.configuration.stdin
11
+ @stdout = stdout || RubyFly.configuration.stdout
12
+ @stderr = stderr || RubyFly.configuration.stderr
22
13
  end
23
14
 
24
15
  def execute(opts = {})
@@ -44,6 +35,7 @@ module RubyFly
44
35
  end
45
36
 
46
37
  def configure_command(builder, opts)
38
+ builder
47
39
  end
48
40
 
49
41
  def do_after(opts)
@@ -1,10 +1,15 @@
1
1
  require 'lino'
2
2
  require_relative 'base'
3
+ require_relative 'mixins/environment'
3
4
 
4
5
  module RubyFly
5
6
  module Commands
6
7
  class GetPipeline < Base
8
+ include Mixins::Environment
9
+
7
10
  def configure_command(builder, opts)
11
+ builder = super(builder, opts)
12
+
8
13
  missing_params = [
9
14
  :target,
10
15
  :pipeline
@@ -0,0 +1,42 @@
1
+ require 'lino'
2
+ require_relative 'base'
3
+ require_relative 'mixins/environment'
4
+
5
+ module RubyFly
6
+ module Commands
7
+ class Login < Base
8
+ include Mixins::Environment
9
+
10
+ def configure_command(builder, opts)
11
+ builder = super(builder, opts)
12
+
13
+ missing_params = [
14
+ :target
15
+ ].select { |param| opts[param].nil? }
16
+
17
+ unless missing_params.empty?
18
+ description = missing_params.map { |p| "'#{p}'" }.join(', ')
19
+ raise(
20
+ ArgumentError,
21
+ "Error: #{description} required but not provided.")
22
+ end
23
+
24
+ target = opts[:target]
25
+ concourse_url = opts[:concourse_url]
26
+ username = opts[:username]
27
+ password = opts[:password]
28
+ team = opts[:team]
29
+
30
+ builder
31
+ .with_subcommand('login') do |sub|
32
+ sub = sub.with_option('-t', target)
33
+ sub = sub.with_option('-c', concourse_url) if concourse_url
34
+ sub = sub.with_option('-u', username) if username
35
+ sub = sub.with_option('-p', password) if password
36
+ sub = sub.with_option('-n', team) if team
37
+ sub
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,29 @@
1
+ module RubyFly
2
+ module Commands
3
+ module Mixins
4
+ module Environment
5
+ def initialize(opts={})
6
+ super(opts)
7
+ @environment = opts[:environment]
8
+ end
9
+
10
+ def for_environment(environment)
11
+ @environment = environment
12
+ self
13
+ end
14
+
15
+ def configure_command(builder, opts)
16
+ builder = super(builder, opts)
17
+ environment = opts[:environment] || @environment
18
+ if environment
19
+ builder = environment.to_a
20
+ .inject(builder) do |b, environment_variable|
21
+ b.with_environment_variable(*environment_variable)
22
+ end
23
+ end
24
+ builder
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,10 +1,15 @@
1
1
  require 'lino'
2
2
  require_relative 'base'
3
+ require_relative 'mixins/environment'
3
4
 
4
5
  module RubyFly
5
6
  module Commands
6
7
  class SetPipeline < Base
8
+ include Mixins::Environment
9
+
7
10
  def configure_command(builder, opts)
11
+ builder = super(builder, opts)
12
+
8
13
  missing_params = [
9
14
  :target,
10
15
  :pipeline,
@@ -0,0 +1,54 @@
1
+ require 'lino'
2
+ require_relative 'base'
3
+ require_relative 'mixins/environment'
4
+
5
+ module RubyFly
6
+ module Commands
7
+ class Status < Base
8
+ include Mixins::Environment
9
+
10
+ def initialize(*args)
11
+ super(*args)
12
+ @stdout = StringIO.new unless
13
+ (defined?(@stdout) && @stdout.respond_to?(:string))
14
+ @stderr = StringIO.new unless
15
+ (defined?(@stderr) && @stderr.respond_to?(:string))
16
+ end
17
+
18
+ def configure_command(builder, opts)
19
+ builder = super(builder, opts)
20
+
21
+ missing_params = [
22
+ :target
23
+ ].select { |param| opts[param].nil? }
24
+
25
+ unless missing_params.empty?
26
+ description = missing_params.map { |p| "'#{p}'" }.join(', ')
27
+ raise(
28
+ ArgumentError,
29
+ "Error: #{description} required but not provided.")
30
+ end
31
+
32
+ target = opts[:target]
33
+
34
+ builder
35
+ .with_subcommand('status') do |sub|
36
+ sub = sub.with_option('-t', target)
37
+ sub
38
+ end
39
+ end
40
+
41
+ def do_after(opts)
42
+ output = stdout.string
43
+ error = stderr.string
44
+
45
+ return :logged_in if output =~ /logged in successfully/
46
+ return :logged_out if error =~ /logged out/
47
+ return :session_expired if error =~ /please login again/
48
+ return :unknown_target if error =~ /error: unknown target/
49
+
50
+ :unknown_status
51
+ end
52
+ end
53
+ end
54
+ end
@@ -1,10 +1,15 @@
1
1
  require 'lino'
2
2
  require_relative 'base'
3
+ require_relative 'mixins/environment'
3
4
 
4
5
  module RubyFly
5
6
  module Commands
6
7
  class UnpausePipeline < Base
8
+ include Mixins::Environment
9
+
7
10
  def configure_command(builder, opts)
11
+ builder = super(builder, opts)
12
+
8
13
  missing_params = [
9
14
  :target,
10
15
  :pipeline
@@ -1,3 +1,3 @@
1
1
  module RubyFly
2
- VERSION = '0.23.0'
2
+ VERSION = '0.28.0.pre.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_fly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.28.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-03 00:00:00.000000000 Z
11
+ date: 2021-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lino
@@ -184,7 +184,10 @@ files:
184
184
  - lib/ruby_fly/commands.rb
185
185
  - lib/ruby_fly/commands/base.rb
186
186
  - lib/ruby_fly/commands/get_pipeline.rb
187
+ - lib/ruby_fly/commands/login.rb
188
+ - lib/ruby_fly/commands/mixins/environment.rb
187
189
  - lib/ruby_fly/commands/set_pipeline.rb
190
+ - lib/ruby_fly/commands/status.rb
188
191
  - lib/ruby_fly/commands/unpause_pipeline.rb
189
192
  - lib/ruby_fly/commands/version.rb
190
193
  - lib/ruby_fly/rc.rb
@@ -204,9 +207,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
207
  version: '2.6'
205
208
  required_rubygems_version: !ruby/object:Gem::Requirement
206
209
  requirements:
207
- - - ">="
210
+ - - ">"
208
211
  - !ruby/object:Gem::Version
209
- version: '0'
212
+ version: 1.3.1
210
213
  requirements: []
211
214
  rubygems_version: 3.0.1
212
215
  signing_key: