rubylabs 0.8.2 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/rubylabs.rb +21 -17
- data/test/iteration_test.rb +20 -14
- metadata +30 -5
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.3
|
data/lib/rubylabs.rb
CHANGED
@@ -290,6 +290,9 @@ Call +a.random(:success)+ to get a value that is in the array +a+, or call
|
|
290
290
|
if newfilename.nil?
|
291
291
|
newfilename = id.to_s
|
292
292
|
end
|
293
|
+
if newfilename[-1] == ?? || newfilename[1] == ?!
|
294
|
+
newfilename.chop!
|
295
|
+
end
|
293
296
|
if newfilename !~ /\.rb$/
|
294
297
|
newfilename += ".rb"
|
295
298
|
end
|
@@ -397,27 +400,27 @@ Call +a.random(:success)+ to get a value that is in the array +a+, or call
|
|
397
400
|
id = name.to_sym
|
398
401
|
return id if @@file[id] # return if we looked for this source previously
|
399
402
|
|
400
|
-
filename, base, size = nil, nil, nil
|
401
|
-
names = []
|
403
|
+
filename, base, size, helpers = nil, nil, nil, nil
|
402
404
|
|
403
405
|
catch (:found) do
|
404
406
|
SCRIPT_LINES__.each do |file, lines|
|
405
407
|
line_num = 0
|
406
408
|
lines.each do |s|
|
407
409
|
line_num += 1
|
408
|
-
if match = s.match(/:begin\s+(.*)/)
|
409
|
-
|
410
|
+
if match = s.match(/:(begin|end)\s+(.*)/)
|
411
|
+
verb = match[1]
|
412
|
+
names = match[2].split.collect{|x| eval(x)}
|
410
413
|
if names[0] == id
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
+
if verb == "begin"
|
415
|
+
filename = file
|
416
|
+
base = line_num + 1
|
417
|
+
helpers = names[1..-1]
|
418
|
+
else
|
419
|
+
size = line_num - base
|
420
|
+
throw :found
|
421
|
+
end
|
414
422
|
end
|
415
423
|
end
|
416
|
-
# if s =~ /:end\s+:#{id.to_s}\b/
|
417
|
-
if s =~ /:end\s+:#{id.to_s}\s/
|
418
|
-
size = line_num - base
|
419
|
-
throw :found
|
420
|
-
end
|
421
424
|
end
|
422
425
|
end
|
423
426
|
end
|
@@ -428,7 +431,7 @@ Call +a.random(:success)+ to get a value that is in the array +a+, or call
|
|
428
431
|
@@size[id] = size
|
429
432
|
@@base[id] = base
|
430
433
|
@@probes[id] = Hash.new
|
431
|
-
@@helpers[id] =
|
434
|
+
@@helpers[id] = helpers
|
432
435
|
return id
|
433
436
|
end
|
434
437
|
|
@@ -476,10 +479,11 @@ Call +a.random(:success)+ to get a value that is in the array +a+, or call
|
|
476
479
|
return
|
477
480
|
end
|
478
481
|
|
479
|
-
printf "file:
|
480
|
-
printf "size:
|
481
|
-
printf "base:
|
482
|
-
printf "
|
482
|
+
printf "file: %s\n", @@file[id]
|
483
|
+
printf "size: %d\n", @@size[id]
|
484
|
+
printf "base: %d\n", @@base[id]
|
485
|
+
printf "helpers: %s\n", @@helpers[id].inspect
|
486
|
+
printf "probes: %s\n", @@probes[id].inspect
|
483
487
|
end
|
484
488
|
|
485
489
|
end # Source
|
data/test/iteration_test.rb
CHANGED
@@ -42,19 +42,25 @@ class TestIterativeAlgoritms < Test::Unit::TestCase
|
|
42
42
|
# Capture the output of a trace when sorting a list of 5 numbers. Expect
|
43
43
|
# four lines, with left bracket moving one number to the right each time.
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
45
|
+
# ?? This test works fine when the shell command (executed from the parent
|
46
|
+
# directory) is "ruby test/iteration_test.rb", but fails when run from rake
|
47
|
+
# as "rake test". The captured output is an error message:
|
48
|
+
# "undefined local variable or method `wrapper' for RubyLabs::Source:Module"
|
49
|
+
# There is no call to 'wrapper' in our code, so something is messed up in the test.
|
50
|
+
|
51
|
+
# def test_04_trace
|
52
|
+
# assert Source.clear
|
53
|
+
# oldout = $stdout
|
54
|
+
# newout = StringIO.new
|
55
|
+
# $stdout = newout
|
56
|
+
# Source.probe :isort, 5, "puts brackets(a,i)"
|
57
|
+
# trace { isort(TestArray.new(5)) }
|
58
|
+
# $stdout = oldout
|
59
|
+
# lines = newout.string.split("\n")
|
60
|
+
# assert_equal 4, lines.length
|
61
|
+
# assert_match /\d+\s+\[.*\]/, lines[0]
|
62
|
+
# assert_match /\d+\s+\d+\s+\[.*\]/, lines[1]
|
63
|
+
# assert_match /\[\d+\]/, lines[-1]
|
64
|
+
# end
|
59
65
|
|
60
66
|
end
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubylabs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 57
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 8
|
9
|
+
- 3
|
10
|
+
version: 0.8.3
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- conery
|
@@ -9,7 +15,7 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2010-
|
18
|
+
date: 2010-10-12 00:00:00 -07:00
|
13
19
|
default_executable: lab-setup.rb
|
14
20
|
dependencies: []
|
15
21
|
|
@@ -76,6 +82,19 @@ files:
|
|
76
82
|
- lib/sievelab.rb
|
77
83
|
- lib/spherelab.rb
|
78
84
|
- lib/tsplab.rb
|
85
|
+
- test/bit_test.rb
|
86
|
+
- test/eliza_test.rb
|
87
|
+
- test/encryption_test.rb
|
88
|
+
- test/hash_test.rb
|
89
|
+
- test/iteration_test.rb
|
90
|
+
- test/mars_test.rb
|
91
|
+
- test/random_test.rb
|
92
|
+
- test/recursion_test.rb
|
93
|
+
- test/rubylabs_test.rb
|
94
|
+
- test/sieve_test.rb
|
95
|
+
- test/sphere_test.rb
|
96
|
+
- test/test_helper.rb
|
97
|
+
- test/tsp_test.rb
|
79
98
|
has_rdoc: true
|
80
99
|
homepage: http://github.com/conery/rubylabs
|
81
100
|
licenses: []
|
@@ -86,21 +105,27 @@ rdoc_options:
|
|
86
105
|
require_paths:
|
87
106
|
- lib
|
88
107
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
89
109
|
requirements:
|
90
110
|
- - ">="
|
91
111
|
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
113
|
+
segments:
|
114
|
+
- 0
|
92
115
|
version: "0"
|
93
|
-
version:
|
94
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
95
118
|
requirements:
|
96
119
|
- - ">="
|
97
120
|
- !ruby/object:Gem::Version
|
121
|
+
hash: 3
|
122
|
+
segments:
|
123
|
+
- 0
|
98
124
|
version: "0"
|
99
|
-
version:
|
100
125
|
requirements: []
|
101
126
|
|
102
127
|
rubyforge_project: rubylabs
|
103
|
-
rubygems_version: 1.3.
|
128
|
+
rubygems_version: 1.3.7
|
104
129
|
signing_key:
|
105
130
|
specification_version: 3
|
106
131
|
summary: Software and data for lab projects for Explorations in Computing.
|