dbrady-switchy 0.2.1 → 0.2.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.rdoc +38 -0
- data/bin/sparky +69 -42
- metadata +3 -2
data/README.rdoc
CHANGED
@@ -2,6 +2,44 @@
|
|
2
2
|
|
3
3
|
Ruby Application to switch AC loads (e.g. turn a lamp on and off).
|
4
4
|
|
5
|
+
Update 2009-09-26: This has actually become something of a
|
6
|
+
unit-testing light dongle for me. The basic switching hardware was
|
7
|
+
finished quite early, so the only thing left to do was to add a Killer
|
8
|
+
Demo App(TM). The basic switching app is just called "switchy", and it
|
9
|
+
controls individual pins 1 through 10 on the board.
|
10
|
+
|
11
|
+
The Killer Demo, then, would be Sparky, Sparcumber, and Autospark.
|
12
|
+
Each of these has a "christmas tree" LED arrangement: Five LEDs on
|
13
|
+
each side of the device are wired for run, fail, warning, and pass.
|
14
|
+
There are two green LEDs for pass on each side, so the pinouts are:
|
15
|
+
|
16
|
+
Pins 1-5 (left side): blue, red, yellow, green, green
|
17
|
+
Pins 10-6 (right side, note reverse order because pin numbering continues
|
18
|
+
clockwise around the board): blue, red, yellow, green, green
|
19
|
+
|
20
|
+
Sparky provides an RSpec progress formatter, so that it gets updated
|
21
|
+
as each spec runs. While running it animates the LEDs to show the
|
22
|
+
current overall progress. As each spec finishes an LED of the
|
23
|
+
appropriate color lights up.
|
24
|
+
|
25
|
+
Sparky also has a generic mode. If you run "sparky foo", sparky will
|
26
|
+
turn on the running lights, then run the foo command. When foo
|
27
|
+
finishes, its exit status will be used to turn on either the red or
|
28
|
+
green lights.
|
29
|
+
|
30
|
+
Sparcumber does for Cucumber what Sparky does for RSpec. Get Cucumber
|
31
|
+
configured so you can type "cucumber" from the root of your project,
|
32
|
+
then type "sparcumber" instead. Sparcumber will light up the board as
|
33
|
+
Cucumber runs.
|
34
|
+
|
35
|
+
Autospark is currently vaporware. All it should do is hook sparky into
|
36
|
+
autospec. Patches are welcome. There is a spec.sparky.opts file in the
|
37
|
+
res folder, however, that will achieve this for now, but it does cause
|
38
|
+
your project to take a dependency on sparky, which in turn requires
|
39
|
+
having the hardware dongle connected to run your specs, which is less
|
40
|
+
than agile.
|
41
|
+
|
42
|
+
|
5
43
|
= Example
|
6
44
|
|
7
45
|
== Command-line Apps
|
data/bin/sparky
CHANGED
@@ -1,52 +1,79 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# TODO! This, along with switchy, needs to be made into a rubygem!
|
4
|
-
# Others may have difficulty using this in a portable fashion without
|
5
|
-
# a /Users/dbrady folder, for example...
|
6
|
-
|
7
|
-
def show_run
|
8
|
-
# system "switchy 1 0 2 1 3 1 4 1"
|
9
|
-
system "switchy 1 1 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 1"
|
10
|
-
end
|
11
2
|
|
12
|
-
|
13
|
-
|
14
|
-
|
3
|
+
class Sparky
|
4
|
+
def show_run
|
5
|
+
# system "switchy 1 0 2 1 3 1 4 1"
|
6
|
+
system "switchy 1 1 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 1"
|
7
|
+
end
|
15
8
|
|
16
|
-
def
|
17
|
-
|
18
|
-
end
|
9
|
+
def show_fail
|
10
|
+
system "switchy 1 0 2 1 3 0 4 0 5 0 6 0 7 0 8 0 9 1 10 0"
|
11
|
+
end
|
19
12
|
|
20
|
-
def
|
21
|
-
|
22
|
-
end
|
13
|
+
def show_pending
|
14
|
+
system "switchy 1 0 2 0 3 1 4 0 5 0 6 0 7 0 8 1 9 0 10 0"
|
15
|
+
end
|
23
16
|
|
24
|
-
def
|
25
|
-
|
17
|
+
def show_pass
|
18
|
+
system "switchy 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 0 9 0 10 0"
|
19
|
+
end
|
20
|
+
|
21
|
+
def show_reset
|
22
|
+
system "switchy 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0"
|
23
|
+
end
|
24
|
+
|
25
|
+
def show_all
|
26
|
+
system "switchy 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1"
|
27
|
+
end
|
28
|
+
|
29
|
+
def show_selftest
|
30
|
+
show_reset
|
31
|
+
|
32
|
+
show_all
|
33
|
+
sleep 1.0
|
34
|
+
show_reset
|
35
|
+
|
36
|
+
1.upto(10) do |i|
|
37
|
+
system "switchy #{i} 1"
|
38
|
+
system "switchy #{i} 0"
|
39
|
+
end
|
40
|
+
|
41
|
+
%w(run fail pending pass).each do |msg|
|
42
|
+
send "show_#{msg}"
|
43
|
+
sleep 0.5
|
44
|
+
end
|
45
|
+
sleep 0.5
|
46
|
+
show_reset
|
47
|
+
end
|
26
48
|
end
|
27
49
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
when "
|
33
|
-
when "
|
34
|
-
when "
|
35
|
-
when "
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
cmd = ARGV.map {|a| '"' + a.gsub(/"/, '\"') + '"' } * ' '
|
46
|
-
|
47
|
-
if system(cmd)
|
48
|
-
show_pass
|
50
|
+
if __FILE__==$0
|
51
|
+
s = Sparky.new
|
52
|
+
|
53
|
+
case ARGV[0].downcase
|
54
|
+
when "reset" then s.show_reset
|
55
|
+
when "pending" then s.show_pending
|
56
|
+
when "fail" then s.show_fail
|
57
|
+
when "pass" then s.show_pass
|
58
|
+
when "run" then s.show_run
|
59
|
+
when "test" then s.show_test
|
60
|
+
when "selftest" then s.show_selftest
|
61
|
+
when "spec"
|
62
|
+
lib_path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'sparky_progress_formatter.rb'))
|
63
|
+
args = ARGV[1..-1].dup.map {|a| '"' + a.gsub(/"/, '\"') + '"' } * ' '
|
64
|
+
cmd = "spec --require #{lib_path} --format Spec::Runner::Formatter::SparkyProgressFormatter #{args}"
|
65
|
+
system(cmd)
|
49
66
|
else
|
50
|
-
|
67
|
+
# TODO: If spec or rake spec:*, bind formatter
|
68
|
+
# TODO: If autospec, bind formatter
|
69
|
+
s.show_run
|
70
|
+
|
71
|
+
cmd = ARGV.map {|a| '"' + a.gsub(/"/, '\"') + '"' } * ' '
|
72
|
+
|
73
|
+
if system(cmd)
|
74
|
+
s.show_pass
|
75
|
+
else
|
76
|
+
s.show_fail
|
77
|
+
end
|
51
78
|
end
|
52
79
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dbrady-switchy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Brady
|
@@ -46,6 +46,7 @@ files:
|
|
46
46
|
- MIT-LICENSE
|
47
47
|
has_rdoc: true
|
48
48
|
homepage: http://github.com/dbrady/switchy
|
49
|
+
licenses:
|
49
50
|
post_install_message:
|
50
51
|
rdoc_options:
|
51
52
|
- --line-numbers
|
@@ -71,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
72
|
requirements: []
|
72
73
|
|
73
74
|
rubyforge_project:
|
74
|
-
rubygems_version: 1.
|
75
|
+
rubygems_version: 1.3.5
|
75
76
|
signing_key:
|
76
77
|
specification_version: 2
|
77
78
|
summary: Switchy USB serial load switcher
|