quarry 0.4.0 → 0.5.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/CHANGES +22 -1
- data/MANIFEST +30 -339
- data/RELEASE +2 -4
- data/VERSION +1 -1
- data/bin/quarry +14 -10
- data/bin/quarry-doc +2 -2
- data/lib/quarry/assertion.rb +27 -0
- data/lib/quarry/{spec/config.rb → config.rb} +0 -0
- data/lib/quarry/document/template.rhtml +239 -0
- data/lib/quarry/document.rb +126 -0
- data/lib/quarry/expectation.rb +60 -0
- data/lib/quarry/extract.rb +2 -0
- data/lib/quarry/grammar/assert.rb +48 -0
- data/lib/quarry/grammar/expect.rb +114 -0
- data/lib/quarry/grammar/legacy/assert.rb +280 -0
- data/lib/quarry/grammar/should.rb +50 -0
- data/lib/quarry/grammar.rb +4 -0
- data/lib/quarry/{spec → markup}/step.rb +4 -3
- data/lib/quarry/markup.rb +70 -0
- data/lib/quarry/{stub/mock.rb → mock.rb} +1 -1
- data/lib/quarry/{loadmonitor.rb → monitor.rb} +0 -0
- data/lib/quarry/{stub/probe.rb → probe.rb} +8 -35
- data/lib/quarry/reporter/dotprogress.rb +62 -0
- data/lib/quarry/reporter/summary.rb +70 -0
- data/lib/quarry/reporter/verbatim.rb +82 -0
- data/lib/quarry/reporter.rb +70 -0
- data/lib/quarry/{spec → runner}/context.rb +7 -2
- data/lib/quarry/runner.rb +123 -0
- data/lib/quarry/{stub/stub.rb → stub.rb} +1 -1
- data/lib/quarry.rb +10 -0
- data/spec/basic.rd +0 -2
- data/spec/complex.rd +0 -2
- data/spec/mock.rd +20 -26
- data/spec/stub.rd +8 -12
- metadata +48 -361
- data/bin/ruby-break +0 -10
- data/doc/assets/images/clipboard.jpg +0 -0
- data/doc/assets/images/clipboard2.png +0 -0
- data/doc/assets/images/darksilver.png +0 -0
- data/doc/assets/images/icon/book.jpg +0 -0
- data/doc/assets/images/icon/download.gif +0 -0
- data/doc/assets/images/icon/letter_r.png +0 -0
- data/doc/assets/images/icon/license.png +0 -0
- data/doc/assets/images/icon/software.png +0 -0
- data/doc/assets/images/icon/source.png +0 -0
- data/doc/assets/images/miner.jpg +0 -0
- data/doc/assets/images/rbrylmtrx.png +0 -0
- data/doc/assets/images/ruby.gif +0 -0
- data/doc/assets/images/runneth.png +0 -0
- data/doc/assets/images/silver.gif +0 -0
- data/doc/assets/images/test.jpg +0 -0
- data/doc/assets/jquery/jquery.js +0 -1
- data/doc/assets/jquery/jquery.tabs.js +0 -1
- data/doc/assets/rdoc_ad.html +0 -12
- data/doc/assets/styles/index.css +0 -138
- data/doc/guide/stubs.md +0 -125
- data/doc/index.html +0 -285
- data/doc/log/bstats/stats.html +0 -39
- data/doc/log/notes.xml +0 -32
- data/doc/log/stats.html +0 -25
- data/doc/log/stats.log +0 -14
- data/doc/log/syntax.log +0 -0
- data/doc/rdoc/classes/Assertion/False.html +0 -177
- data/doc/rdoc/classes/Assertion/True.html +0 -152
- data/doc/rdoc/classes/Assertion.html +0 -171
- data/doc/rdoc/classes/Kernel.html +0 -105
- data/doc/rdoc/classes/Method.html +0 -168
- data/doc/rdoc/classes/Object.html +0 -507
- data/doc/rdoc/classes/Quarry/Break.html +0 -231
- data/doc/rdoc/classes/Quarry/Command.html +0 -443
- data/doc/rdoc/classes/Quarry/Extract.html +0 -215
- data/doc/rdoc/classes/Quarry/MethodProbe.html +0 -325
- data/doc/rdoc/classes/Quarry/Mock/Delegator.html +0 -179
- data/doc/rdoc/classes/Quarry/Mock/Setter.html +0 -175
- data/doc/rdoc/classes/Quarry/Mock.html +0 -233
- data/doc/rdoc/classes/Quarry/Spec/Comment.html +0 -237
- data/doc/rdoc/classes/Quarry/Spec/Config.html +0 -257
- data/doc/rdoc/classes/Quarry/Spec/Context.html +0 -154
- data/doc/rdoc/classes/Quarry/Spec/Document.html +0 -382
- data/doc/rdoc/classes/Quarry/Spec/Header.html +0 -195
- data/doc/rdoc/classes/Quarry/Spec/Macro.html +0 -166
- data/doc/rdoc/classes/Quarry/Spec/Markup.html +0 -279
- data/doc/rdoc/classes/Quarry/Spec/Reporter/DotProgress.html +0 -234
- data/doc/rdoc/classes/Quarry/Spec/Reporter/Summary.html +0 -294
- data/doc/rdoc/classes/Quarry/Spec/Reporter/Verbatim.html +0 -311
- data/doc/rdoc/classes/Quarry/Spec/Runner.html +0 -352
- data/doc/rdoc/classes/Quarry/Spec/Step.html +0 -190
- data/doc/rdoc/classes/Quarry/Spec/Template.html +0 -205
- data/doc/rdoc/classes/Quarry/Stub/Delegator.html +0 -179
- data/doc/rdoc/classes/Quarry/Stub/Setter.html +0 -175
- data/doc/rdoc/classes/Quarry/Stub.html +0 -224
- data/doc/rdoc/classes/Quarry.html +0 -176
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/CHANGES.html +0 -150
- data/doc/rdoc/files/COPYING.html +0 -468
- data/doc/rdoc/files/README.html +0 -195
- data/doc/rdoc/files/RELEASE.html +0 -122
- data/doc/rdoc/files/VERSION.html +0 -107
- data/doc/rdoc/files/bin/quarry-doc.html +0 -109
- data/doc/rdoc/files/bin/quarry.html +0 -109
- data/doc/rdoc/files/bin/ruby-break.html +0 -108
- data/doc/rdoc/files/bin/ruby-xacto.html +0 -101
- data/doc/rdoc/files/lib/quarry/assert_rb.html +0 -155
- data/doc/rdoc/files/lib/quarry/break_rb.html +0 -101
- data/doc/rdoc/files/lib/quarry/extract_rb.html +0 -108
- data/doc/rdoc/files/lib/quarry/loadmonitor_rb.html +0 -101
- data/doc/rdoc/files/lib/quarry/spec/config_rb.html +0 -101
- data/doc/rdoc/files/lib/quarry/spec/context_rb.html +0 -101
- data/doc/rdoc/files/lib/quarry/spec/document_rb.html +0 -111
- data/doc/rdoc/files/lib/quarry/spec/markup_rb.html +0 -108
- data/doc/rdoc/files/lib/quarry/spec/reporter/dotprogress_rb.html +0 -108
- data/doc/rdoc/files/lib/quarry/spec/reporter/summary_rb.html +0 -108
- data/doc/rdoc/files/lib/quarry/spec/reporter/verbatim_rb.html +0 -108
- data/doc/rdoc/files/lib/quarry/spec/reporter_rb.html +0 -109
- data/doc/rdoc/files/lib/quarry/spec/runner_rb.html +0 -109
- data/doc/rdoc/files/lib/quarry/spec/step_rb.html +0 -101
- data/doc/rdoc/files/lib/quarry/spec/template_rhtml.html +0 -228
- data/doc/rdoc/files/lib/quarry/spec_rb.html +0 -113
- data/doc/rdoc/files/lib/quarry/stub/mock_rb.html +0 -101
- data/doc/rdoc/files/lib/quarry/stub/probe_rb.html +0 -122
- data/doc/rdoc/files/lib/quarry/stub/spec_txt.html +0 -118
- data/doc/rdoc/files/lib/quarry/stub/stub_rb.html +0 -101
- data/doc/rdoc/fr_class_index.html +0 -56
- data/doc/rdoc/fr_file_index.html +0 -55
- data/doc/rdoc/fr_method_index.html +0 -117
- data/doc/rdoc/index.html +0 -24
- data/doc/rdoc/rdoc-style.css +0 -208
- data/doc/ri/Assertion/False/assert-i.yaml +0 -10
- data/doc/ri/Assertion/False/cdesc-False.yaml +0 -21
- data/doc/ri/Assertion/False/message-i.yaml +0 -10
- data/doc/ri/Assertion/True/assert-i.yaml +0 -11
- data/doc/ri/Assertion/True/cdesc-True.yaml +0 -26
- data/doc/ri/Assertion/True/message-c.yaml +0 -11
- data/doc/ri/Assertion/True/message-i.yaml +0 -11
- data/doc/ri/Assertion/True/method_missing-i.yaml +0 -12
- data/doc/ri/Assertion/True/new-c.yaml +0 -11
- data/doc/ri/Assertion/cdesc-Assertion.yaml +0 -40
- data/doc/ri/Kernel/cdesc-Kernel.yaml +0 -15
- data/doc/ri/Method/cdesc-Method.yaml +0 -18
- data/doc/ri/Method/migration-i.yaml +0 -12
- data/doc/ri/Method/signature-i.yaml +0 -12
- data/doc/ri/Object/assert%21-i.yaml +0 -17
- data/doc/ri/Object/assert-i.yaml +0 -15
- data/doc/ri/Object/assert_raises%21-i.yaml +0 -12
- data/doc/ri/Object/assert_raises-i.yaml +0 -15
- data/doc/ri/Object/cdesc-Object.yaml +0 -42
- data/doc/ri/Object/mock-i.yaml +0 -12
- data/doc/ri/Object/refute-i.yaml +0 -13
- data/doc/ri/Object/refute_raises-i.yaml +0 -17
- data/doc/ri/Object/remove-i.yaml +0 -12
- data/doc/ri/Object/should-i.yaml +0 -12
- data/doc/ri/Object/should_not-i.yaml +0 -12
- data/doc/ri/Object/should_not_raise-i.yaml +0 -12
- data/doc/ri/Object/should_raise-i.yaml +0 -12
- data/doc/ri/Object/stub-i.yaml +0 -12
- data/doc/ri/Quarry/Break/cdesc-Break.yaml +0 -23
- data/doc/ri/Quarry/Break/edit-i.yaml +0 -11
- data/doc/ri/Quarry/Break/new-c.yaml +0 -11
- data/doc/ri/Quarry/Extract/cdesc-Extract.yaml +0 -26
- data/doc/ri/Quarry/Extract/create_test-i.yaml +0 -12
- data/doc/ri/Quarry/Extract/extract_test_from_file-i.yaml +0 -12
- data/doc/ri/Quarry/Extract/test_extract-i.yaml +0 -18
- data/doc/ri/Quarry/MethodProbe/cdesc-MethodProbe.yaml +0 -46
- data/doc/ri/Quarry/MethodProbe/duckcall-c.yaml +0 -10
- data/doc/ri/Quarry/MethodProbe/initialize_copy-i.yaml +0 -10
- data/doc/ri/Quarry/MethodProbe/method_missing-i.yaml +0 -10
- data/doc/ri/Quarry/MethodProbe/new-c.yaml +0 -10
- data/doc/ri/Quarry/Mock/Delegator/cdesc-Delegator.yaml +0 -20
- data/doc/ri/Quarry/Mock/Delegator/method_missing-i.yaml +0 -10
- data/doc/ri/Quarry/Mock/Delegator/new-c.yaml +0 -10
- data/doc/ri/Quarry/Mock/Setter/%3d%3d-i.yaml +0 -10
- data/doc/ri/Quarry/Mock/Setter/cdesc-Setter.yaml +0 -18
- data/doc/ri/Quarry/Mock/Setter/new-c.yaml +0 -10
- data/doc/ri/Quarry/Mock/__table__-i.yaml +0 -11
- data/doc/ri/Quarry/Mock/cdesc-Mock.yaml +0 -25
- data/doc/ri/Quarry/Mock/method_missing-i.yaml +0 -12
- data/doc/ri/Quarry/Mock/new-c.yaml +0 -10
- data/doc/ri/Quarry/Spec/Comment/cdesc-Comment.yaml +0 -33
- data/doc/ri/Quarry/Spec/Comment/macro%3f-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Comment/new-c.yaml +0 -10
- data/doc/ri/Quarry/Spec/Comment/type-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Config/after-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Config/after_spec-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Config/before-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Config/before_spec-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Config/cdesc-Config.yaml +0 -26
- data/doc/ri/Quarry/Spec/Config/new-c.yaml +0 -10
- data/doc/ri/Quarry/Spec/Context/cdesc-Context.yaml +0 -21
- data/doc/ri/Quarry/Spec/Context/new-c.yaml +0 -10
- data/doc/ri/Quarry/Spec/Document/cdesc-Document.yaml +0 -76
- data/doc/ri/Quarry/Spec/Document/generate-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Document/new-c.yaml +0 -12
- data/doc/ri/Quarry/Spec/Document/quiet%3f-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Document/require_rdoc-i.yaml +0 -11
- data/doc/ri/Quarry/Spec/Document/save-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Document/template-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Header/cdesc-Header.yaml +0 -30
- data/doc/ri/Quarry/Spec/Header/new-c.yaml +0 -10
- data/doc/ri/Quarry/Spec/Macro/cdesc-Macro.yaml +0 -22
- data/doc/ri/Quarry/Spec/Macro/new-c.yaml +0 -10
- data/doc/ri/Quarry/Spec/Markup/cdesc-Markup.yaml +0 -31
- data/doc/ri/Quarry/Spec/Markup/description-i.yaml +0 -11
- data/doc/ri/Quarry/Spec/Markup/new-c.yaml +0 -11
- data/doc/ri/Quarry/Spec/Markup/parse-i.yaml +0 -11
- data/doc/ri/Quarry/Spec/Markup/parse_section-i.yaml +0 -11
- data/doc/ri/Quarry/Spec/Reporter/DotProgress/cdesc-DotProgress.yaml +0 -21
- data/doc/ri/Quarry/Spec/Reporter/DotProgress/report_intro-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/DotProgress/report_step-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/DotProgress/report_summary-i.yaml +0 -16
- data/doc/ri/Quarry/Spec/Reporter/Summary/cdesc-Summary.yaml +0 -31
- data/doc/ri/Quarry/Spec/Reporter/Summary/report_comment-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Summary/report_error-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Summary/report_fail-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Summary/report_header-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Summary/report_macro-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Summary/report_pass-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Verbatim/cdesc-Verbatim.yaml +0 -29
- data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_comment-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_error-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_fail-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_header-i.yaml +0 -16
- data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_macro-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/Verbatim/report_pass-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/Reporter/cdesc-Reporter.yaml +0 -20
- data/doc/ri/Quarry/Spec/Runner/cdesc-Runner.yaml +0 -47
- data/doc/ri/Quarry/Spec/Runner/check-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Runner/check_spec-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Runner/new-c.yaml +0 -12
- data/doc/ri/Quarry/Spec/Runner/run_step-i.yaml +0 -12
- data/doc/ri/Quarry/Spec/Step/cdesc-Step.yaml +0 -30
- data/doc/ri/Quarry/Spec/Step/new-c.yaml +0 -10
- data/doc/ri/Quarry/Spec/Template/cdesc-Template.yaml +0 -31
- data/doc/ri/Quarry/Spec/Template/new-c.yaml +0 -11
- data/doc/ri/Quarry/Spec/Template/parse_template-i.yaml +0 -10
- data/doc/ri/Quarry/Spec/cdesc-Spec.yaml +0 -15
- data/doc/ri/Quarry/Stub/Delegator/cdesc-Delegator.yaml +0 -20
- data/doc/ri/Quarry/Stub/Delegator/method_missing-i.yaml +0 -10
- data/doc/ri/Quarry/Stub/Delegator/new-c.yaml +0 -10
- data/doc/ri/Quarry/Stub/Setter/%3d%3d-i.yaml +0 -10
- data/doc/ri/Quarry/Stub/Setter/cdesc-Setter.yaml +0 -18
- data/doc/ri/Quarry/Stub/Setter/new-c.yaml +0 -10
- data/doc/ri/Quarry/Stub/__table__-i.yaml +0 -11
- data/doc/ri/Quarry/Stub/cdesc-Stub.yaml +0 -23
- data/doc/ri/Quarry/Stub/method_missing-i.yaml +0 -11
- data/doc/ri/Quarry/Stub/new-c.yaml +0 -10
- data/doc/ri/Quarry/cdesc-Quarry.yaml +0 -16
- data/doc/ri/created.rid +0 -1
- data/doc/spec/stub.html +0 -394
- data/lib/quarry/assert.rb +0 -198
- data/lib/quarry/break.rb +0 -51
- data/lib/quarry/spec/document.rb +0 -130
- data/lib/quarry/spec/markup.rb +0 -85
- data/lib/quarry/spec/reporter/dotprogress.rb +0 -66
- data/lib/quarry/spec/reporter/summary.rb +0 -74
- data/lib/quarry/spec/reporter/verbatim.rb +0 -87
- data/lib/quarry/spec/reporter.rb +0 -74
- data/lib/quarry/spec/runner.rb +0 -127
- data/lib/quarry/spec/template.rhtml +0 -116
- data/lib/quarry/spec.rb +0 -7
- data/lib/quarry/stub/spec.txt +0 -113
- data/work/consider/document.rb +0 -35
- data/work/consider/fixture.rb +0 -153
- data/work/deprecated/assert/must.rb +0 -9
- data/work/deprecated/assert/should.rb +0 -9
- data/work/deprecated/build.rb +0 -82
- data/work/deprecated/mock/file.rb +0 -11
- data/work/deprecated/mock/mock.0.rb +0 -77
- data/work/deprecated/overlay.rb +0 -64
- data/work/deprecated/spec.rb +0 -195
- data/work/deprecated/stub/stub.0.rb +0 -180
- data/work/deprecated/stub/stub.1.rb +0 -114
- data/work/deprecated/stub/test_stub.rb +0 -66
- data/work/deprecated/test/case.rb +0 -141
- data/work/sandbox/assert.rb +0 -100
- data/work/sandbox/bug.rb +0 -49
- data/work/sandbox/build/announce.rb +0 -213
- data/work/sandbox/build/check.rb +0 -109
- data/work/sandbox/build/gem.rb +0 -235
- data/work/sandbox/build/make.rb +0 -118
- data/work/sandbox/build/manpage.rb +0 -201
- data/work/sandbox/build/notes.rb +0 -214
- data/work/sandbox/build/pack.rb +0 -228
- data/work/sandbox/build/rdoc.rb +0 -289
- data/work/sandbox/build/rubyforge.rb +0 -91
- data/work/sandbox/build/sign.rb +0 -241
- data/work/sandbox/build/stamp.rb +0 -37
- data/work/sandbox/build/stats.rb +0 -154
- data/work/sandbox/build/svn.rb +0 -193
- data/work/sandbox/build/test.rb +0 -521
- data/work/sandbox/design.rb +0 -200
- data/work/sandbox/iface_scanner.rb +0 -102
- data/work/sandbox/testunit/assertions/assert_has_keys.rb +0 -38
- data/work/sandbox/testunit/assertions/assert_has_only_keys.rb +0 -38
- data/work/sandbox/testunit/unit.rb +0 -104
- data/work/sandbox/unitspec.rb +0 -54
- data/work/sandbox/x_isotest.rb +0 -532
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
require 'quarry/stub'
|
|
2
|
-
require 'test/unit'
|
|
3
|
-
|
|
4
|
-
class TC_Stub < Test::Unit::TestCase
|
|
5
|
-
|
|
6
|
-
class S < Quarry::Stub
|
|
7
|
-
stat :m, 10
|
|
8
|
-
echo :e
|
|
9
|
-
spin :s, [1,2,3]
|
|
10
|
-
keys :i, { [:foo] => 'Hello', [:boo] => 'Frog' }
|
|
11
|
-
|
|
12
|
-
def a(k) k+1 end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def setup
|
|
16
|
-
@s = S.new
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def test_stat
|
|
20
|
-
assert_equal(10, @s.m)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_echo
|
|
24
|
-
assert_equal([:hi], @s.e(:hi))
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def test_spin
|
|
28
|
-
assert_equal(1, @s.s)
|
|
29
|
-
assert_equal(2, @s.s)
|
|
30
|
-
assert_equal(3, @s.s)
|
|
31
|
-
assert_equal(1, @s.s)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def test_keys
|
|
35
|
-
assert_equal('Hello', @s.i(:foo))
|
|
36
|
-
assert_equal('Frog', @s.i(:boo))
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def assert_normal_method
|
|
40
|
-
assert_equal(2, @s.a(1))
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
class TC_Stub_Wrapper < Test::Unit::TestCase
|
|
45
|
-
|
|
46
|
-
class X
|
|
47
|
-
def a; "a"; end
|
|
48
|
-
def b; "b"; end
|
|
49
|
-
def c; "c"; end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
class XS < Quarry::Stub(X)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def setup
|
|
56
|
-
@xs = XS.new
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def test_responds
|
|
60
|
-
assert_equal(nil, @xs.a)
|
|
61
|
-
assert_equal(nil, @xs.b)
|
|
62
|
-
assert_equal(nil, @xs.c)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
|
66
|
-
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
#require 'facet/kernel/within?'
|
|
2
|
-
require 'quarry/assert'
|
|
3
|
-
|
|
4
|
-
at_exit { Quarry::Test.autotest unless $no_autotest }
|
|
5
|
-
|
|
6
|
-
module Quarry
|
|
7
|
-
module Test
|
|
8
|
-
|
|
9
|
-
# TODO: make output compatible with unit_diff ?
|
|
10
|
-
|
|
11
|
-
def self.autotest
|
|
12
|
-
::ObjectSpace.each_object(Suite) do |suite|
|
|
13
|
-
puts "Running test suite #{suite.description.upcase}:"
|
|
14
|
-
suite.cases.each do |kase|
|
|
15
|
-
puts "== #{kase.description.upcase}\n"
|
|
16
|
-
kase.units.each_with_index do |test, i|
|
|
17
|
-
kase.setup
|
|
18
|
-
begin
|
|
19
|
-
test.call
|
|
20
|
-
|
|
21
|
-
rescue Assertion => e
|
|
22
|
-
print "#{i+1}) #{test.description}"
|
|
23
|
-
print "\a FAIL! "
|
|
24
|
-
puts "[" + e.backtrace[2] + "]"
|
|
25
|
-
puts "#{e}\n" if $VERBOSE
|
|
26
|
-
|
|
27
|
-
rescue Exception => e
|
|
28
|
-
print "#{i+1}) #{test.description}"
|
|
29
|
-
print "\a ERROR! "
|
|
30
|
-
puts "[" + e.backtrace[2] + "]"
|
|
31
|
-
puts "#{e}\n" if $VERBOSE
|
|
32
|
-
#puts "#{klass}.#{meth}: #{e}"
|
|
33
|
-
ensure
|
|
34
|
-
kase.teardown
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
#
|
|
42
|
-
|
|
43
|
-
def self.suites
|
|
44
|
-
@suites ||= []
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def self.suite(description, &testsuite)
|
|
48
|
-
suites << Suite.new(description, &testsuite)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# A test suite.
|
|
52
|
-
|
|
53
|
-
class Suite
|
|
54
|
-
attr :description
|
|
55
|
-
|
|
56
|
-
def initialize(description, &testsuite)
|
|
57
|
-
@description = description
|
|
58
|
-
@testsuite = testsuite
|
|
59
|
-
@testcases = []
|
|
60
|
-
|
|
61
|
-
instance_eval(&testsuite)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def cases
|
|
65
|
-
@testcases ||= []
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def test_case(description, &testcase)
|
|
69
|
-
cases << Case.new(description, &testcase)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# A test case.
|
|
74
|
-
|
|
75
|
-
class Case
|
|
76
|
-
attr :description
|
|
77
|
-
|
|
78
|
-
def initialize(description, &testcase)
|
|
79
|
-
@description = description
|
|
80
|
-
@testcase = testcase
|
|
81
|
-
@testunits = []
|
|
82
|
-
instance_eval(&testcase)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def units
|
|
86
|
-
@testunits ||= []
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def setup; end
|
|
90
|
-
|
|
91
|
-
def teardown; end
|
|
92
|
-
|
|
93
|
-
def test(description, &testunit)
|
|
94
|
-
units << Unit.new(description, &testunit)
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
# A test unit.
|
|
99
|
-
|
|
100
|
-
class Unit
|
|
101
|
-
attr :description
|
|
102
|
-
|
|
103
|
-
def initialize(description, &testunit)
|
|
104
|
-
@description = description
|
|
105
|
-
@testunit = testunit
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def call
|
|
109
|
-
@testunit.call
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
# EXAMPLE
|
|
118
|
-
|
|
119
|
-
if __FILE__ == $0
|
|
120
|
-
|
|
121
|
-
Quarry::Test.suite "example suite" do
|
|
122
|
-
|
|
123
|
-
test_case "example case" do
|
|
124
|
-
|
|
125
|
-
test "4 should equal 3" do
|
|
126
|
-
4.assert == 3
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
test "4 should not equal 4" do
|
|
130
|
-
4.assert_not == 4
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
test "raises syntax error" do
|
|
134
|
-
lambda{raise SyntaxError}.should.raise? SyntaxError
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
end
|
data/work/sandbox/assert.rb
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
class Object
|
|
2
|
-
# Asserts a operational relationship.
|
|
3
|
-
#
|
|
4
|
-
# 4.assert == 3 #=> Assertion Error
|
|
5
|
-
#
|
|
6
|
-
def assert
|
|
7
|
-
return Assert.new(self, true)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
# Refutes an operational relationship.
|
|
11
|
-
#
|
|
12
|
-
# 4.assert! == 4 #=> Assertion Error
|
|
13
|
-
#
|
|
14
|
-
def assert!
|
|
15
|
-
return Assert.new(self, false)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# = Assertion
|
|
20
|
-
#
|
|
21
|
-
# Assertion is a special subclass of Exception.
|
|
22
|
-
# An Assertion error is raised when an assertion fails.
|
|
23
|
-
#
|
|
24
|
-
class Assertion < Exception
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# = Assert
|
|
28
|
-
#
|
|
29
|
-
# The Assert class is an Assertion functor. It delegates
|
|
30
|
-
# to the underlying object to test if assertions applied
|
|
31
|
-
# to it are successful or not. When they fail it raises
|
|
32
|
-
# and Assertion error.
|
|
33
|
-
#
|
|
34
|
-
class Assert
|
|
35
|
-
|
|
36
|
-
hide = instance_methods.reject { |m| m.to_s =~ /^__/ }
|
|
37
|
-
hide.each { |m| protected m }
|
|
38
|
-
|
|
39
|
-
private
|
|
40
|
-
|
|
41
|
-
#
|
|
42
|
-
def initialize(delegate, predicate)
|
|
43
|
-
@delegate = delegate
|
|
44
|
-
@predicate = predicate
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
#
|
|
48
|
-
def method_missing(sym, *a, &b)
|
|
49
|
-
case sym
|
|
50
|
-
when :raise?, :raises?
|
|
51
|
-
begin
|
|
52
|
-
@delegate.call #yield
|
|
53
|
-
assert false, "Expected #{a[0]} to be raised"
|
|
54
|
-
rescue Exception => e
|
|
55
|
-
assert a[0] === e, "Expected #{a[0]} to be raised, but got #{e.class}"
|
|
56
|
-
return e
|
|
57
|
-
end
|
|
58
|
-
else
|
|
59
|
-
assert(@delegate.__send__(sym, *a, &b), message(@delegate, sym, *a, &b))
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
#
|
|
64
|
-
def assert(assertion, msg="failed assertion (no message given)")
|
|
65
|
-
if @predicate
|
|
66
|
-
raise Assertion, msg unless assertion
|
|
67
|
-
else
|
|
68
|
-
raise Assertion, msg if assertion
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
#
|
|
73
|
-
def message(obj, sym, *a, &b)
|
|
74
|
-
#self.class.message(sym)[@delegate, *a] )
|
|
75
|
-
if @predicate
|
|
76
|
-
"#{obj.inspect} #{sym} #{a.collect{|x| x.inspect}.join(',')}"
|
|
77
|
-
else
|
|
78
|
-
"NOT #{obj.inspect} #{sym} #{a.collect{|x| x.inspect}.join(',')}"
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# TODO: Ultimately better messages would be nice.
|
|
83
|
-
|
|
84
|
-
#
|
|
85
|
-
#def self.message(msg,&block)
|
|
86
|
-
# @messages ||= {}
|
|
87
|
-
# if block
|
|
88
|
-
# @messages[msg] = block
|
|
89
|
-
# else
|
|
90
|
-
# @messages[msg]
|
|
91
|
-
# end
|
|
92
|
-
#end
|
|
93
|
-
|
|
94
|
-
#
|
|
95
|
-
#message(:==){ |*a| "Expected #{a[0].inspect} to be equal to #{a[1].inspect}" }
|
|
96
|
-
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
# Copyright (c) 2008 Tiger Ops
|
|
100
|
-
|
data/work/sandbox/bug.rb
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# Raise a bug.
|
|
2
|
-
|
|
3
|
-
module Quarry
|
|
4
|
-
class Bug < Exception; end
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
module Kernel
|
|
8
|
-
|
|
9
|
-
# Raises a ScritBug error with a message.
|
|
10
|
-
#
|
|
11
|
-
# if find_bug then
|
|
12
|
-
# bug! "unknown bug found"
|
|
13
|
-
# end
|
|
14
|
-
#
|
|
15
|
-
#--
|
|
16
|
-
# Credit goes to Minero Aoki. Cute! :-)
|
|
17
|
-
#++
|
|
18
|
-
def bug!(message='Report this bug!')
|
|
19
|
-
raise Quarry::Bug, "\n[BUG] " + message
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# _____ _
|
|
26
|
-
# |_ _|__ ___| |_
|
|
27
|
-
# | |/ _ \/ __| __|
|
|
28
|
-
# | | __/\__ \ |_
|
|
29
|
-
# |_|\___||___/\__|
|
|
30
|
-
#
|
|
31
|
-
=begin test
|
|
32
|
-
|
|
33
|
-
require 'test/unit'
|
|
34
|
-
|
|
35
|
-
class TestKernelError < Test::Unit::TestCase
|
|
36
|
-
|
|
37
|
-
def test_bug!
|
|
38
|
-
assert_raises( Bug ) { bug! }
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
# def test_demo
|
|
42
|
-
# demo(i=''){%{ a = [1,2,3] }}
|
|
43
|
-
# o = " a = [1,2,3] #=> [1, 2, 3]\n"
|
|
44
|
-
# assert_equal( o, i )
|
|
45
|
-
# end
|
|
46
|
-
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
=end
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
require 'quarry/build'
|
|
2
|
-
|
|
3
|
-
module Reap
|
|
4
|
-
|
|
5
|
-
# Make a release announcement. Generates and can email a release
|
|
6
|
-
# announcements. These are nicely formated message and can
|
|
7
|
-
# email the message to the specified address(es).
|
|
8
|
-
#
|
|
9
|
-
# The following settings apply:
|
|
10
|
-
#
|
|
11
|
-
# title Project title.
|
|
12
|
-
# subtitle Brief one-line description.
|
|
13
|
-
# version Project version.
|
|
14
|
-
# description Long description of project.
|
|
15
|
-
# homepage Project homepage web address.
|
|
16
|
-
# slogan Motto for you project.
|
|
17
|
-
# memo File that contains announcement message.
|
|
18
|
-
# template Custom announcement template file.
|
|
19
|
-
# mail_to Email address(es) to send announcemnt.
|
|
20
|
-
#
|
|
21
|
-
# If <em>mail_to</em> is set then these also apply:
|
|
22
|
-
#
|
|
23
|
-
# from Message FROM address [email].
|
|
24
|
-
# subject Subject of email message ([ANN] title verison).
|
|
25
|
-
# server Email server to route message.
|
|
26
|
-
# port Email server's port.
|
|
27
|
-
# domain Email server's domain name.
|
|
28
|
-
# account Email account name [email].
|
|
29
|
-
# login Login type: plain, cram_md5 or login.
|
|
30
|
-
# secure Uses TLS security, true or false?
|
|
31
|
-
#
|
|
32
|
-
# A template file can be specified that uses "$setting" as
|
|
33
|
-
# substitutes for poject information.
|
|
34
|
-
|
|
35
|
-
class Announcement < Build
|
|
36
|
-
|
|
37
|
-
# Default layout of release announcement.
|
|
38
|
-
|
|
39
|
-
DEFAULT_TEMPLATE = <<-END
|
|
40
|
-
$title $version
|
|
41
|
-
$subtitle
|
|
42
|
-
$homepage
|
|
43
|
-
|
|
44
|
-
$summary $description
|
|
45
|
-
|
|
46
|
-
$memo
|
|
47
|
-
|
|
48
|
-
$slogan
|
|
49
|
-
END
|
|
50
|
-
|
|
51
|
-
# Name of project (ie. unix name).
|
|
52
|
-
attr_accessor :project
|
|
53
|
-
|
|
54
|
-
# Title of project.
|
|
55
|
-
attr_accessor :title
|
|
56
|
-
|
|
57
|
-
# Subtitle of project.
|
|
58
|
-
attr_accessor :subtitle
|
|
59
|
-
|
|
60
|
-
# Version number of project release.
|
|
61
|
-
attr_accessor :version
|
|
62
|
-
|
|
63
|
-
# Description of project.
|
|
64
|
-
attr_accessor :description
|
|
65
|
-
|
|
66
|
-
# Project's homepage.
|
|
67
|
-
attr_accessor :homepage
|
|
68
|
-
|
|
69
|
-
# URL to download.
|
|
70
|
-
attr_accessor :download
|
|
71
|
-
|
|
72
|
-
# Project slogan.
|
|
73
|
-
attr_accessor :slogan
|
|
74
|
-
|
|
75
|
-
# To email address(es). If this is not set then
|
|
76
|
-
# the announcement is not emailed and instead
|
|
77
|
-
# is only sent to stdout.
|
|
78
|
-
attr_accessor :mail_to
|
|
79
|
-
|
|
80
|
-
# From email address.
|
|
81
|
-
attr_accessor :mail_from
|
|
82
|
-
|
|
83
|
-
# Memo (personalized message for this release)
|
|
84
|
-
attr_accessor :memo
|
|
85
|
-
|
|
86
|
-
# User defined announcement template.
|
|
87
|
-
attr_accessor :template
|
|
88
|
-
|
|
89
|
-
# Subject line (default is "ANN: project version").
|
|
90
|
-
attr_accessor :subject
|
|
91
|
-
|
|
92
|
-
# Email server
|
|
93
|
-
attr_accessor :server
|
|
94
|
-
|
|
95
|
-
# Emails server port (default is usually correct).
|
|
96
|
-
attr_accessor :port
|
|
97
|
-
|
|
98
|
-
# Email account name (defaults to mail_from).
|
|
99
|
-
attr_accessor :account
|
|
100
|
-
|
|
101
|
-
# User domain (not sure why SMTP requires this?)
|
|
102
|
-
attr_accessor :domain
|
|
103
|
-
|
|
104
|
-
# Login type (plain, login)
|
|
105
|
-
attr_accessor :login_type
|
|
106
|
-
|
|
107
|
-
# Use TLS/SSL true or false?
|
|
108
|
-
attr_accessor :secure
|
|
109
|
-
|
|
110
|
-
# Password (deafults to ENV['PASSWORD']
|
|
111
|
-
attr_accessor :password
|
|
112
|
-
|
|
113
|
-
#
|
|
114
|
-
|
|
115
|
-
def subject
|
|
116
|
-
@subject ||= "ANN: #{title}, v#{version}"
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
#
|
|
120
|
-
|
|
121
|
-
def account
|
|
122
|
-
@account ||= @mail_from
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
#config['mail_to'] = nil if keys['mail_to'].empty?
|
|
126
|
-
|
|
127
|
-
# Validate settings.
|
|
128
|
-
|
|
129
|
-
def validate
|
|
130
|
-
raise ArgumentError, "missing title" unless title
|
|
131
|
-
raise ArgumentError, "missing version" unless version
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
# Announcement message.
|
|
135
|
-
|
|
136
|
-
def message
|
|
137
|
-
# Announce template
|
|
138
|
-
unless template
|
|
139
|
-
files = Dir.glob("{ANN,doc/[aA]nn,doc/ANN}{,.txt}")
|
|
140
|
-
template = files.first
|
|
141
|
-
end
|
|
142
|
-
template = File.read(template) if template
|
|
143
|
-
template = template || DEFAULT_TEMPLATE
|
|
144
|
-
|
|
145
|
-
# Announce Memo
|
|
146
|
-
unless memo
|
|
147
|
-
files = Dir.glob("{MEMO,doc/[mM]emo,doc/MEMO}{,.txt}")
|
|
148
|
-
memo = files.first
|
|
149
|
-
end
|
|
150
|
-
memo = File.read(memo).fold(true) if memo
|
|
151
|
-
|
|
152
|
-
# Strip tiny version zero.
|
|
153
|
-
#if keys['version'] =~ /[.].*?[.]/
|
|
154
|
-
# keys['version'] = keys['version'].chomp('.0')
|
|
155
|
-
#end
|
|
156
|
-
|
|
157
|
-
# Make announcement message
|
|
158
|
-
message = template.dup
|
|
159
|
-
|
|
160
|
-
message.gsub!('$memo',memo) if memo # insert memo
|
|
161
|
-
#message.gsub!('$stamp',stamp.to_s) # insert stamp
|
|
162
|
-
|
|
163
|
-
template.scan(/[$].*?\s/m) do |key|
|
|
164
|
-
key = key.strip
|
|
165
|
-
name = key[1..-1]
|
|
166
|
-
value = info.send(name)
|
|
167
|
-
message.gsub!(key, value.to_s.strip)
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
message.gsub!(/(^|[ ])[$].*?(?=[ ]|$)/,'') # remove unused vars
|
|
171
|
-
message.gsub!("\n\n\n","\n") # remove any triple blank lines
|
|
172
|
-
message.rstrip!
|
|
173
|
-
|
|
174
|
-
#message = release_announcement(config)
|
|
175
|
-
|
|
176
|
-
message
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
#
|
|
180
|
-
|
|
181
|
-
def email_message
|
|
182
|
-
email(message, email_options)
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
#
|
|
186
|
-
|
|
187
|
-
def email_options
|
|
188
|
-
{ :to => mail_to,
|
|
189
|
-
:from => mail_from,
|
|
190
|
-
:subject => subject,
|
|
191
|
-
:server => server,
|
|
192
|
-
:port => port,
|
|
193
|
-
:domain => domain,
|
|
194
|
-
:account => account,
|
|
195
|
-
:login => login,
|
|
196
|
-
:secure => secure
|
|
197
|
-
}
|
|
198
|
-
end
|
|
199
|
-
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
end
|
|
203
|
-
|
|
204
|
-
# keys = {}
|
|
205
|
-
# keys['from'] = info.email
|
|
206
|
-
# keys.update info.gather('mail')
|
|
207
|
-
# keys.update info.gather('announce')
|
|
208
|
-
# keys.update info.select(
|
|
209
|
-
# :project, :version, :title, :subtitle, :description,
|
|
210
|
-
# :homepage, :download, :slogan
|
|
211
|
-
# )
|
|
212
|
-
# keys.update override if override
|
|
213
|
-
|
data/work/sandbox/build/check.rb
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
require 'quarry/build'
|
|
2
|
-
|
|
3
|
-
module Quarry
|
|
4
|
-
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
class Check < Build
|
|
8
|
-
|
|
9
|
-
DEFAULT_LOADPATH = ['lib']
|
|
10
|
-
|
|
11
|
-
# List of file path(s) of project scripts to check.
|
|
12
|
-
|
|
13
|
-
attr_accessor :loadpath
|
|
14
|
-
attr_accessor :exclude
|
|
15
|
-
|
|
16
|
-
alias_method :include, :loadpath
|
|
17
|
-
alias_method :include=, :loadpath=
|
|
18
|
-
|
|
19
|
-
# Veridy syntax of ruby scripts.
|
|
20
|
-
#
|
|
21
|
-
# This takes one option +:scripts+ which is a glob or list of globs
|
|
22
|
-
# of the scripts to check. By default this is all scripts in the libpath(s).
|
|
23
|
-
|
|
24
|
-
def syntax(options=nil)
|
|
25
|
-
options ||= {}
|
|
26
|
-
|
|
27
|
-
glob = options[:include] || options[:loadpath] || loadpath || DEFAULT_LOADPATH
|
|
28
|
-
excl = options[:exclude] || exclude || []
|
|
29
|
-
|
|
30
|
-
if String===glob
|
|
31
|
-
glob = glob.split(/[:;]/)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
files = multiglob_r(*glob) - multiglob_r(*excl)
|
|
35
|
-
max = files.collect{ |f| f.size }.max
|
|
36
|
-
errs = []
|
|
37
|
-
cnt = 0
|
|
38
|
-
|
|
39
|
-
files.each do |s|
|
|
40
|
-
next unless File.file?(s)
|
|
41
|
-
#if not system "ruby -c -Ibin:lib:test #{s} &> /dev/null" then
|
|
42
|
-
r = system "ruby -c -I#{libpath} #{s} > /dev/null"
|
|
43
|
-
if r
|
|
44
|
-
puts("%-#{max}s [PASS]" % [s]) #if verbose?
|
|
45
|
-
else
|
|
46
|
-
puts("%-#{max}s [FAIL]" % [s]) #if verbose?
|
|
47
|
-
errs << s #:syntax
|
|
48
|
-
cnt += 1
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
if cnt == 0
|
|
53
|
-
puts "Syntax checks out."
|
|
54
|
-
else
|
|
55
|
-
puts "#{cnt} Syntax Failures:\n "
|
|
56
|
-
puts errs.join("\n ")
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
# Load each script independently to ensure there are no
|
|
61
|
-
# require dependency issues.
|
|
62
|
-
#
|
|
63
|
-
# WARNING! Only do this on scripts that have no toplevel side-effects!
|
|
64
|
-
#
|
|
65
|
-
# This takes one option +:scripts+ which is a glob or list of globs
|
|
66
|
-
# of the scripts to check. By default this is all scripts in the libpath(s).
|
|
67
|
-
#
|
|
68
|
-
# FIXME: This isn;t routing output to dev/null as expected.
|
|
69
|
-
|
|
70
|
-
def dependencies(options=nil)
|
|
71
|
-
options ||= {}
|
|
72
|
-
|
|
73
|
-
options ||= {}
|
|
74
|
-
|
|
75
|
-
glob = options[:include] || options[:loadpath] || loadpath || DEFAULT_LOADPATH
|
|
76
|
-
excl = options[:exclude] || exclude || []
|
|
77
|
-
|
|
78
|
-
if String===glob
|
|
79
|
-
glob = glob.split(/[:;]/)
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
files = multiglob_r(*glob) - multiglob_r(*excl)
|
|
83
|
-
max = files.collect{ |f| f.size }.max
|
|
84
|
-
errs = []
|
|
85
|
-
cnt = 0
|
|
86
|
-
|
|
87
|
-
files.each do |s|
|
|
88
|
-
next unless File.file?(s)
|
|
89
|
-
#if not system "ruby -c -Ibin:lib:test #{s} &> /dev/null" then
|
|
90
|
-
if r = system("ruby -I#{libpath} #{s} > /dev/null")
|
|
91
|
-
puts "%-#{max}s [PASS]" % [s] #if verbose?
|
|
92
|
-
else
|
|
93
|
-
puts "%-#{max}s [FAIL]" % [s] #if verbose?
|
|
94
|
-
errs << s #:load
|
|
95
|
-
cnt += 1
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
if cnt == 0
|
|
100
|
-
puts "Load dependencies check out."
|
|
101
|
-
else
|
|
102
|
-
puts "#{cnt} Load Failures:\n "
|
|
103
|
-
puts errs.join("\n ")
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
end
|