gocd 1.3 → 1.3.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: 188ab274b584582cbb0f8541d50165549b845d444f0120f784ce5dc7ef14e62a
4
- data.tar.gz: '07808c0d30bfa63b5f1c4e395a3c2232bc81933d685d49a3ca003af748b7e0bc'
3
+ metadata.gz: 6851fe731d257a4bfb632948329e79ae9e8b27a2960927d39410981c66adcc75
4
+ data.tar.gz: e7a0e79d7bff7f26ec9dcc9eb3097ebf761b508bdb156e54d6480c6764f966bf
5
5
  SHA512:
6
- metadata.gz: b914ef2f894244676d15d7a12ef96ac4fab8a82ed28928e55fc3e57fa73d33da13b24b464dea34dda594340c23e27f2004e27c1567aac7225d3deaade6d03012
7
- data.tar.gz: 23a87cb1c0e574afeacf305cc9c6a42abb8c600ab27bc2aa1b1ec09f2aaaab791f2433fd1b992b6bc1c5a5af394583036bbfcbd082e864048835a5c4d03b50d8
6
+ metadata.gz: 36e2c47c1215848ac9ce64fe1255a491d50060bca9dbd84e065040952bcef117fed28b03defb23430d1c5a54fe265c3fc7072546d4bb688bdda0c28c9ad13ba4
7
+ data.tar.gz: e9e6fe0155880227c3a78862c7f3267ad1e3182ff25af21700616c463f20ee33d285f5f74f7af020e3536242e8e15ca4817828cf34d3c1464eb346020f7135ed
data/README.md CHANGED
@@ -20,7 +20,7 @@ gem install gocd
20
20
  ```
21
21
 
22
22
  ### Code Documentation
23
- http://www.rubydoc.info/gems/gocd/1.2.1
23
+ http://www.rubydoc.info/gems/gocd/1.3
24
24
 
25
25
  ### Usage
26
26
 
@@ -43,6 +43,23 @@ pipelines.status
43
43
  pipelines.any_red?
44
44
  ```
45
45
 
46
+ #### Cache
47
+ By default all methods in ```GOCD::AllPipelines``` and ```GOCD::PipelineGroup``` make a call to go api to fetch the latest status of pipelines. This can be avoided using cache. To enable cache just pass ```cache: true``` when you call any of the method in ```GOCD::AllPipelines``` and ```GOCD::PipelineGroup```.
48
+
49
+ ```ruby
50
+ GOCD::AllPipelines.any_red?(cache: true)
51
+ GOCD::AllPipelines.red_pipelines(cache: true)
52
+ GOCD::AllPipelines.green_pipelines(cache: true)
53
+ GOCD::AllPipelines.status(cache: true)
54
+ ```
55
+
56
+ ```ruby
57
+ pipelines = GOCD::PipelineGroup.new(['Pipeline1 :: stage1'], cache: true)
58
+ pipelines.red_pipelines # will return red pipelines from cache
59
+ pipelines.status # will return pipelines status from cache
60
+ pipelines.any_red?(cache: false) # will check with the latest pipelines
61
+ ```
62
+
46
63
  #### Want to create your own gocd dashboard? Its easy now!
47
64
  ```ruby
48
65
  require 'sinatra'
@@ -51,7 +68,7 @@ require 'gocd'
51
68
  get '/' do
52
69
  GOCD.server = GOCD::Server.new 'http://goserverurl.com'
53
70
  GOCD.credentials = GOCD::Credentials.new 'username', 'password'
54
- GOCD::AllPipelines.red_pipelines.map {|pipeline| pipeline.to_hash}.to_json
71
+ GOCD::AllPipelines.red_pipelines(cache: false).map {|pipeline| pipeline.to_hash}.to_json
55
72
  end
56
73
  ```
57
74
 
@@ -13,7 +13,7 @@ module GOCD
13
13
  end
14
14
 
15
15
  def status
