extreme_feedback_device 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: b6efa7bb15b030098c73513727368b1be45ea08e
4
- data.tar.gz: 04a0431f7cc1185b188712688eedab8ab710d897
3
+ metadata.gz: 80db1f631ae4f5e555af406b09130f673d4f4d2a
4
+ data.tar.gz: feb4c282add2d0f135db005ce84d6dc8e30b1ce9
5
5
  SHA512:
6
- metadata.gz: 2aefa8fc64a7540464aa7cae4f70a2064e4f70f42a2dc542c502a61753331082ccbbd77080e8bacba901228e8872f3ea83a6c2a8dae1e124f4b6f132755f9e67
7
- data.tar.gz: 3bd5f4a75eeaa7031868246660aa789f5f6b1c543b95ce9c16d2002a51e6638459c66d17436d72cbe008de525399a9505502ab31036a35afabc59ca039a62d95
6
+ metadata.gz: 7ae51e82232615fa2ac7b1bb356e51c8422354b09dd5d0a103e7a8087f2f43e121686d914269c47a9e26632477e0195e37ed64fc595d9b917fb36ec086fe651d
7
+ data.tar.gz: de8cc17ee0e5475168fdfb81b4e2385d491d9d6d624a939aaa53117a83c3671d9157beb5e08d2400992cf2133c0678db856cf337aa3e0da7dbcd10912450f749
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.0
7
+ - jruby-19mode
data/Gemfile CHANGED
@@ -1,6 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- ruby '2.0.0'
4
-
5
3
  # Specify your gem's dependencies in extreme_feedback_device.gemspec
6
- gemspec
4
+ gemspec
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # ExtremeFeedbackDevice
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/extreme_feedback_device.png)](http://badge.fury.io/rb/extreme_feedback_device)
4
+ [![Dependency Status](https://gemnasium.com/taktsoft/extreme_feedback_device.png)](https://gemnasium.com/taktsoft/extreme_feedback_device)
5
+ [![Build Status](https://travis-ci.org/taktsoft/extreme_feedback_device.png)](https://travis-ci.org/taktsoft/extreme_feedback_device)
6
+
3
7
  TODO: Write a gem description
4
8
 
5
9
  Fetches Jobs from a Jenkins CI via the REST JSON API and sets LEDs of an Extreme Feedback Device to the status of the corresponding Job.
@@ -13,23 +13,9 @@ module ExtremeFeedbackDevice
13
13
  URI(full_url)
14
14
  end
15
15
 
16
- def get_json
17
- request = ::Net::HTTP::Get.new(full_uri)
18
- request.basic_auth(user, token)
19
-
20
- response = ::Net::HTTP.start(full_uri.hostname, full_uri.port) do |http|
21
- http.request(request)
22
- end
23
-
24
- if response.is_a?(::Net::HTTPSuccess)
25
- response.body
26
- else
27
- nil
28
- end
29
- end
30
-
31
16
  def jobs
32
- jobs_from_json(get_json)
17
+ json = get_json
18
+ jobs_from_json(json) if json.is_a?(String)
33
19
  end
34
20
 
35
21
  private
@@ -43,5 +29,25 @@ module ExtremeFeedbackDevice
43
29
 
44
30
  json_objects["jobs"].map { |json_object| ExtremeFeedbackDevice::Job.from_json_object(json_object) }
45
31
  end
32
+
33
+ def get_json
34
+ request = ::Net::HTTP::Get.new(full_uri)
35
+ request.basic_auth(user, token)
36
+
37
+ response = nil
38
+ begin
39
+ response = ::Net::HTTP.start(full_uri.hostname, full_uri.port) do |http|
40
+ http.request(request)
41
+ end
42
+ rescue SocketError => e
43
+ response = e
44
+ end
45
+
46
+ if response.is_a?(::Net::HTTPSuccess)
47
+ return response.body
48
+ else
49
+ return nil
50
+ end
51
+ end
46
52
  end
47
53
  end
@@ -1,3 +1,3 @@
1
1
  module ExtremeFeedbackDevice
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -65,6 +65,16 @@ module ExtremeFeedbackDevice
65
65
  def infinite_loop
66
66
  settings['infinite_loop'] ||= {}
67
67
  interval = settings.infinite_loop['sleep'] || 30
68
+
69
+ %w(INT TERM).each do |signal|
70
+ trap(signal) do
71
+ puts "\r\nReceived SIGINT - turning off all LEDs and exit ..."
72
+ pi.leds_black!
73
+ pi.leds_black! # ... just to be safe
74
+ exit(0)
75
+ end
76
+ end
77
+
68
78
  while true
69
79
  run
70
80
  sleep(interval)
@@ -47,6 +47,13 @@ describe ExtremeFeedbackDevice::Jenkins do
47
47
  end
48
48
 
49
49
  context ".jobs" do
50
+ context "without mocked JSON" do
51
+ it "returns nil if host isn't available" do
52
+ subject.base_url = "http://this-host-isnt-available/"
53
+ subject.jobs.should be_nil
54
+ end
55
+ end
56
+
50
57
  context "with mocked JSON" do
51
58
  let(:response) { '''{"jobs":[
52
59
  {"name":"Project X - Master","color":"blue","healthReport":[{"score":80}]},
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: extreme_feedback_device
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Nowak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-14 00:00:00.000000000 Z
11
+ date: 2014-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: color
@@ -179,6 +179,7 @@ files:
179
179
  - .rspec
180
180
  - .ruby-gemset
181
181
  - .ruby-version
182
+ - .travis.yml
182
183
  - Gemfile
183
184
  - Guardfile
184
185
  - LICENSE.txt
@@ -223,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
224
  version: '0'
224
225
  requirements: []
225
226
  rubyforge_project:
226
- rubygems_version: 2.0.3
227
+ rubygems_version: 2.0.14
227
228
  signing_key:
228
229
  specification_version: 4
229
230
  summary: Fetches Jobs from a Jenkins CI via the REST JSON API and sets LEDs of an