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
data/lib/quarry/assert.rb
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
# Assertion is a special subclass of Exception used
|
|
2
|
-
# to raise assertion errors.
|
|
3
|
-
#
|
|
4
|
-
# Assertions are generally invoked via the #assert or #should
|
|
5
|
-
# functors. For instance to assert that 4 == 4 use:
|
|
6
|
-
#
|
|
7
|
-
# 4.assert == 4
|
|
8
|
-
#
|
|
9
|
-
# If the assertion does not hold true an Assertion exception
|
|
10
|
-
# will be raised.
|
|
11
|
-
#
|
|
12
|
-
# You can also create your own assertion "macros" simply by
|
|
13
|
-
# defining applicable methods resuing previous assertion methods.
|
|
14
|
-
#
|
|
15
|
-
# class Module
|
|
16
|
-
# def should_be_enumerable(module)
|
|
17
|
-
# should < Enumerable
|
|
18
|
-
# instance_methods.should.include?('each')
|
|
19
|
-
# end
|
|
20
|
-
# end
|
|
21
|
-
#
|
|
22
|
-
# As fancy as assertion functors may seem, under the hood they
|
|
23
|
-
# translate into quite simple code. Consider this valid macro:
|
|
24
|
-
#
|
|
25
|
-
# def assert_fail_every_time
|
|
26
|
-
# raise Assertion, "this will fail every time"
|
|
27
|
-
# end
|
|
28
|
-
#
|
|
29
|
-
# Not very useful, but completely valid.
|
|
30
|
-
#
|
|
31
|
-
# == Concerning Nomenclature
|
|
32
|
-
#
|
|
33
|
-
# Unfortunately there's a bit of rift in the naming scheme of
|
|
34
|
-
# assertion methods. With TDD the term 'assert' became the
|
|
35
|
-
# standard. However, with the advent of BDD, 'should' has
|
|
36
|
-
# become the dominant term.
|
|
37
|
-
#
|
|
38
|
-
# If I had my druthers I would probably have picked 'must'
|
|
39
|
-
# since it is short and carries the semantics of enforcement.
|
|
40
|
-
#
|
|
41
|
-
class Assertion < Exception
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# = Assertion::True
|
|
45
|
-
#
|
|
46
|
-
class Assertion::True
|
|
47
|
-
|
|
48
|
-
hide = instance_methods.reject { |m| m.to_s =~ /^__/ }
|
|
49
|
-
hide.each { |m| protected m }
|
|
50
|
-
|
|
51
|
-
private
|
|
52
|
-
|
|
53
|
-
#
|
|
54
|
-
def initialize(delegate)
|
|
55
|
-
@delegate = delegate
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
# TODO: Not sure about the raises here.
|
|
59
|
-
def method_missing(sym, *a, &b)
|
|
60
|
-
#case sym
|
|
61
|
-
#when :raise?, :raises?
|
|
62
|
-
# begin
|
|
63
|
-
# @delegate.call #yield
|
|
64
|
-
# assert false, "Expected #{a[0]} to be raised"
|
|
65
|
-
# rescue Exception => e
|
|
66
|
-
# assert a[0] === e, "Expected #{a[0]} to be raised, but got #{e.class}"
|
|
67
|
-
# return e
|
|
68
|
-
# end
|
|
69
|
-
#else
|
|
70
|
-
assert(@delegate.__send__(sym, *a, &b), message(@delegate, sym, *a, &b))
|
|
71
|
-
#end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
#
|
|
75
|
-
def assert(assertion, msg="failed assertion (no message given)")
|
|
76
|
-
raise Assertion, msg unless assertion
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
#
|
|
80
|
-
def message(obj, sym, *a, &b)
|
|
81
|
-
#self.class.message(sym)[@delegate, *a] )
|
|
82
|
-
"#{obj.inspect} #{sym} #{a.collect{|x| x.inspect}.join(',')}"
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
# TODO: Ultimately better messages would be nice.
|
|
86
|
-
|
|
87
|
-
#
|
|
88
|
-
def self.message(op,&block)
|
|
89
|
-
@message ||= {}
|
|
90
|
-
block ? @message[op.to_sym] = block : @message[op.to_sym]
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
#
|
|
94
|
-
message(:==){ |*a| "Expected #{a[0].inspect} to be equal to #{a[1].inspect}" }
|
|
95
|
-
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
# = Assertion::False
|
|
99
|
-
#
|
|
100
|
-
class Assertion::False < Assertion::True
|
|
101
|
-
message(:==){ |*a| "Expected #{a[0].inspect} not to be equal to #{a[1].inspect}" }
|
|
102
|
-
|
|
103
|
-
def assert(assertion, msg="failed assertion (no message given)")
|
|
104
|
-
raise Assertion, msg if assertion
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def message( obj, sym, *a, &b )
|
|
108
|
-
#self.class.message(sym)[@delegate, *a] )
|
|
109
|
-
"NOT #{obj.inspect} #{sym} #{a.collect{|x| x.inspect}.join(',')}"
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
class Object
|
|
115
|
-
# Assert a operational relationship.
|
|
116
|
-
#
|
|
117
|
-
# 4.assert == 3 #=> Assertion Error
|
|
118
|
-
#
|
|
119
|
-
def assert
|
|
120
|
-
return Assertion::True.new(self)
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
# The term 'should' has basically become the defacto
|
|
124
|
-
# standard for BDD assertions, so Quarry will support
|
|
125
|
-
# this nomenclature as well.
|
|
126
|
-
#
|
|
127
|
-
# AUTHOR'S NOTE: Left to my own choosing, I likely
|
|
128
|
-
# would have picked #must, myself, since it is shorter
|
|
129
|
-
# and more convincing. ;)
|
|
130
|
-
#
|
|
131
|
-
alias_method :should, :assert
|
|
132
|
-
|
|
133
|
-
# Assert not an operational relationship.
|
|
134
|
-
# Read it as "assert not".
|
|
135
|
-
#
|
|
136
|
-
# 4.assert! == 4 #=> Assertion Error
|
|
137
|
-
#
|
|
138
|
-
# AUHTOR'S NOTE: This method would not be necessary
|
|
139
|
-
# if Ruby would allow +!=+ to be define as a method,
|
|
140
|
-
# or at least +!+ as a unary method.
|
|
141
|
-
#
|
|
142
|
-
def assert!
|
|
143
|
-
return Assertion::False.new(self)
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
# Same as #assert!.
|
|
147
|
-
#
|
|
148
|
-
# 4.refute == 4 #=> Assertion Error
|
|
149
|
-
#
|
|
150
|
-
alias_method :refute, :assert!
|
|
151
|
-
|
|
152
|
-
# See the note on #should.
|
|
153
|
-
#
|
|
154
|
-
alias_method :should_not, :refute
|
|
155
|
-
|
|
156
|
-
# Provides a way to assert that a procedure
|
|
157
|
-
# raises an exception.
|
|
158
|
-
#
|
|
159
|
-
# assert_raises(StandardError){ raise }
|
|
160
|
-
#
|
|
161
|
-
def assert_raises(exception, &block)
|
|
162
|
-
Assertion::True.new(
|
|
163
|
-
lambda do |*a|
|
|
164
|
-
begin
|
|
165
|
-
block.call(*a)
|
|
166
|
-
false
|
|
167
|
-
rescue exception
|
|
168
|
-
true
|
|
169
|
-
end
|
|
170
|
-
end
|
|
171
|
-
)
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
alias_method :should_raise, :assert_raises
|
|
175
|
-
|
|
176
|
-
# Provides a way to assert that a procedure
|
|
177
|
-
# does not raise an exception.
|
|
178
|
-
#
|
|
179
|
-
# refute_raises(StandardError){ raise }
|
|
180
|
-
#
|
|
181
|
-
def refute_raises(exception, &block)
|
|
182
|
-
Assertion::True.new(
|
|
183
|
-
begin
|
|
184
|
-
block.call(*a)
|
|
185
|
-
true
|
|
186
|
-
rescue exception
|
|
187
|
-
false
|
|
188
|
-
end
|
|
189
|
-
)
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
alias_method :assert_raises!, :refute_raises
|
|
193
|
-
|
|
194
|
-
alias_method :should_not_raise, :refute_raises
|
|
195
|
-
end
|
|
196
|
-
|
|
197
|
-
# Copyright (c) 2008 Tiger Ops
|
|
198
|
-
|
data/lib/quarry/break.rb
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
module Quarry
|
|
2
|
-
|
|
3
|
-
# = Exception Break and Edit
|
|
4
|
-
#
|
|
5
|
-
class Break
|
|
6
|
-
|
|
7
|
-
attr :exception
|
|
8
|
-
|
|
9
|
-
alias_method :error, :exception
|
|
10
|
-
|
|
11
|
-
#
|
|
12
|
-
def initialize(exception)
|
|
13
|
-
@exception = exception
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
#
|
|
17
|
-
def edit
|
|
18
|
-
file, line = *exception.backtrace[0].split(':')
|
|
19
|
-
line = line.to_i
|
|
20
|
-
|
|
21
|
-
puts exception
|
|
22
|
-
|
|
23
|
-
e = "# DEBUG " + exception.to_s
|
|
24
|
-
e.gsub!("`","'")
|
|
25
|
-
|
|
26
|
-
e = Regexp.escape(e)
|
|
27
|
-
|
|
28
|
-
case ed = ENV['EDITOR']
|
|
29
|
-
when 'vi', 'vim', 'gvim'
|
|
30
|
-
cmd = []
|
|
31
|
-
cmd << "#{ed} -e -s #{file} <<-EOS"
|
|
32
|
-
cmd << ":#{line}"
|
|
33
|
-
cmd << "a"
|
|
34
|
-
cmd << "#{e}"
|
|
35
|
-
cmd << "."
|
|
36
|
-
cmd << ":.,+#{e.size}"
|
|
37
|
-
cmd << "EOS"
|
|
38
|
-
cmd = cmd.join("\n")
|
|
39
|
-
when nil
|
|
40
|
-
puts "EDITOR environment variable not set"
|
|
41
|
-
else
|
|
42
|
-
puts "EDITOR environment variable not supported"
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
system cmd
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
end #class Break
|
|
49
|
-
|
|
50
|
-
end #module Quarry
|
|
51
|
-
|
data/lib/quarry/spec/document.rb
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
require 'erb'
|
|
2
|
-
require 'fileutils'
|
|
3
|
-
|
|
4
|
-
module Quarry
|
|
5
|
-
|
|
6
|
-
module Spec
|
|
7
|
-
|
|
8
|
-
# = Document
|
|
9
|
-
#
|
|
10
|
-
# TODO: css and javascripts have fixed location
|
|
11
|
-
# - need to make more flexible.
|
|
12
|
-
class Document
|
|
13
|
-
|
|
14
|
-
DEFAULT_TITLE = "Specifictions"
|
|
15
|
-
DEFAULT_CSS = "../assets/styles/spec.css"
|
|
16
|
-
DEFAULT_FILE = "doc/spec/index.html"
|
|
17
|
-
DEFAULT_PATH = ["spec/**/*"]
|
|
18
|
-
|
|
19
|
-
attr_accessor :title
|
|
20
|
-
attr_accessor :css
|
|
21
|
-
attr_accessor :paths
|
|
22
|
-
attr_accessor :dryrun
|
|
23
|
-
attr_accessor :quiet
|
|
24
|
-
|
|
25
|
-
# Ouput file.
|
|
26
|
-
attr_accessor :output
|
|
27
|
-
|
|
28
|
-
# New Spec Document object.
|
|
29
|
-
def initialize(options)
|
|
30
|
-
options.each do |k,v|
|
|
31
|
-
__send__("#{k}=", v)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
@title ||= DEFAULT_TITLE
|
|
35
|
-
@css ||= DEFAULT_CSS
|
|
36
|
-
@output ||= DEFAULT_FILE
|
|
37
|
-
@paths ||= []
|
|
38
|
-
|
|
39
|
-
@paths = DEFAULT_PATH if @paths.empty?
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
# Supress output.
|
|
43
|
-
def quiet? ; @quiet ; end
|
|
44
|
-
|
|
45
|
-
# Generate specification document.
|
|
46
|
-
def generate
|
|
47
|
-
files = []
|
|
48
|
-
paths.each do |path|
|
|
49
|
-
files.concat(Dir.glob(path).select{ |f| File.file?(f) })
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
text = ''
|
|
53
|
-
files.each do |file|
|
|
54
|
-
puts file unless quiet?
|
|
55
|
-
case ext = File.extname(file)
|
|
56
|
-
when '.rd', '.rdoc'
|
|
57
|
-
require_rdoc
|
|
58
|
-
markup = SM::SimpleMarkup.new
|
|
59
|
-
formatter = SM::ToHtml.new
|
|
60
|
-
text << markup.convert(File.read(file), formatter)
|
|
61
|
-
when '.md', '.markdown'
|
|
62
|
-
# TODO
|
|
63
|
-
end
|
|
64
|
-
text << "\n"
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
temp = Template.new(template, text, title, css)
|
|
68
|
-
html = temp.parse_template
|
|
69
|
-
|
|
70
|
-
save(html)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
# Load specification HTML template.
|
|
74
|
-
def template
|
|
75
|
-
@template ||= (
|
|
76
|
-
file = File.join(File.dirname(__FILE__), 'template.rhtml')
|
|
77
|
-
File.read(file)
|
|
78
|
-
)
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
# Save specification document.
|
|
82
|
-
def save(text)
|
|
83
|
-
if dryrun
|
|
84
|
-
puts "\nwrite #{output}"
|
|
85
|
-
else
|
|
86
|
-
FileUtils.mkdir_p(File.dirname(output))
|
|
87
|
-
File.open(output, 'wb') do |f|
|
|
88
|
-
f << text
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
private
|
|
94
|
-
|
|
95
|
-
#
|
|
96
|
-
def require_rdoc
|
|
97
|
-
@require_rdoc ||= (
|
|
98
|
-
require 'rdoc/markup/simple_markup'
|
|
99
|
-
require 'rdoc/markup/simple_markup/to_html'
|
|
100
|
-
true
|
|
101
|
-
)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
# = Document Template
|
|
107
|
-
#
|
|
108
|
-
class Template
|
|
109
|
-
attr :spec
|
|
110
|
-
attr :title
|
|
111
|
-
attr :css
|
|
112
|
-
|
|
113
|
-
#
|
|
114
|
-
def initialize(template, spec, title, css)
|
|
115
|
-
@template = template
|
|
116
|
-
@spec = spec
|
|
117
|
-
@title = title
|
|
118
|
-
@css = css
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
def parse_template
|
|
122
|
-
erb = ERB.new(@template)
|
|
123
|
-
erb.result(binding)
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
end
|
|
130
|
-
|
data/lib/quarry/spec/markup.rb
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
require 'quarry/spec/step'
|
|
2
|
-
|
|
3
|
-
module Quarry
|
|
4
|
-
|
|
5
|
-
module Spec
|
|
6
|
-
|
|
7
|
-
# = Specification Markup
|
|
8
|
-
#
|
|
9
|
-
class Markup #Specification
|
|
10
|
-
|
|
11
|
-
attr :file
|
|
12
|
-
attr :steps
|
|
13
|
-
|
|
14
|
-
#
|
|
15
|
-
def initialize(file)
|
|
16
|
-
@file = file
|
|
17
|
-
@steps = []
|
|
18
|
-
parse
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
#
|
|
22
|
-
def parse
|
|
23
|
-
lineno = 0
|
|
24
|
-
text = ''
|
|
25
|
-
File.open(file, 'r') do |f|
|
|
26
|
-
f.readlines.each_with_index do |line, lineno|
|
|
27
|
-
case line
|
|
28
|
-
when /^\s*$/
|
|
29
|
-
parse_section(text, lineno)
|
|
30
|
-
text = ''
|
|
31
|
-
else
|
|
32
|
-
text << line
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
-
def parse_section(text, lineno)
|
|
40
|
-
return if text.strip == ''
|
|
41
|
-
case text
|
|
42
|
-
when /\A[-=].*?$/, /[-=]\s*\Z/
|
|
43
|
-
#text << line
|
|
44
|
-
steps << Header.new(self, text, lineno)
|
|
45
|
-
when /^\s+/
|
|
46
|
-
last = steps.last
|
|
47
|
-
case last
|
|
48
|
-
when Step, Macro
|
|
49
|
-
last.code << "\n\n#{text.rstrip}"
|
|
50
|
-
when Comment
|
|
51
|
-
if last.macro?
|
|
52
|
-
steps << Macro.new(self, text, lineno, last.type)
|
|
53
|
-
else
|
|
54
|
-
steps << Step.new(self, text, lineno)
|
|
55
|
-
end
|
|
56
|
-
else
|
|
57
|
-
steps << Step.new(self, text, lineno)
|
|
58
|
-
end
|
|
59
|
-
else
|
|
60
|
-
steps << Comment.new(self, text, lineno)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
#
|
|
65
|
-
def description
|
|
66
|
-
File.basename(file)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
# Convert Markdown Specification to Spec object.
|
|
70
|
-
#def to_spec
|
|
71
|
-
# spec = Design::Spec.new(description)
|
|
72
|
-
# clauses.each do |text, code|
|
|
73
|
-
# spec.prove(text) do
|
|
74
|
-
# instance_eval(code)
|
|
75
|
-
# end
|
|
76
|
-
# end
|
|
77
|
-
# return spec
|
|
78
|
-
#end
|
|
79
|
-
|
|
80
|
-
end#class
|
|
81
|
-
|
|
82
|
-
end#module Spec
|
|
83
|
-
|
|
84
|
-
end#module Quarry
|
|
85
|
-
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
require 'quarry/spec/reporter'
|
|
2
|
-
|
|
3
|
-
module Quarry
|
|
4
|
-
|
|
5
|
-
module Spec
|
|
6
|
-
|
|
7
|
-
class Reporter
|
|
8
|
-
|
|
9
|
-
#
|
|
10
|
-
class DotProgress < Reporter
|
|
11
|
-
|
|
12
|
-
def report_intro
|
|
13
|
-
@start_time = Time.now
|
|
14
|
-
puts "Started"
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def report_step(step)
|
|
18
|
-
super
|
|
19
|
-
if step.code
|
|
20
|
-
print "."
|
|
21
|
-
#str = "(%s) %s" % [count.join('.'), str.tab(6).strip]
|
|
22
|
-
#puts "* #{step.text.tab(2).strip}"
|
|
23
|
-
#puts "\n#{step.code}\n" if $VERBOSE
|
|
24
|
-
else
|
|
25
|
-
#puts "\n#{step.text}"
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
#def report(str)
|
|
30
|
-
# count[-1] += 1 unless count.empty?
|
|
31
|
-
# str = str.chomp('.') + '.'
|
|
32
|
-
# str = count.join('.') + ' ' + str
|
|
33
|
-
# puts str.strip
|
|
34
|
-
#end
|
|
35
|
-
|
|
36
|
-
def report_summary
|
|
37
|
-
puts "\nFinished in #{Time.now - @start_time} seconds.\n\n"
|
|
38
|
-
|
|
39
|
-
@error.each do |step, exception|
|
|
40
|
-
puts ANSICode.red("***** ERROR *****")
|
|
41
|
-
puts "#{exception}"
|
|
42
|
-
puts ":#{exception.backtrace[0]}:"
|
|
43
|
-
#puts ":#{exception.backtrace[1]}:"
|
|
44
|
-
#puts exception.backtrace[1..-1] if $VERBOSE
|
|
45
|
-
puts
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
@fail.each do |step, assertion|
|
|
49
|
-
puts ANSICode.red("***** FAIL *****")
|
|
50
|
-
puts ANSICode.bold("#{assertion}")
|
|
51
|
-
puts ":#{assertion.backtrace[2]}:"
|
|
52
|
-
#puts assertion if $VERBOSE
|
|
53
|
-
puts
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
puts "%s specs, %s steps, %s failures, %s errors" % [@specs, @steps, @fail.size, @error.size] #, @pass.size ]
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
end#class DotProgress
|
|
60
|
-
|
|
61
|
-
end#class Reporter
|
|
62
|
-
|
|
63
|
-
end#moudle Spec
|
|
64
|
-
|
|
65
|
-
end#module Quarry
|
|
66
|
-
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
require 'quarry/spec/reporter'
|
|
2
|
-
|
|
3
|
-
module Quarry
|
|
4
|
-
|
|
5
|
-
module Spec #:nodoc:
|
|
6
|
-
|
|
7
|
-
class Reporter #:nodoc:
|
|
8
|
-
|
|
9
|
-
# = Summary Reporter
|
|
10
|
-
#
|
|
11
|
-
# Similar to the Verbatim reporter, but does
|
|
12
|
-
# not display test code for passing tests.
|
|
13
|
-
|
|
14
|
-
class Summary < Reporter
|
|
15
|
-
|
|
16
|
-
def report_header(step)
|
|
17
|
-
puts ANSICode.bold(step.text)
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def report_comment(step)
|
|
21
|
-
txt = step.text.tabto(2)
|
|
22
|
-
txt[0,1] = "*"
|
|
23
|
-
puts txt
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def report_macro(step)
|
|
27
|
-
txt = step.text.tabto(2)
|
|
28
|
-
txt[0,1] = "*"
|
|
29
|
-
puts txt
|
|
30
|
-
#puts
|
|
31
|
-
#puts ANSICode.magenta("#{step.code}")
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def report_pass(step)
|
|
35
|
-
#puts ANSICode.green("#{step.code}")
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def report_fail(step, assertion)
|
|
39
|
-
msg = ''
|
|
40
|
-
msg << " ##### FAIL #####\n"
|
|
41
|
-
msg << " # " + assertion.to_s
|
|
42
|
-
msg = ANSICode.magenta(msg)
|
|
43
|
-
puts msg
|
|
44
|
-
#puts
|
|
45
|
-
puts ANSICode.red("#{step.code}")
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def report_error(step, exception)
|
|
49
|
-
raise exception if $DEBUG
|
|
50
|
-
msg = ''
|
|
51
|
-
msg << " ##### ERROR #####\n"
|
|
52
|
-
msg << " # " + exception.to_s + "\n"
|
|
53
|
-
msg << " # " + exception.backtrace[0]
|
|
54
|
-
msg = ANSICode.magenta(msg)
|
|
55
|
-
puts msg
|
|
56
|
-
#puts
|
|
57
|
-
puts ANSICode.red("#{step.code}")
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
#def report(str)
|
|
61
|
-
# count[-1] += 1 unless count.empty?
|
|
62
|
-
# str = str.chomp('.') + '.'
|
|
63
|
-
# str = count.join('.') + ' ' + str
|
|
64
|
-
# puts str.strip
|
|
65
|
-
#end
|
|
66
|
-
|
|
67
|
-
end #class Summary
|
|
68
|
-
|
|
69
|
-
end #class Reporter
|
|
70
|
-
|
|
71
|
-
end #module Spec
|
|
72
|
-
|
|
73
|
-
end #module Quarry
|
|
74
|
-
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
require 'quarry/spec/reporter'
|
|
2
|
-
|
|
3
|
-
module Quarry
|
|
4
|
-
|
|
5
|
-
module Spec
|
|
6
|
-
|
|
7
|
-
class Reporter
|
|
8
|
-
|
|
9
|
-
# = Verbatim Reporter
|
|
10
|
-
#
|
|
11
|
-
class Verbatim < Reporter
|
|
12
|
-
|
|
13
|
-
#def report_step(step)
|
|
14
|
-
# super
|
|
15
|
-
# if step.code
|
|
16
|
-
# #str = "(%s) %s" % [count.join('.'), str.tab(6).strip]
|
|
17
|
-
# #puts "* #{step.text.tab(2).strip}"
|
|
18
|
-
# #puts
|
|
19
|
-
# #puts step.text
|
|
20
|
-
# #puts
|
|
21
|
-
# else
|
|
22
|
-
# #puts "#{step.text}\n" # TODO: This never happens.
|
|
23
|
-
# end
|
|
24
|
-
#end
|
|
25
|
-
|
|
26
|
-
def report_header(step)
|
|
27
|
-
puts ANSICode.bold(step.text)
|
|
28
|
-
puts
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def report_comment(step)
|
|
32
|
-
puts step.text
|
|
33
|
-
puts
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def report_macro(step)
|
|
37
|
-
#puts
|
|
38
|
-
#puts step.text
|
|
39
|
-
puts ANSICode.magenta("#{step.code}")
|
|
40
|
-
puts
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def report_pass(step)
|
|
44
|
-
puts ANSICode.green("#{step.code}")
|
|
45
|
-
puts
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def report_fail(step, assertion)
|
|
49
|
-
msg = ''
|
|
50
|
-
msg << "##### FAIL #####\n"
|
|
51
|
-
msg << assertion.to_s + "\n"
|
|
52
|
-
msg << assertion.backtrace[2]
|
|
53
|
-
msg = ANSICode.magenta(msg)
|
|
54
|
-
puts msg
|
|
55
|
-
puts
|
|
56
|
-
puts ANSICode.red("#{step.code}")
|
|
57
|
-
puts
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def report_error(step, exception)
|
|
61
|
-
raise exception if $DEBUG
|
|
62
|
-
msg = ''
|
|
63
|
-
msg << "##### ERROR #####\n"
|
|
64
|
-
msg << exception.to_s + "\n"
|
|
65
|
-
msg << exception.backtrace[0]
|
|
66
|
-
msg = ANSICode.magenta(msg)
|
|
67
|
-
puts msg
|
|
68
|
-
puts
|
|
69
|
-
puts ANSICode.red("#{step.code}")
|
|
70
|
-
puts
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
#def report(str)
|
|
74
|
-
# count[-1] += 1 unless count.empty?
|
|
75
|
-
# str = str.chomp('.') + '.'
|
|
76
|
-
# str = count.join('.') + ' ' + str
|
|
77
|
-
# puts str.strip
|
|
78
|
-
#end
|
|
79
|
-
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
end #module Quarry
|
|
87
|
-
|