16
- {pipeline: name, status: last_build_status}
16
+ {pipeline: name, status: current_status}
17
17
  end
18
18
 
19
19
  def red?
@@ -39,5 +39,9 @@ module GOCD
39
39
  def to_hash
40
40
  @pipeline
41
41
  end
42
+
43
+ def current_status
44
+ (@pipeline['activity'] && @pipeline['activity'].downcase == 'sleeping') ? last_build_status : @pipeline['activity']
45
+ end
42
46
  end
43
- end
47
+ end
@@ -1,3 +1,3 @@
1
1
  module GOCD
2
- VERSION = '1.3'
2
+ VERSION = '1.3.1'
3
3
  end
@@ -12,6 +12,11 @@ RSpec.describe GOCD::Pipeline, 'pipeline' do
12
12
  expect(@pipeline.name).to eq 'pipeline 1'
13
13
  end
14
14
 
15
+ it '#status should be success' do
16
+ @pipeline = GOCD::Pipeline.new @raw_pipeline
17
+ expect(@pipeline.status).to eq({pipeline: 'pipeline 1', status: 'Success'})
18
+ end
19
+
15
20
  it '#last_build_status should return last build status' do
16
21
  @pipeline = GOCD::Pipeline.new @raw_pipeline
17
22
  expect(@pipeline.last_build_status).to eq 'Success'
@@ -33,6 +38,11 @@ RSpec.describe GOCD::Pipeline, 'pipeline' do
33
38
  @raw_pipeline = {'name' => 'pipeline 1', 'activity' => 'sleeping', 'lastBuildStatus' => 'Failure'}
34
39
  end
35
40
 
41
+ it '#status should be failure' do
42
+ @pipeline = GOCD::Pipeline.new @raw_pipeline
43
+ expect(@pipeline.status).to eq({pipeline: 'pipeline 1', status: 'Failure'})
44
+ end
45
+
36
46
  it '#green? should return false' do
37
47
  @pipeline = GOCD::Pipeline.new @raw_pipeline
38
48
  expect(@pipeline.green?).to be_falsey
@@ -57,4 +67,36 @@ RSpec.describe GOCD::Pipeline, 'pipeline' do
57
67
  expect(pipeline.last_build_label).to eq('lable')
58
68
  expect(pipeline.to_hash).to eq(@raw_pipeline)
59
69
  end
60
- end
70
+
71
+ context 'when a previously successful pipeline is running' do
72
+ let(:raw_pipeline) { {'name' => 'pipeline 1', 'activity' => 'Building', 'lastBuildStatus' => 'Success'} }
73
+
74
+ it '#status should be building' do
75
+ expect(GOCD::Pipeline.new(raw_pipeline).status).to eq({pipeline: 'pipeline 1', status: 'Building'})
76
+ end
77
+
78
+ it '#green? should return true' do
79
+ expect(GOCD::Pipeline.new(raw_pipeline).green?).to be_truthy
80
+ end
81
+
82
+ it '#red? should return false' do
83
+ expect(GOCD::Pipeline.new(raw_pipeline).red?).to be_falsey
84
+ end
85
+ end
86
+
87
+ context 'when a previously failed pipeline is running' do
88
+ let(:raw_pipeline) { {'name' => 'pipeline 1', 'activity' => 'Building', 'lastBuildStatus' => 'Failure'} }
89
+
90
+ it '#status should be building' do
91
+ expect(GOCD::Pipeline.new(raw_pipeline).status).to eq({pipeline: 'pipeline 1', status: 'Building'})
92
+ end
93
+
94
+ it '#green? should return false' do
95
+ expect(GOCD::Pipeline.new(raw_pipeline).green?).to be_falsey
96
+ end
97
+
98
+ it '#red? should return true' do
99
+ expect(GOCD::Pipeline.new(raw_pipeline).red?).to be_truthy
100
+ end
101
+ end
102
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gocd
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.3'
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ajit Singh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-17 00:00:00.000000000 Z
11
+ date: 2018-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport