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 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