porolog 0.0.3 → 0.0.4
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.
- checksums.yaml +4 -4
- data/README.md +5 -2
- data/coverage/badge.svg +1 -0
- data/coverage/index.html +7090 -0
- data/doc/Porolog.html +337 -0
- data/doc/_index.html +187 -0
- data/doc/class_list.html +51 -0
- data/doc/file.README.html +250 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +250 -0
- data/doc/method_list.html +403 -0
- data/doc/top-level-namespace.html +110 -0
- data/lib/porolog/arguments.rb +173 -0
- data/lib/porolog/predicate.rb +3 -2
- data/lib/porolog/scope.rb +3 -2
- data/lib/porolog.rb +4 -2
- data/test/porolog/arguments_test.rb +790 -0
- data/test/porolog/porolog_test.rb +67 -0
- data/test/porolog/predicate_test.rb +27 -9
- data/test/porolog/scope_test.rb +13 -13
- data/test/test_helper.rb +22 -2
- metadata +20 -3
data/doc/index.html
ADDED
@@ -0,0 +1,250 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.19
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
pathId = "README";
|
19
|
+
relpath = '';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="_index.html">Index</a> »
|
40
|
+
<span class="title">File: README</span>
|
41
|
+
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div id="search">
|
45
|
+
|
46
|
+
<a class="full_list_link" id="class_list_link"
|
47
|
+
href="class_list.html">
|
48
|
+
|
49
|
+
<svg width="24" height="24">
|
50
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
51
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
52
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
</svg>
|
54
|
+
</a>
|
55
|
+
|
56
|
+
</div>
|
57
|
+
<div class="clear"></div>
|
58
|
+
</div>
|
59
|
+
|
60
|
+
<div id="content"><div id='filecontents'>
|
61
|
+
<h1 id="label-porolog">porolog</h1>
|
62
|
+
|
63
|
+
<p><img src=“<a
|
64
|
+
href="https://repository-images.githubusercontent.com/131847563/b3754100-636a-11e9-995b-20d409b992c9">repository-images.githubusercontent.com/131847563/b3754100-636a-11e9-995b-20d409b992c9</a>”
|
65
|
+
width=“240” height=“120” align=“right” /></p>
|
66
|
+
|
67
|
+
<p>Plain Old Ruby Objects Prolog (WORK IN PROGRESS)</p>
|
68
|
+
|
69
|
+
<p><a href="https://badge.fury.io/rb/porolog"><img
|
70
|
+
src="https://badge.fury.io/rb/porolog.svg"></a> <a
|
71
|
+
href="https://travis-ci.com/wizardofosmium/porolog"><img
|
72
|
+
src="https://travis-ci.com/wizardofosmium/porolog.svg?branch=master"></a>
|
73
|
+
<img
|
74
|
+
src="https://img.shields.io/badge/status-work%20in%20progress-orange.svg">
|
75
|
+
<a href="https://github.com/wizardofosmium/porolog"><img
|
76
|
+
src="https://wizardofosmium.github.io/porolog/coverage/badge.svg"></a></p>
|
77
|
+
|
78
|
+
<h2 id="label-Introduction">Introduction</h2>
|
79
|
+
|
80
|
+
<p><code>porolog</code> is a Prolog implementation using plain old Ruby
|
81
|
+
objects with the aim that logic queries can be called within a regular Ruby
|
82
|
+
program. The goal was not to implement a Prolog interpreter that is just
|
83
|
+
implement in Ruby, but rather that a logic engine could be embedded in a
|
84
|
+
larger program.</p>
|
85
|
+
|
86
|
+
<p>The need that this gem aims to meet is to have a Ruby program interact with
|
87
|
+
a Prolog program using native Ruby objects (POROs); hence the name Porolog.
|
88
|
+
The goal was to implement a minimal logic engine in the style of Prolog
|
89
|
+
where Ruby objects could be passed in and Ruby objects were passed back.</p>
|
90
|
+
|
91
|
+
<h2 id="label-Dependencies">Dependencies</h2>
|
92
|
+
|
93
|
+
<p>The aim of <code>porolog</code> is to provide a logic engine with a minimal
|
94
|
+
footprint. The only extra dependency is Yard for documentation.</p>
|
95
|
+
|
96
|
+
<h2 id="label-Installation">Installation</h2>
|
97
|
+
|
98
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='id identifier rubyid_install'>install</span> <span class='id identifier rubyid_porolog'>porolog</span>
|
99
|
+
</code></pre>
|
100
|
+
|
101
|
+
<h2 id="label-Usage">Usage</h2>
|
102
|
+
|
103
|
+
<p><code>porolog</code> is used by:</p>
|
104
|
+
<ul><li>
|
105
|
+
<p>requiring the library within a Ruby program</p>
|
106
|
+
</li><li>
|
107
|
+
<p>defining facts and rules</p>
|
108
|
+
</li><li>
|
109
|
+
<p>solving goals</p>
|
110
|
+
</li></ul>
|
111
|
+
|
112
|
+
<p>It is entirely possible to create a Ruby program that is effectively just a
|
113
|
+
Prolog program.</p>
|
114
|
+
|
115
|
+
<h3 id="label-Basic+Usage">Basic Usage</h3>
|
116
|
+
|
117
|
+
<p>Using <code>porolog</code> involves creating logic from facts and rules. An
|
118
|
+
example, of the most basic usage uses just facts.</p>
|
119
|
+
|
120
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>porolog</span><span class='tstring_end'>'</span></span>
|
121
|
+
|
122
|
+
<span class='id identifier rubyid_prime'>prime</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Porolog.html" title="Porolog (module)">Porolog</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Porolog/Predicate.html" title="Porolog::Predicate (class)">Predicate</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Porolog/Predicate.html#new-class_method" title="Porolog::Predicate.new (method)">new</a></span></span> <span class='symbol'>:prime</span>
|
123
|
+
|
124
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>2</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
125
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>3</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
126
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
127
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>7</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
128
|
+
|
129
|
+
<span class='id identifier rubyid_solutions'>solutions</span> <span class='op'>=</span> <span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='symbol'>:X</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_solve'>solve</span>
|
130
|
+
|
131
|
+
<span class='id identifier rubyid_solutions'>solutions</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_solution'>solution</span><span class='op'>|</span>
|
132
|
+
<span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_solution'>solution</span><span class='lbracket'>[</span><span class='symbol'>:X</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'> is prime</span><span class='tstring_end'>"</span></span>
|
133
|
+
<span class='kw'>end</span>
|
134
|
+
</code></pre>
|
135
|
+
|
136
|
+
<h3 id="label-Common+Usage">Common Usage</h3>
|
137
|
+
|
138
|
+
<p>Common usage is expected to be including Porolog in a class and
|
139
|
+
encapsulating the engine defined.</p>
|
140
|
+
|
141
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>porolog</span><span class='tstring_end'>'</span></span>
|
142
|
+
|
143
|
+
<span class='kw'>class</span> <span class='const'>Numbers</span>
|
144
|
+
|
145
|
+
<span class='id identifier rubyid_include'>include</span> <span class='const'><span class='object_link'><a href="Porolog.html" title="Porolog (module)">Porolog</a></span></span>
|
146
|
+
|
147
|
+
<span class='id identifier rubyid_predicate'>predicate</span> <span class='symbol'>:prime</span>
|
148
|
+
|
149
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='lparen'>(</span><span class='int'>2</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
150
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='lparen'>(</span><span class='int'>3</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
151
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
152
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='lparen'>(</span><span class='int'>7</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
153
|
+
|
154
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_show_primes'>show_primes</span>
|
155
|
+
<span class='id identifier rubyid_solutions'>solutions</span> <span class='op'>=</span> <span class='id identifier rubyid_prime'>prime</span><span class='lparen'>(</span><span class='symbol'>:X</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_solve'>solve</span>
|
156
|
+
|
157
|
+
<span class='id identifier rubyid_solutions'>solutions</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_solution'>solution</span><span class='op'>|</span>
|
158
|
+
<span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_solution'>solution</span><span class='lbracket'>[</span><span class='symbol'>:X</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'> is prime</span><span class='tstring_end'>"</span></span>
|
159
|
+
<span class='kw'>end</span>
|
160
|
+
<span class='kw'>end</span>
|
161
|
+
|
162
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_primes'>primes</span>
|
163
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='lparen'>(</span><span class='symbol'>:X</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_solve_for'>solve_for</span><span class='lparen'>(</span><span class='symbol'>:X</span><span class='rparen'>)</span>
|
164
|
+
<span class='kw'>end</span>
|
165
|
+
|
166
|
+
<span class='kw'>end</span>
|
167
|
+
</code></pre>
|
168
|
+
|
169
|
+
<h3 id="label-Scope+and+Predicate+Usage">Scope and Predicate Usage</h3>
|
170
|
+
|
171
|
+
<p>A Predicate represents a Prolog predicate. They form the basis for rules
|
172
|
+
and queries.</p>
|
173
|
+
|
174
|
+
<p>The Scope class enables you to have multiple logic programs embedded in the
|
175
|
+
same Ruby program. A Scope object defines a scope for the predicates of a
|
176
|
+
logic programme.</p>
|
177
|
+
|
178
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>porolog</span><span class='tstring_end'>'</span></span>
|
179
|
+
|
180
|
+
<span class='comment'># -- Prime Numbers Predicate --
|
181
|
+
</span><span class='id identifier rubyid_prime'>prime</span> <span class='op'>=</span> <span class='id identifier rubyid_prime1'>prime1</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Porolog.html" title="Porolog (module)">Porolog</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Porolog/Predicate.html" title="Porolog::Predicate (class)">Predicate</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Porolog/Predicate.html#new-class_method" title="Porolog::Predicate.new (method)">new</a></span></span> <span class='symbol'>:prime</span><span class='comma'>,</span> <span class='symbol'>:numbers</span>
|
182
|
+
|
183
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>2</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
184
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>3</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
185
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
186
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>7</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
187
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='int'>11</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
188
|
+
|
189
|
+
<span class='comment'># -- Pump Predicate --
|
190
|
+
</span><span class='id identifier rubyid_prime'>prime</span> <span class='op'>=</span> <span class='id identifier rubyid_prime2'>prime2</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Porolog.html" title="Porolog (module)">Porolog</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Porolog/Predicate.html" title="Porolog::Predicate (class)">Predicate</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="Porolog/Predicate.html#new-class_method" title="Porolog::Predicate.new (method)">new</a></span></span> <span class='symbol'>:prime</span><span class='comma'>,</span> <span class='symbol'>:pumps</span>
|
191
|
+
|
192
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pump A</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
193
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pump B</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
194
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pump C</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
195
|
+
<span class='id identifier rubyid_prime'>prime</span><span class='period'>.</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pump D</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fact!'>fact!</span>
|
196
|
+
|
197
|
+
<span class='comment'># -- Assertions --
|
198
|
+
</span><span class='id identifier rubyid_assert_equal'>assert_equal</span> <span class='lbracket'>[</span><span class='symbol'>:default</span><span class='comma'>,</span><span class='symbol'>:numbers</span><span class='comma'>,</span><span class='symbol'>:pumps</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='const'>Scope</span><span class='period'>.</span><span class='id identifier rubyid_scopes'>scopes</span>
|
199
|
+
|
200
|
+
<span class='id identifier rubyid_assert_scope'>assert_scope</span> <span class='const'><span class='object_link'><a href="Porolog.html" title="Porolog (module)">Porolog</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Porolog/Scope.html" title="Porolog::Scope (class)">Scope</a></span></span><span class='lbracket'>[</span><span class='symbol'>:default</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:default</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
201
|
+
<span class='id identifier rubyid_assert_scope'>assert_scope</span> <span class='const'><span class='object_link'><a href="Porolog.html" title="Porolog (module)">Porolog</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Porolog/Scope.html" title="Porolog::Scope (class)">Scope</a></span></span><span class='lbracket'>[</span><span class='symbol'>:numbers</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:first</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_prime1'>prime1</span><span class='rbracket'>]</span>
|
202
|
+
<span class='id identifier rubyid_assert_scope'>assert_scope</span> <span class='const'><span class='object_link'><a href="Porolog.html" title="Porolog (module)">Porolog</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="Porolog/Scope.html" title="Porolog::Scope (class)">Scope</a></span></span><span class='lbracket'>[</span><span class='symbol'>:pumps</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:second</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_prime2'>prime2</span><span class='rbracket'>]</span>
|
203
|
+
|
204
|
+
<span class='id identifier rubyid_assert_equal'>assert_equal</span> <span class='symbol'>:prime</span><span class='comma'>,</span> <span class='id identifier rubyid_prime1'>prime1</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
|
205
|
+
<span class='id identifier rubyid_assert_equal'>assert_equal</span> <span class='symbol'>:prime</span><span class='comma'>,</span> <span class='id identifier rubyid_prime2'>prime2</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span>
|
206
|
+
|
207
|
+
<span class='id identifier rubyid_solutions'>solutions</span> <span class='op'>=</span> <span class='lbracket'>[</span>
|
208
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='int'>2</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
209
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='int'>3</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
210
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='int'>5</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
211
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='int'>7</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
212
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='int'>11</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
213
|
+
<span class='rbracket'>]</span>
|
214
|
+
<span class='id identifier rubyid_assert_equal'>assert_equal</span> <span class='id identifier rubyid_solutions'>solutions</span><span class='comma'>,</span> <span class='id identifier rubyid_prime1'>prime1</span><span class='period'>.</span><span class='lparen'>(</span><span class='symbol'>:X</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_solve'>solve</span>
|
215
|
+
|
216
|
+
<span class='id identifier rubyid_solutions'>solutions</span> <span class='op'>=</span> <span class='lbracket'>[</span>
|
217
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pump A</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
218
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pump B</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
219
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pump C</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
220
|
+
<span class='lbrace'>{</span> <span class='label'>X:</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>pump D</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
221
|
+
<span class='rbracket'>]</span>
|
222
|
+
<span class='id identifier rubyid_assert_equal'>assert_equal</span> <span class='id identifier rubyid_solutions'>solutions</span><span class='comma'>,</span> <span class='id identifier rubyid_prime2'>prime2</span><span class='period'>.</span><span class='lparen'>(</span><span class='symbol'>:X</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_solve'>solve</span>
|
223
|
+
</code></pre>
|
224
|
+
|
225
|
+
<h2 id="label-Testing">Testing</h2>
|
226
|
+
|
227
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rake'>rake</span> <span class='id identifier rubyid_test'>test</span>
|
228
|
+
</code></pre>
|
229
|
+
|
230
|
+
<p>or</p>
|
231
|
+
|
232
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_rake'>rake</span> <span class='id identifier rubyid_scope_test'>scope_test</span>
|
233
|
+
<span class='id identifier rubyid_rake'>rake</span> <span class='id identifier rubyid_predicate_test'>predicate_test</span>
|
234
|
+
<span class='id identifier rubyid_rake'>rake</span> <span class='id identifier rubyid_arguments_test'>arguments_test</span>
|
235
|
+
</code></pre>
|
236
|
+
|
237
|
+
<h2 id="label-Author">Author</h2>
|
238
|
+
|
239
|
+
<p>Luis Esteban MSc MTeach</p>
|
240
|
+
</div></div>
|
241
|
+
|
242
|
+
<div id="footer">
|
243
|
+
Generated on Mon Apr 22 16:27:39 2019 by
|
244
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
245
|
+
0.9.19 (ruby-2.3.4).
|
246
|
+
</div>
|
247
|
+
|
248
|
+
</div>
|
249
|
+
</body>
|
250
|
+
</html>
|