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,215 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
-
<head>
|
|
8
|
-
<title>Module: Quarry::Extract</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
-
<script type="text/javascript">
|
|
13
|
-
// <![CDATA[
|
|
14
|
-
|
|
15
|
-
function popupCode( url ) {
|
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function toggleCode( id ) {
|
|
20
|
-
if ( document.getElementById )
|
|
21
|
-
elem = document.getElementById( id );
|
|
22
|
-
else if ( document.all )
|
|
23
|
-
elem = eval( "document.all." + id );
|
|
24
|
-
else
|
|
25
|
-
return false;
|
|
26
|
-
|
|
27
|
-
elemStyle = elem.style;
|
|
28
|
-
|
|
29
|
-
if ( elemStyle.display != "block" ) {
|
|
30
|
-
elemStyle.display = "block"
|
|
31
|
-
} else {
|
|
32
|
-
elemStyle.display = "none"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Make codeblocks hidden by default
|
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
-
|
|
41
|
-
// ]]>
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
</head>
|
|
45
|
-
<body>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<div id="classHeader">
|
|
50
|
-
<table class="header-table">
|
|
51
|
-
<tr class="top-aligned-row">
|
|
52
|
-
<td><strong>Module</strong></td>
|
|
53
|
-
<td class="class-name-in-header">Quarry::Extract</td>
|
|
54
|
-
</tr>
|
|
55
|
-
<tr class="top-aligned-row">
|
|
56
|
-
<td><strong>In:</strong></td>
|
|
57
|
-
<td>
|
|
58
|
-
<a href="../../files/lib/quarry/extract_rb.html">
|
|
59
|
-
lib/quarry/extract.rb
|
|
60
|
-
</a>
|
|
61
|
-
<br />
|
|
62
|
-
</td>
|
|
63
|
-
</tr>
|
|
64
|
-
|
|
65
|
-
</table>
|
|
66
|
-
</div>
|
|
67
|
-
<!-- banner header -->
|
|
68
|
-
|
|
69
|
-
<div id="bodyContent">
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
<div id="contextContent">
|
|
74
|
-
|
|
75
|
-
<div id="description">
|
|
76
|
-
<p>
|
|
77
|
-
Extractor is a tool for extracting code from embedded comment blocks.
|
|
78
|
-
</p>
|
|
79
|
-
<p>
|
|
80
|
-
TODO:
|
|
81
|
-
</p>
|
|
82
|
-
<pre>
|
|
83
|
-
- Should extract_block handle more than the first matching block?
|
|
84
|
-
- How can we handle embedded code in standard comments? Eg. #
|
|
85
|
-
</pre>
|
|
86
|
-
|
|
87
|
-
</div>
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
</div>
|
|
91
|
-
|
|
92
|
-
<div id="method-list">
|
|
93
|
-
<h3 class="section-bar">Methods</h3>
|
|
94
|
-
|
|
95
|
-
<div class="name-list">
|
|
96
|
-
<a href="#M000019">test_extract</a>
|
|
97
|
-
</div>
|
|
98
|
-
</div>
|
|
99
|
-
|
|
100
|
-
</div>
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
<!-- if includes -->
|
|
104
|
-
|
|
105
|
-
<div id="section">
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
<!-- if method_list -->
|
|
115
|
-
<div id="methods">
|
|
116
|
-
<h3 class="section-bar">Public Instance methods</h3>
|
|
117
|
-
|
|
118
|
-
<div id="method-M000019" class="method-detail">
|
|
119
|
-
<a name="M000019"></a>
|
|
120
|
-
|
|
121
|
-
<div class="method-heading">
|
|
122
|
-
<a href="#M000019" class="method-signature">
|
|
123
|
-
<span class="method-name">test_extract</span><span class="method-args">(files=nil)</span>
|
|
124
|
-
</a>
|
|
125
|
-
</div>
|
|
126
|
-
|
|
127
|
-
<div class="method-description">
|
|
128
|
-
<p>
|
|
129
|
-
<a href="Extract.html">Extract</a> unit tests. This task scans every
|
|
130
|
-
package script looking for sections of the form:
|
|
131
|
-
</p>
|
|
132
|
-
<pre>
|
|
133
|
-
=begin test
|
|
134
|
-
...
|
|
135
|
-
=end
|
|
136
|
-
</pre>
|
|
137
|
-
<p>
|
|
138
|
-
With appropriate headers, it copies these sections to files in your
|
|
139
|
-
project‘s test/ dir, which then can be run using the Ratchet test
|
|
140
|
-
task. The exact directory layout of the files to be tested is reflected in
|
|
141
|
-
the test directory. You can then use project.rb‘s test task to run
|
|
142
|
-
the tests.
|
|
143
|
-
</p>
|
|
144
|
-
<pre>
|
|
145
|
-
files Files to extract ['lib/**/*.rb']
|
|
146
|
-
output Test directory ['test/']
|
|
147
|
-
</pre>
|
|
148
|
-
<p><a class="source-toggle" href="#"
|
|
149
|
-
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
|
150
|
-
<div class="method-source-code" id="M000019-source">
|
|
151
|
-
<pre>
|
|
152
|
-
<span class="ruby-comment cmt"># File lib/quarry/extract.rb, line 33</span>
|
|
153
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_extract</span>(<span class="ruby-identifier">files</span>=<span class="ruby-keyword kw">nil</span>)
|
|
154
|
-
<span class="ruby-identifier">output</span> = <span class="ruby-value str">'test/embedded'</span> <span class="ruby-comment cmt"># Don't think output should be setable.</span>
|
|
155
|
-
|
|
156
|
-
<span class="ruby-identifier">files</span> = <span class="ruby-identifier">files</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'lib/**/*.rb'</span>
|
|
157
|
-
<span class="ruby-identifier">files</span> = <span class="ruby-value str">'lib/**/*.rb'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">TrueClass</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">files</span>
|
|
158
|
-
<span class="ruby-identifier">files</span> = [<span class="ruby-identifier">files</span>].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">compact</span>
|
|
159
|
-
|
|
160
|
-
<span class="ruby-identifier">filelist</span> = <span class="ruby-identifier">files</span>.<span class="ruby-identifier">collect</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">f</span>) }
|
|
161
|
-
<span class="ruby-identifier">filelist</span>.<span class="ruby-identifier">flatten!</span>
|
|
162
|
-
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filelist</span>.<span class="ruby-identifier">empty?</span>
|
|
163
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"No scripts found from which to extract tests."</span>
|
|
164
|
-
<span class="ruby-keyword kw">return</span>
|
|
165
|
-
<span class="ruby-keyword kw">end</span>
|
|
166
|
-
|
|
167
|
-
<span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>(<span class="ruby-identifier">output</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">output</span>)
|
|
168
|
-
|
|
169
|
-
<span class="ruby-comment cmt">#vrunner = VerbosityRunner.new("Extracting", verbosity?)</span>
|
|
170
|
-
<span class="ruby-comment cmt">#vrunner.setup(filelist.size)</span>
|
|
171
|
-
|
|
172
|
-
<span class="ruby-identifier">filelist</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
|
173
|
-
<span class="ruby-comment cmt">#vrunner.prepare(file)</span>
|
|
174
|
-
|
|
175
|
-
<span class="ruby-identifier">testing</span> = <span class="ruby-identifier">extract_test_from_file</span>( <span class="ruby-identifier">file</span> )
|
|
176
|
-
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">testing</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
|
|
177
|
-
<span class="ruby-identifier">status</span> = <span class="ruby-value str">"[NONE]"</span>
|
|
178
|
-
<span class="ruby-keyword kw">else</span>
|
|
179
|
-
<span class="ruby-identifier">complete_test</span> = <span class="ruby-identifier">create_test</span>(<span class="ruby-identifier">testing</span>, <span class="ruby-identifier">file</span>)
|
|
180
|
-
<span class="ruby-identifier">libpath</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">file</span>)
|
|
181
|
-
<span class="ruby-identifier">testfile</span> = <span class="ruby-value str">"test_"</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">file</span>)
|
|
182
|
-
<span class="ruby-identifier">fp</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">output</span>, <span class="ruby-identifier">libpath</span>, <span class="ruby-identifier">testfile</span>)
|
|
183
|
-
<span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">fp</span>))
|
|
184
|
-
<span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">fp</span>))
|
|
185
|
-
<span class="ruby-keyword kw">end</span>
|
|
186
|
-
<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fp</span>, <span class="ruby-value str">"w"</span>){ <span class="ruby-operator">|</span><span class="ruby-identifier">fw</span><span class="ruby-operator">|</span> <span class="ruby-identifier">fw</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">complete_test</span> }
|
|
187
|
-
<span class="ruby-identifier">status</span> = <span class="ruby-value str">"[TEST]"</span>
|
|
188
|
-
<span class="ruby-keyword kw">end</span>
|
|
189
|
-
|
|
190
|
-
<span class="ruby-comment cmt">#vrunner.complete(file, status)</span>
|
|
191
|
-
<span class="ruby-keyword kw">end</span>
|
|
192
|
-
|
|
193
|
-
<span class="ruby-comment cmt">#vrunner.finish(</span>
|
|
194
|
-
<span class="ruby-comment cmt"># :normal => "#{filelist.size} files had tests extracted.",</span>
|
|
195
|
-
<span class="ruby-comment cmt"># :check => false</span>
|
|
196
|
-
<span class="ruby-comment cmt">#)</span>
|
|
197
|
-
<span class="ruby-keyword kw">end</span>
|
|
198
|
-
</pre>
|
|
199
|
-
</div>
|
|
200
|
-
</div>
|
|
201
|
-
</div>
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
</div>
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
</div>
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
<div id="validator-badges">
|
|
211
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
212
|
-
</div>
|
|
213
|
-
|
|
214
|
-
</body>
|
|
215
|
-
</html>
|
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
-
<head>
|
|
8
|
-
<title>Class: Quarry::MethodProbe</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
-
<script type="text/javascript">
|
|
13
|
-
// <![CDATA[
|
|
14
|
-
|
|
15
|
-
function popupCode( url ) {
|
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function toggleCode( id ) {
|
|
20
|
-
if ( document.getElementById )
|
|
21
|
-
elem = document.getElementById( id );
|
|
22
|
-
else if ( document.all )
|
|
23
|
-
elem = eval( "document.all." + id );
|
|
24
|
-
else
|
|
25
|
-
return false;
|
|
26
|
-
|
|
27
|
-
elemStyle = elem.style;
|
|
28
|
-
|
|
29
|
-
if ( elemStyle.display != "block" ) {
|
|
30
|
-
elemStyle.display = "block"
|
|
31
|
-
} else {
|
|
32
|
-
elemStyle.display = "none"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Make codeblocks hidden by default
|
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
-
|
|
41
|
-
// ]]>
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
</head>
|
|
45
|
-
<body>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<div id="classHeader">
|
|
50
|
-
<table class="header-table">
|
|
51
|
-
<tr class="top-aligned-row">
|
|
52
|
-
<td><strong>Class</strong></td>
|
|
53
|
-
<td class="class-name-in-header">Quarry::MethodProbe</td>
|
|
54
|
-
</tr>
|
|
55
|
-
<tr class="top-aligned-row">
|
|
56
|
-
<td><strong>In:</strong></td>
|
|
57
|
-
<td>
|
|
58
|
-
<a href="../../files/lib/quarry/stub/probe_rb.html">
|
|
59
|
-
lib/quarry/stub/probe.rb
|
|
60
|
-
</a>
|
|
61
|
-
<br />
|
|
62
|
-
</td>
|
|
63
|
-
</tr>
|
|
64
|
-
|
|
65
|
-
<tr class="top-aligned-row">
|
|
66
|
-
<td><strong>Parent:</strong></td>
|
|
67
|
-
<td>
|
|
68
|
-
<a href="../Object.html">
|
|
69
|
-
Object
|
|
70
|
-
</a>
|
|
71
|
-
</td>
|
|
72
|
-
</tr>
|
|
73
|
-
</table>
|
|
74
|
-
</div>
|
|
75
|
-
<!-- banner header -->
|
|
76
|
-
|
|
77
|
-
<div id="bodyContent">
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<div id="contextContent">
|
|
82
|
-
|
|
83
|
-
<div id="description">
|
|
84
|
-
<h1><a href="../Method.html">Method</a> Probe</h1>
|
|
85
|
-
<p>
|
|
86
|
-
Method::Probe (aka DuckHunter) is a decoy object which is dropped into
|
|
87
|
-
methods which records the calls made against it —hence a method
|
|
88
|
-
probe. Of course, it is not perfect —an inescapable matter it seems
|
|
89
|
-
for any internal probe. There are a couple of issues related to
|
|
90
|
-
conditionals. Since the method test for a certain condition against the
|
|
91
|
-
decoy, how is the decoy to respond? Thus ceratin paths in the code may
|
|
92
|
-
never get exceuted and thus go unmapped. If Ruby had better conditional
|
|
93
|
-
reflection (i.e. if ‘if’, ‘case’,
|
|
94
|
-
‘unless’, ‘when’, etc. were true methods) then this
|
|
95
|
-
could be fixed by making the Probe reentrant, mapping out variant
|
|
96
|
-
true/false/nil replies. The likely insurmountable problem though is the
|
|
97
|
-
Halting problem. A probe can cause some methods to complete execution.
|
|
98
|
-
It‘s pretty rare, but it can happen and little can be done about it
|
|
99
|
-
(I think).
|
|
100
|
-
</p>
|
|
101
|
-
<p>
|
|
102
|
-
Note, the alternative to this kind of probe is a program that examines,
|
|
103
|
-
rather then executes, the code. This would circumvent the above problems,
|
|
104
|
-
but run into difficulties with dynamic evals. It would also be more
|
|
105
|
-
complicated, but might prove a better means in the future.
|
|
106
|
-
</p>
|
|
107
|
-
<p>
|
|
108
|
-
This script is provided for experimetnal purposes. Please inform the author
|
|
109
|
-
if you find ways to improve it or put it to an interesting use.
|
|
110
|
-
</p>
|
|
111
|
-
<h2>Synopsis</h2>
|
|
112
|
-
<pre>
|
|
113
|
-
require 'methodprobe'
|
|
114
|
-
|
|
115
|
-
def amethod(x)
|
|
116
|
-
x + 1
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
p method(:amethod).signiture
|
|
120
|
-
p method(:amethod).signiture(:class)
|
|
121
|
-
p method(:amethod).signiture(:pretty)
|
|
122
|
-
</pre>
|
|
123
|
-
<p>
|
|
124
|
-
produces
|
|
125
|
-
</p>
|
|
126
|
-
<pre>
|
|
127
|
-
[["+"]]
|
|
128
|
-
[{"+"=>[["Fixnum"]]}]
|
|
129
|
-
[["+( Fixnum )"]]
|
|
130
|
-
</pre>
|
|
131
|
-
|
|
132
|
-
</div>
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
</div>
|
|
136
|
-
|
|
137
|
-
<div id="method-list">
|
|
138
|
-
<h3 class="section-bar">Methods</h3>
|
|
139
|
-
|
|
140
|
-
<div class="name-list">
|
|
141
|
-
<a href="#M000079">duckcall</a>
|
|
142
|
-
<a href="#M000081">initialize_copy</a>
|
|
143
|
-
<a href="#M000082">method_missing</a>
|
|
144
|
-
<a href="#M000080">new</a>
|
|
145
|
-
</div>
|
|
146
|
-
</div>
|
|
147
|
-
|
|
148
|
-
</div>
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
<!-- if includes -->
|
|
152
|
-
|
|
153
|
-
<div id="section">
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
<div id="attribute-list">
|
|
160
|
-
<h3 class="section-bar">Attributes</h3>
|
|
161
|
-
|
|
162
|
-
<div class="name-list">
|
|
163
|
-
<table>
|
|
164
|
-
<tr class="top-aligned-row context-row">
|
|
165
|
-
<td class="context-item-name">decoys</td>
|
|
166
|
-
<td class="context-item-value"> [R] </td>
|
|
167
|
-
<td class="context-item-desc"></td>
|
|
168
|
-
</tr>
|
|
169
|
-
<tr class="top-aligned-row context-row">
|
|
170
|
-
<td class="context-item-name">ducks</td>
|
|
171
|
-
<td class="context-item-value"> [R] </td>
|
|
172
|
-
<td class="context-item-desc"></td>
|
|
173
|
-
</tr>
|
|
174
|
-
</table>
|
|
175
|
-
</div>
|
|
176
|
-
</div>
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
<!-- if method_list -->
|
|
181
|
-
<div id="methods">
|
|
182
|
-
<h3 class="section-bar">Public Class methods</h3>
|
|
183
|
-
|
|
184
|
-
<div id="method-M000079" class="method-detail">
|
|
185
|
-
<a name="M000079"></a>
|
|
186
|
-
|
|
187
|
-
<div class="method-heading">
|
|
188
|
-
<a href="#M000079" class="method-signature">
|
|
189
|
-
<span class="method-name">duckcall</span><span class="method-args">() {|| ...}</span>
|
|
190
|
-
</a>
|
|
191
|
-
</div>
|
|
192
|
-
|
|
193
|
-
<div class="method-description">
|
|
194
|
-
<p><a class="source-toggle" href="#"
|
|
195
|
-
onclick="toggleCode('M000079-source');return false;">[Source]</a></p>
|
|
196
|
-
<div class="method-source-code" id="M000079-source">
|
|
197
|
-
<pre>
|
|
198
|
-
<span class="ruby-comment cmt"># File lib/quarry/stub/probe.rb, line 70</span>
|
|
199
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">MethodProbe</span>.<span class="ruby-identifier">duckcall</span>
|
|
200
|
-
<span class="ruby-keyword kw">begin</span>
|
|
201
|
-
<span class="ruby-keyword kw">yield</span>
|
|
202
|
-
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">TypeError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
|
203
|
-
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>)
|
|
204
|
-
<span class="ruby-keyword kw">retry</span>
|
|
205
|
-
<span class="ruby-keyword kw">end</span>
|
|
206
|
-
<span class="ruby-keyword kw">end</span>
|
|
207
|
-
</pre>
|
|
208
|
-
</div>
|
|
209
|
-
</div>
|
|
210
|
-
</div>
|
|
211
|
-
|
|
212
|
-
<div id="method-M000080" class="method-detail">
|
|
213
|
-
<a name="M000080"></a>
|
|
214
|
-
|
|
215
|
-
<div class="method-heading">
|
|
216
|
-
<a href="#M000080" class="method-signature">
|
|
217
|
-
<span class="method-name">new</span><span class="method-args">()</span>
|
|
218
|
-
</a>
|
|
219
|
-
</div>
|
|
220
|
-
|
|
221
|
-
<div class="method-description">
|
|
222
|
-
<p><a class="source-toggle" href="#"
|
|
223
|
-
onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
|
|
224
|
-
<div class="method-source-code" id="M000080-source">
|
|
225
|
-
<pre>
|
|
226
|
-
<span class="ruby-comment cmt"># File lib/quarry/stub/probe.rb, line 81</span>
|
|
227
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
|
|
228
|
-
<span class="ruby-ivar">@ducks</span>, <span class="ruby-ivar">@decoys</span> = {}, {}
|
|
229
|
-
<span class="ruby-keyword kw">end</span>
|
|
230
|
-
</pre>
|
|
231
|
-
</div>
|
|
232
|
-
</div>
|
|
233
|
-
</div>
|
|
234
|
-
|
|
235
|
-
<h3 class="section-bar">Public Instance methods</h3>
|
|
236
|
-
|
|
237
|
-
<div id="method-M000081" class="method-detail">
|
|
238
|
-
<a name="M000081"></a>
|
|
239
|
-
|
|
240
|
-
<div class="method-heading">
|
|
241
|
-
<a href="#M000081" class="method-signature">
|
|
242
|
-
<span class="method-name">initialize_copy</span><span class="method-args">(from)</span>
|
|
243
|
-
</a>
|
|
244
|
-
</div>
|
|
245
|
-
|
|
246
|
-
<div class="method-description">
|
|
247
|
-
<p><a class="source-toggle" href="#"
|
|
248
|
-
onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
|
|
249
|
-
<div class="method-source-code" id="M000081-source">
|
|
250
|
-
<pre>
|
|
251
|
-
<span class="ruby-comment cmt"># File lib/quarry/stub/probe.rb, line 85</span>
|
|
252
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize_copy</span>(<span class="ruby-identifier">from</span>)
|
|
253
|
-
<span class="ruby-identifier">initialize</span>
|
|
254
|
-
<span class="ruby-keyword kw">end</span>
|
|
255
|
-
</pre>
|
|
256
|
-
</div>
|
|
257
|
-
</div>
|
|
258
|
-
</div>
|
|
259
|
-
|
|
260
|
-
<div id="method-M000082" class="method-detail">
|
|
261
|
-
<a name="M000082"></a>
|
|
262
|
-
|
|
263
|
-
<div class="method-heading">
|
|
264
|
-
<a href="#M000082" class="method-signature">
|
|
265
|
-
<span class="method-name">method_missing</span><span class="method-args">(aSym, *args)</span>
|
|
266
|
-
</a>
|
|
267
|
-
</div>
|
|
268
|
-
|
|
269
|
-
<div class="method-description">
|
|
270
|
-
<p><a class="source-toggle" href="#"
|
|
271
|
-
onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
|
|
272
|
-
<div class="method-source-code" id="M000082-source">
|
|
273
|
-
<pre>
|
|
274
|
-
<span class="ruby-comment cmt"># File lib/quarry/stub/probe.rb, line 89</span>
|
|
275
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">aSym</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
|
276
|
-
<span class="ruby-identifier">aSymStr</span> = <span class="ruby-identifier">aSym</span>.<span class="ruby-identifier">to_s</span>
|
|
277
|
-
|
|
278
|
-
<span class="ruby-comment cmt"># This will happen the first time</span>
|
|
279
|
-
<span class="ruby-ivar">@ducks</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator">||=</span> [] <span class="ruby-comment cmt">#unless @ducks[aSymStr]</span>
|
|
280
|
-
<span class="ruby-ivar">@ducks</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-node">"#{a.class}"</span> }
|
|
281
|
-
|
|
282
|
-
<span class="ruby-identifier">decoy</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
|
|
283
|
-
|
|
284
|
-
<span class="ruby-ivar">@decoys</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator">||=</span> [] <span class="ruby-comment cmt">#unless @decoys[aSymStr]</span>
|
|
285
|
-
<span class="ruby-ivar">@decoys</span>[<span class="ruby-identifier">aSymStr</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">decoy</span>
|
|
286
|
-
|
|
287
|
-
<span class="ruby-comment cmt"># build proxy?</span>
|
|
288
|
-
<span class="ruby-comment cmt">#begin</span>
|
|
289
|
-
<span class="ruby-comment cmt"># d = <<-HERE</span>
|
|
290
|
-
<span class="ruby-comment cmt"># def self.#{aSymStr}(*args)</span>
|
|
291
|
-
<span class="ruby-comment cmt"># # This will happen the subsequent times</span>
|
|
292
|
-
<span class="ruby-comment cmt"># @ducks["#{aSymStr}"] << args.collect { |a| #{'"#{a.class}"'} }</span>
|
|
293
|
-
<span class="ruby-comment cmt"># @ducks["#{aSymStr}"].uniq!</span>
|
|
294
|
-
<span class="ruby-comment cmt"># decoy = self.dup</span>
|
|
295
|
-
<span class="ruby-comment cmt"># @decoys["#{aSymStr}"] = [] unless @decoys["#{aSymStr}"]</span>
|
|
296
|
-
<span class="ruby-comment cmt"># @decoys["#{aSymStr}"] << decoy</span>
|
|
297
|
-
<span class="ruby-comment cmt"># decoy</span>
|
|
298
|
-
<span class="ruby-comment cmt"># end</span>
|
|
299
|
-
<span class="ruby-comment cmt"># HERE</span>
|
|
300
|
-
<span class="ruby-comment cmt"># instance_eval d</span>
|
|
301
|
-
<span class="ruby-comment cmt">#rescue SyntaxError</span>
|
|
302
|
-
<span class="ruby-comment cmt"># puts "This error may be avoidable by returning the failing duck type as the error message."</span>
|
|
303
|
-
<span class="ruby-comment cmt"># raise</span>
|
|
304
|
-
<span class="ruby-comment cmt">#end</span>
|
|
305
|
-
|
|
306
|
-
<span class="ruby-identifier">decoy</span>
|
|
307
|
-
<span class="ruby-keyword kw">end</span>
|
|
308
|
-
</pre>
|
|
309
|
-
</div>
|
|
310
|
-
</div>
|
|
311
|
-
</div>
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
</div>
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
</div>
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
<div id="validator-badges">
|
|
321
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
322
|
-
</div>
|
|
323
|
-
|
|
324
|
-
</body>
|
|
325
|
-
</html>
|