logonxc 0.2.0 → 0.3.0
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 +1 -0
- data/VERSION +1 -1
- data/lib/logonxc.rb +4 -0
- data/logonxc.gemspec +2 -2
- data/spec/logonxc_spec.rb +8 -0
- data/templates/logonxc.erb +15 -3
- metadata +10 -10
data/README.rdoc
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
= logonxc
|
2
2
|
|
3
3
|
Parse basic logo commands and output NXC (a simple c-like programming language for Lego Mindstorms)
|
4
|
+
WARNING: I doubt that this will be useful to anyone else as it is. The main drive motors are hardcoded to B&C, the pen to A. Also the pace and turn sizes will likely be different on other logo bots.
|
4
5
|
|
5
6
|
== Contributing to logonxc
|
6
7
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/logonxc.rb
CHANGED
@@ -29,6 +29,10 @@ class LogoNxc
|
|
29
29
|
output << "forward(#{$1});\n"
|
30
30
|
when line =~ /(?:back|bk)\s*(\d+)/
|
31
31
|
output << "back(#{$1});\n"
|
32
|
+
when line =~ /penup/
|
33
|
+
output << "penup();\n"
|
34
|
+
when line =~ /pendown/
|
35
|
+
output << "pendown();\n"
|
32
36
|
when line =~ /\]/
|
33
37
|
output << "}\n"
|
34
38
|
end
|
data/logonxc.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{logonxc}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Deb Bassett"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2012-11-14}
|
13
13
|
s.description = %q{Parse basic logo and output NXC for Lego Mindstorms}
|
14
14
|
s.email = %q{deb@urbanwide.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/spec/logonxc_spec.rb
CHANGED
@@ -18,6 +18,8 @@ describe "LogoNxc" do
|
|
18
18
|
print 'other thing'
|
19
19
|
sleep 1000
|
20
20
|
beep
|
21
|
+
penup
|
22
|
+
pendown
|
21
23
|
TEXT
|
22
24
|
end
|
23
25
|
|
@@ -68,6 +70,12 @@ describe "LogoNxc" do
|
|
68
70
|
it "should translate beep" do
|
69
71
|
@output[13].should == 'beep();'
|
70
72
|
end
|
73
|
+
it "should translate penup" do
|
74
|
+
@output[14].should == 'penup();'
|
75
|
+
end
|
76
|
+
it "should translate pendown" do
|
77
|
+
@output[15].should == 'pendown();'
|
78
|
+
end
|
71
79
|
end
|
72
80
|
|
73
81
|
describe ".nxc" do
|
data/templates/logonxc.erb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#define POWER 50
|
2
|
-
#define PACE_ROTATION_DEGREES
|
2
|
+
#define PACE_ROTATION_DEGREES 35
|
3
3
|
#define TURN_90_ROTATION_DEGREES 506
|
4
4
|
|
5
5
|
int wait_time = 100;
|
@@ -67,7 +67,19 @@ sub back(int paces) {
|
|
67
67
|
move_end();
|
68
68
|
}
|
69
69
|
|
70
|
-
|
70
|
+
sub penup() {
|
71
|
+
RotateMotor(OUT_A, POWER, -18);
|
72
|
+
move_end();
|
73
|
+
}
|
74
|
+
|
75
|
+
sub pendown() {
|
76
|
+
RotateMotor(OUT_A, POWER, 18);
|
77
|
+
move_end();
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
task code() {
|
82
|
+
pendown();
|
71
83
|
<%= nxc_block %>
|
72
84
|
wait(2000);
|
73
85
|
}
|
@@ -83,6 +95,6 @@ task red() {
|
|
83
95
|
|
84
96
|
task main() {
|
85
97
|
|
86
|
-
Precedes(red,
|
98
|
+
Precedes(red, code);
|
87
99
|
|
88
100
|
}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logonxc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 3
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Deb Bassett
|
@@ -15,11 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-11-14 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: erubis
|
23
|
+
type: :runtime
|
23
24
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
25
|
none: false
|
25
26
|
requirements:
|
@@ -30,10 +31,10 @@ dependencies:
|
|
30
31
|
- 0
|
31
32
|
version: "0"
|
32
33
|
prerelease: false
|
33
|
-
type: :runtime
|
34
34
|
requirement: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: rake
|
37
|
+
type: :runtime
|
37
38
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
39
|
none: false
|
39
40
|
requirements:
|
@@ -46,10 +47,10 @@ dependencies:
|
|
46
47
|
- 7
|
47
48
|
version: 0.8.7
|
48
49
|
prerelease: false
|
49
|
-
type: :runtime
|
50
50
|
requirement: *id002
|
51
51
|
- !ruby/object:Gem::Dependency
|
52
52
|
name: rspec
|
53
|
+
type: :development
|
53
54
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
55
|
none: false
|
55
56
|
requirements:
|
@@ -62,10 +63,10 @@ dependencies:
|
|
62
63
|
- 0
|
63
64
|
version: 2.3.0
|
64
65
|
prerelease: false
|
65
|
-
type: :development
|
66
66
|
requirement: *id003
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: bundler
|
69
|
+
type: :development
|
69
70
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
71
|
none: false
|
71
72
|
requirements:
|
@@ -78,10 +79,10 @@ dependencies:
|
|
78
79
|
- 0
|
79
80
|
version: 1.0.0
|
80
81
|
prerelease: false
|
81
|
-
type: :development
|
82
82
|
requirement: *id004
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: jeweler
|
85
|
+
type: :development
|
85
86
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
86
87
|
none: false
|
87
88
|
requirements:
|
@@ -94,10 +95,10 @@ dependencies:
|
|
94
95
|
- 4
|
95
96
|
version: 1.6.4
|
96
97
|
prerelease: false
|
97
|
-
type: :development
|
98
98
|
requirement: *id005
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: rcov
|
101
|
+
type: :development
|
101
102
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
102
103
|
none: false
|
103
104
|
requirements:
|
@@ -108,7 +109,6 @@ dependencies:
|
|
108
109
|
- 0
|
109
110
|
version: "0"
|
110
111
|
prerelease: false
|
111
|
-
type: :development
|
112
112
|
requirement: *id006
|
113
113
|
description: Parse basic logo and output NXC for Lego Mindstorms
|
114
114
|
email: deb@urbanwide.com
|