rbone 0.1.0 → 0.1.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.
- data/lib/rbone/app.rb +4 -6
- data/lib/rbone/version.rb +1 -1
- data/spec/rbone/app_spec.rb +30 -3
- metadata +10 -10
data/lib/rbone/app.rb
CHANGED
@@ -51,15 +51,15 @@ module Rbone
|
|
51
51
|
def pinMode(pin, direction)
|
52
52
|
if DIGITAL_PINS.include?(pin)
|
53
53
|
File.open('/sys/class/gpio/export', 'w') do |f|
|
54
|
-
f.write("%s
|
54
|
+
f.write("%s" % [pin])
|
55
55
|
end
|
56
56
|
|
57
57
|
filename = '/sys/class/gpio/gpio%d/direction' % [pin]
|
58
58
|
File.open(filename, 'w') do |f|
|
59
59
|
if direction == INPUT
|
60
|
-
f.write("in
|
60
|
+
f.write("in")
|
61
61
|
else
|
62
|
-
f.write("out
|
62
|
+
f.write("out")
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -81,7 +81,7 @@ module Rbone
|
|
81
81
|
|
82
82
|
if value == HIGH || value == LOW
|
83
83
|
File.open(filename, 'w') do |f|
|
84
|
-
|
84
|
+
f.write("%s" % [value])
|
85
85
|
end
|
86
86
|
return true
|
87
87
|
else
|
@@ -119,11 +119,9 @@ module Rbone
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def cleanup!
|
122
|
-
puts "cleanup!"
|
123
122
|
end
|
124
123
|
|
125
124
|
def pinUnexport(pin)
|
126
|
-
|
127
125
|
end
|
128
126
|
end
|
129
127
|
end
|
data/lib/rbone/version.rb
CHANGED
data/spec/rbone/app_spec.rb
CHANGED
@@ -2,8 +2,11 @@ require 'spec_helper'
|
|
2
2
|
require 'rbone/app'
|
3
3
|
|
4
4
|
describe Rbone::App do
|
5
|
-
before :
|
5
|
+
before :each do
|
6
|
+
@app = Rbone::App.new
|
7
|
+
|
6
8
|
FileUtils.mkdir_p('/sys/class/gpio')
|
9
|
+
FileUtils.touch(%w(export unexport))
|
7
10
|
|
8
11
|
# mock USR leds
|
9
12
|
%w(0 1 2 3).map{ |n| "/sys/devices/platform/leds-gpio/leds/beaglebone::usr#{n}" }.each do |base_dir|
|
@@ -12,8 +15,8 @@ describe Rbone::App do
|
|
12
15
|
end
|
13
16
|
end
|
14
17
|
|
15
|
-
|
16
|
-
|
18
|
+
after :each do
|
19
|
+
FileUtils.rm_rf('/sys')
|
17
20
|
end
|
18
21
|
|
19
22
|
def mock_export(pin)
|
@@ -29,6 +32,30 @@ describe Rbone::App do
|
|
29
32
|
value
|
30
33
|
end
|
31
34
|
|
35
|
+
describe '#pinMode' do
|
36
|
+
it "writes the appropriate value to the export file" do
|
37
|
+
mock_export(P8_3)
|
38
|
+
@app.pinMode(P8_3, OUTPUT).should be_true
|
39
|
+
read_value("/sys/class/gpio/export").should == "38"
|
40
|
+
end
|
41
|
+
|
42
|
+
it "adds the exported pin to the list" do
|
43
|
+
mock_export(P8_3)
|
44
|
+
@app.pinMode(P8_3, OUTPUT).should be_true
|
45
|
+
@app.instance_variable_get(:@exported_pins).include?(38).should be_true
|
46
|
+
end
|
47
|
+
|
48
|
+
it "writes the appropriate value to the pin's direction file" do
|
49
|
+
mock_export(P8_3)
|
50
|
+
@app.pinMode(P8_3, INPUT).should be_true
|
51
|
+
read_value("/sys/class/gpio/gpio38/direction").should == 'in'
|
52
|
+
end
|
53
|
+
|
54
|
+
it "raises an exception if the pin is invalid" do
|
55
|
+
lambda{ @app.pinMode(9001, INPUT) }.should raise_error(Rbone::PinRefError)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
32
59
|
describe '#digitalWrite' do
|
33
60
|
it "sets the GPIO pin to HIGH" do
|
34
61
|
mock_export(P8_3)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70258656436940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70258656436940
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70258656436040 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70258656436040
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: fakefs
|
38
|
-
requirement: &
|
38
|
+
requirement: &70258656435080 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70258656435080
|
47
47
|
description: This gem provides a simple interface for writing Arduino-style programs
|
48
48
|
for the BeagleBone.
|
49
49
|
email:
|
@@ -80,7 +80,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
80
|
version: '0'
|
81
81
|
segments:
|
82
82
|
- 0
|
83
|
-
hash:
|
83
|
+
hash: 2829133169189030110
|
84
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
86
|
requirements:
|
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
89
|
version: '0'
|
90
90
|
segments:
|
91
91
|
- 0
|
92
|
-
hash:
|
92
|
+
hash: 2829133169189030110
|
93
93
|
requirements: []
|
94
94
|
rubyforge_project:
|
95
95
|
rubygems_version: 1.8.11
|