rbone 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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\n" % [pin])
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\n")
60
+ f.write("in")
61
61
  else
62
- f.write("out\n")
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
- f.write("%s" % [value])
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
@@ -1,3 +1,3 @@
1
1
  module Rbone
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -2,8 +2,11 @@ require 'spec_helper'
2
2
  require 'rbone/app'
3
3
 
4
4
  describe Rbone::App do
5
- before :all do
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
- before :each do
16
- @app = Rbone::App.new
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.0
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-18 00:00:00.000000000 Z
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: &70355878496380 !ruby/object:Gem::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: *70355878496380
24
+ version_requirements: *70258656436940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70355878495480 !ruby/object:Gem::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: *70355878495480
35
+ version_requirements: *70258656436040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: fakefs
38
- requirement: &70355888796100 !ruby/object:Gem::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: *70355888796100
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: -1113520713437468281
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: -1113520713437468281
92
+ hash: 2829133169189030110
93
93
  requirements: []
94
94
  rubyforge_project:
95
95
  rubygems_version: 1.8.11