traffic_light_pi_server 0.0.1 → 0.0.2
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.
- data/README.md +5 -0
- data/lib/traffic_light_pi_server.rb +40 -0
- data/spec/lib/traffic_light_pi_server_spec.rb +35 -0
- data/spec/spec_helper.rb +8 -1
- data/traffic_light_pi_server.gemspec +5 -1
- metadata +50 -2
data/README.md
CHANGED
@@ -4,6 +4,11 @@ A traffic light serveur for Raspberry π
|
|
4
4
|
|
5
5
|
Current build:
|
6
6
|
[](https://travis-ci.org/nledez/traffic_light_pi_server)
|
7
|
+
[](https://coveralls.io/r/nledez/traffic_light_pi_server)
|
8
|
+
[](https://gemnasium.com/nledez/traffic_light_pi_server)
|
9
|
+
[](https://codeclimate.com/github/nledez/traffic_light_pi_server)
|
10
|
+
|
11
|
+
Yes Code Climate as a bad value, I watch this later.
|
7
12
|
|
8
13
|
## Installation
|
9
14
|
|
@@ -63,6 +63,46 @@ class TrafficLightPiServer < Sinatra::Base
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
+
# Reset all lines
|
67
|
+
get '/reset' do
|
68
|
+
@@line_map.each do |line, lights|
|
69
|
+
lights.each do |light, pin|
|
70
|
+
if light == :green
|
71
|
+
state = 1
|
72
|
+
else
|
73
|
+
state = 0
|
74
|
+
end
|
75
|
+
if @@pi_enabled
|
76
|
+
@@io.write(pin, state)
|
77
|
+
state = @@lines[line][light] = @@io.read(pin)
|
78
|
+
else
|
79
|
+
@@lines[line][light] = state
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
"Reseted"
|
84
|
+
end
|
85
|
+
|
86
|
+
# Reset one line
|
87
|
+
get '/:line/reset' do
|
88
|
+
line = params[:line].to_sym
|
89
|
+
|
90
|
+
@@line_map[line].each do |light, pin|
|
91
|
+
if light == :green
|
92
|
+
state = 1
|
93
|
+
else
|
94
|
+
state = 0
|
95
|
+
end
|
96
|
+
if @@pi_enabled
|
97
|
+
@@io.write(pin, state)
|
98
|
+
state = @@lines[line][light] = @@io.read(pin)
|
99
|
+
else
|
100
|
+
@@lines[line][light] = state
|
101
|
+
end
|
102
|
+
end
|
103
|
+
"Reseted"
|
104
|
+
end
|
105
|
+
|
66
106
|
# Get current status for one light/color in one line
|
67
107
|
get '/:line/:light' do
|
68
108
|
line = params[:line].to_sym
|
@@ -68,6 +68,41 @@ describe "My Traffic light server" do
|
|
68
68
|
last_response.body.should == "5:0"
|
69
69
|
end
|
70
70
|
|
71
|
+
it "should reset lights" do
|
72
|
+
get '/front/green/0'
|
73
|
+
get '/front/red/1'
|
74
|
+
get '/left/red/1'
|
75
|
+
|
76
|
+
get '/front/reset'
|
77
|
+
get '/left/reset'
|
78
|
+
|
79
|
+
get '/front/green'
|
80
|
+
last_response.body.should == "12:1"
|
81
|
+
|
82
|
+
get '/front/red'
|
83
|
+
last_response.body.should == "14:0"
|
84
|
+
|
85
|
+
get '/left/red'
|
86
|
+
last_response.body.should == "5:0"
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should reset lights" do
|
90
|
+
get '/front/green/0'
|
91
|
+
get '/front/red/1'
|
92
|
+
get '/left/red/1'
|
93
|
+
|
94
|
+
get '/reset'
|
95
|
+
|
96
|
+
get '/front/green'
|
97
|
+
last_response.body.should == "12:1"
|
98
|
+
|
99
|
+
get '/front/red'
|
100
|
+
last_response.body.should == "14:0"
|
101
|
+
|
102
|
+
get '/left/red'
|
103
|
+
last_response.body.should == "5:0"
|
104
|
+
end
|
105
|
+
|
71
106
|
it "should play mp3" do
|
72
107
|
get '/play/clic'
|
73
108
|
last_response.should be_ok
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start 'rails'
|
1
3
|
require File.join(File.dirname(__FILE__), '../lib', 'traffic_light_pi_server.rb')
|
2
4
|
|
3
5
|
require 'rack/test'
|
@@ -9,6 +11,11 @@ set :run, false
|
|
9
11
|
set :raise_errors, true
|
10
12
|
set :logging, false
|
11
13
|
|
14
|
+
if ENV["CI"]
|
15
|
+
require 'coveralls'
|
16
|
+
Coveralls.wear!
|
17
|
+
end
|
18
|
+
|
12
19
|
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
13
20
|
RSpec.configure do |config|
|
14
21
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
@@ -19,5 +26,5 @@ RSpec.configure do |config|
|
|
19
26
|
# order dependency and want to debug it, you can fix the order by providing
|
20
27
|
# the seed, which is printed after each run.
|
21
28
|
# --seed 1234
|
22
|
-
|
29
|
+
config.order = 'random'
|
23
30
|
end
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "traffic_light_pi_server"
|
7
|
-
spec.version = "0.0.
|
7
|
+
spec.version = "0.0.2"
|
8
8
|
spec.authors = ["Nicolas Ledez"]
|
9
9
|
spec.email = ["rubygems@ledez.net"]
|
10
10
|
spec.description = %q{A traffic light serveur for Raspberry π}
|
@@ -30,6 +30,10 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency "guard-rspec"
|
31
31
|
spec.add_development_dependency "guard-bundler"
|
32
32
|
|
33
|
+
spec.add_development_dependency "simplecov"
|
34
|
+
spec.add_development_dependency "json", '~> 1.7.7'
|
35
|
+
spec.add_development_dependency "coveralls"
|
36
|
+
|
33
37
|
if spec.platform.to_s == 'arm-linux-eabihf'
|
34
38
|
spec.add_development_dependency "rb-fsevent"
|
35
39
|
spec.add_development_dependency "growl"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traffic_light_pi_server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
@@ -155,6 +155,54 @@ dependencies:
|
|
155
155
|
- - ! '>='
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: simplecov
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: json
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - ~>
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: 1.7.7
|
182
|
+
type: :development
|
183
|
+
prerelease: false
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ~>
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 1.7.7
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: coveralls
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
194
|
+
requirements:
|
195
|
+
- - ! '>='
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
198
|
+
type: :development
|
199
|
+
prerelease: false
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
158
206
|
description: A traffic light serveur for Raspberry π
|
159
207
|
email:
|
160
208
|
- rubygems@ledez.net
|