rubylabs 0.8.2 → 0.8.3
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/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.
|