rubu 0.0.1 → 0.0.2
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/CHANGELOG.rdoc +3 -0
- data/README.rdoc +236 -8
- data/doc/Array.html +103 -38
- data/doc/Rubu.html +2 -2
- data/doc/Rubu/AgedStep.html +275 -0
- data/doc/Rubu/AlwaysStep.html +275 -0
- data/doc/Rubu/Fork.html +20 -20
- data/doc/Rubu/Info.html +39 -13
- data/doc/Rubu/Mark.html +318 -110
- data/doc/Rubu/MarkStep.html +275 -0
- data/doc/Rubu/Move.html +937 -0
- data/doc/Rubu/MoveStyles.html +403 -0
- data/doc/Rubu/Order.html +39 -13
- data/doc/Rubu/RubyCommand.html +39 -26
- data/doc/Rubu/ShellCommand.html +37 -24
- data/doc/Rubu/State.html +135 -38
- data/doc/Rubu/Step.html +1859 -0
- data/doc/Rubu/StepAged.html +279 -0
- data/doc/Rubu/StepAlways.html +279 -0
- data/doc/Rubu/StepMark.html +279 -0
- data/doc/Rubu/Trail.html +1022 -0
- data/doc/Rubu/TrailRun.html +377 -0
- data/doc/Rubu/Var.html +39 -13
- data/doc/Rubu/Walk.html +16 -16
- data/doc/_index.html +51 -59
- data/doc/class_list.html +1 -1
- data/doc/file.CHANGELOG.html +5 -2
- data/doc/file.README.html +255 -8
- data/doc/index.html +255 -8
- data/doc/method_list.html +88 -88
- data/doc/top-level-namespace.html +1 -1
- data/example/bin/rubu_example +49 -51
- data/example/build/hello +0 -0
- data/example/build/hello_world.o +0 -0
- data/example/build/world.c +6 -0
- data/example/build/world.o +0 -0
- data/lib/rubu.rb +168 -85
- data/lib/version.rb +1 -1
- metadata +17 -2
data/doc/index.html
CHANGED
@@ -69,7 +69,7 @@ is in practice a replacement for Make and Rake type of tools. <span class='objec
|
|
69
69
|
targeted to provide means for creating flexible build environments.</p>
|
70
70
|
|
71
71
|
<p>Make and Rake are rule and recipe based, and they are very effective when
|
72
|
-
the build process can be captured to these rules and
|
72
|
+
the build process can be captured to these rules and is fairly fixed.
|
73
73
|
<span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> includes declarations which correspond to rules, but the
|
74
74
|
declarations are lower level and provide more control over the behavior.
|
75
75
|
<span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> also provides direct control over when the rules are executed.</p>
|
@@ -77,16 +77,16 @@ declarations are lower level and provide more control over the behavior.
|
|
77
77
|
<p>Make and Rake are more compact for the simplest build environments, but
|
78
78
|
there is a break-even point where <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> becomes more convenient. This is
|
79
79
|
likely to happen when the user needs many exceptions to basic rules, also
|
80
|
-
when other tasks than just build
|
80
|
+
when other tasks than just build tasks are needed.</p>
|
81
81
|
|
82
82
|
<p><span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> library can be used from any Ruby program, since it is just a
|
83
83
|
library. It can also be part of a larger program as less significant part
|
84
84
|
of the overall functionality. From maintenance point of view this can be a
|
85
85
|
win in many cases.</p>
|
86
86
|
|
87
|
-
<
|
88
|
-
|
89
|
-
|
87
|
+
<p>The easiest way to get started with <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> is to study examples (See:
|
88
|
+
“Example” chapter below). However for longer term the main concepts are
|
89
|
+
important as well (See: “Concepts” chapter below).</p>
|
90
90
|
|
91
91
|
<h2 id="label-Example">Example</h2>
|
92
92
|
|
@@ -99,7 +99,7 @@ win in many cases.</p>
|
|
99
99
|
files. The main file is hand written and the other file is generated with a
|
100
100
|
script. File generation is part of the build program.</p>
|
101
101
|
|
102
|
-
<p>
|
102
|
+
<p>Different execution variations of the build program is captured in:</p>
|
103
103
|
|
104
104
|
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_example'>example</span><span class='op'>/</span><span class='id identifier rubyid_runme'>runme</span>
|
105
105
|
</code></pre>
|
@@ -111,20 +111,267 @@ script. File generation is part of the build program.</p>
|
|
111
111
|
<span class='id identifier rubyid_runme'>runme</span>
|
112
112
|
</code></pre>
|
113
113
|
|
114
|
-
<p>Also take a look into the build program:</p>
|
114
|
+
<p>Also take a look into the build program itself:</p>
|
115
115
|
|
116
116
|
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_cat'>cat</span> <span class='id identifier rubyid_example'>example</span><span class='op'>/</span><span class='id identifier rubyid_bin'>bin</span><span class='op'>/</span><span class='id identifier rubyid_rubu_example'>rubu_example</span>
|
117
117
|
</code></pre>
|
118
118
|
|
119
119
|
<p>There are comments which highlight purpose of the build program content.</p>
|
120
120
|
|
121
|
+
<h2 id="label-Concepts">Concepts</h2>
|
122
|
+
|
123
|
+
<p><span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> Build Program, RBP, is a Ruby program that uses the <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> library.
|
124
|
+
Typically command line options are accepted to give options for the build
|
125
|
+
process.</p>
|
126
|
+
|
127
|
+
<p>Build programs are about collecting source files and transforming them into
|
128
|
+
targets. This process is explicit in <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span>. Each file, whether it's
|
129
|
+
source or target, is collected within the <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> build program. The files
|
130
|
+
are converted into <strong>Mark</strong> objects. Basically
|
131
|
+
<strong>Mark</strong> corresponds to a file, but it includes methods that
|
132
|
+
make the build process convenient.</p>
|
133
|
+
|
134
|
+
<p><strong>Step</strong> is build action that transforms source file(s) to
|
135
|
+
target file(s). For example, a C source file compilation is a
|
136
|
+
<strong>Step</strong> where one source file is converted to a corresponding
|
137
|
+
object file. <strong>Step</strong> is given source <strong>Mark</strong>
|
138
|
+
and target <strong>Mark</strong> as arguments. Hence this type of
|
139
|
+
<strong>Step</strong> a is one-to-one mapping.</p>
|
140
|
+
|
141
|
+
<p>Linking multiple objects to an executable is a many-to-one mapping. This is
|
142
|
+
performed by a <strong>Step</strong> where there are multiple sources and
|
143
|
+
one target, i.e. objects and the executable respectively.</p>
|
144
|
+
|
145
|
+
<p><strong>Step</strong> class (or object) has “step” method which includes
|
146
|
+
the <strong>Move</strong> that is needed to create the target.
|
147
|
+
<strong>Move</strong> is either a Shell or a Ruby command.
|
148
|
+
<strong>Move</strong> is executed only if necessary. Typically the
|
149
|
+
<strong>Step</strong> is sensitive to source being newer that the target,
|
150
|
+
just as with Make and Rake. However, it is possible to have a
|
151
|
+
<strong>Step</strong> that is sensitive to file content, for example.
|
152
|
+
Timestamp might change, but if the content is the same as previously, no
|
153
|
+
<strong>Move</strong> is made.</p>
|
154
|
+
|
155
|
+
<p><strong>Step</strong> is typically a simple command. In some cases
|
156
|
+
<strong>Step</strong> can include multiple <strong>Moves</strong>. These
|
157
|
+
can be performed in sequence or in parallel, with a multicore CPU.</p>
|
158
|
+
|
159
|
+
<p><strong>Trail</strong> is a collection of <strong>Steps</strong>.
|
160
|
+
<strong>Trail</strong> has a name, and it can be references by another
|
161
|
+
<strong>Trail</strong>. <strong>Trail</strong> can be sequential or
|
162
|
+
parallel. For example, C source to object compilation can be done in
|
163
|
+
parallel, but linking of objects to executable must occur after all objects
|
164
|
+
have been created.</p>
|
165
|
+
|
166
|
+
<p><span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> Build Program includes all of the above, and the last step is to
|
167
|
+
select which <strong>Trail</strong> is executed. There should be at least
|
168
|
+
“default” <strong>Trail</strong>, and typically there is also a “clean”
|
169
|
+
<strong>Trail</strong>.</p>
|
170
|
+
|
171
|
+
<p><span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> supports the configuration spaces: <strong>Order</strong>,
|
172
|
+
<strong>Var</strong>, and <strong>Info</strong>. <strong>Order</strong> is
|
173
|
+
meant to be used for controlling <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> itself. For example if user wants
|
174
|
+
to see all executed command, then “verbose” option should be selected.</p>
|
175
|
+
|
176
|
+
<p><strong>Var</strong> is used to control how <strong>Steps</strong> behave
|
177
|
+
and also details of <strong>Move</strong> internals. <strong>Info</strong>
|
178
|
+
is meant for runtime generated information. The division is semantic and
|
179
|
+
user might choose to combine everything to <strong>Var</strong> space, for
|
180
|
+
example.</p>
|
181
|
+
|
182
|
+
<p>To summarize and highlight the relationships between concepts, see the
|
183
|
+
diagram below:</p>
|
184
|
+
|
185
|
+
<pre class="code ruby"><code class="ruby">RBP => Trial+ => Step+ [s/p] => Move+ [s/p] => Source*, Target*
|
186
|
+
=> Order+
|
187
|
+
=> Var*
|
188
|
+
=> Info*
|
189
|
+
|
190
|
+
* = Zero or more
|
191
|
+
+ = One or more
|
192
|
+
s = Serial
|
193
|
+
p = Parallel</code></pre>
|
194
|
+
|
195
|
+
<p>RBP includes <strong>Trials</strong>, <strong>Orders</strong>, and possibly
|
196
|
+
<strong>Vars</strong> and <strong>Infos</strong>. <strong>Trial</strong>
|
197
|
+
includes one or more <strong>Steps</strong>, which can be executed in
|
198
|
+
sequence or in parallel.</p>
|
199
|
+
|
200
|
+
<p><strong>Step</strong> includes one or more <strong>Moves</strong>, and they
|
201
|
+
can also be sequential or parallel. <strong>Move</strong> has typically at
|
202
|
+
least one <strong>Source</strong> and at least one <strong>Target</strong>.
|
203
|
+
However, there are exceptions as well.</p>
|
204
|
+
|
205
|
+
<p>The suggested ordering within <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> Build Program is:</p>
|
206
|
+
<dl class="rdoc-list label-list"><dt>configuration
|
207
|
+
<dd>
|
208
|
+
<p>Process command line arguments and assign options that are used to control
|
209
|
+
the build process.</p>
|
210
|
+
</dd><dt>file collection
|
211
|
+
<dd>
|
212
|
+
<p>Collect source and target files either using Ruby with glob pattern, direct
|
213
|
+
references, or through manifest files. Convert file names to
|
214
|
+
<strong>Mark</strong> objects.</p>
|
215
|
+
</dd><dt>step definition
|
216
|
+
<dd>
|
217
|
+
<p>Define <strong>Steps</strong>. Inherit one of the <strong>Step</strong>
|
218
|
+
types (classes) and define at least the “step” method.</p>
|
219
|
+
</dd><dt>trail definition
|
220
|
+
<dd>
|
221
|
+
<p>Define <strong>Trails</strong>. Create all possible flows that user wants
|
222
|
+
to execute. Use hierarchy for your benefit in order to make RBP maintenance
|
223
|
+
as light as possible.</p>
|
224
|
+
</dd><dt>trail selection
|
225
|
+
<dd>
|
226
|
+
<p>Find the selected <strong>Trail</strong> or <strong>Trails</strong> and
|
227
|
+
execute.</p>
|
228
|
+
</dd></dl>
|
229
|
+
|
230
|
+
<h2 id="label-Configuration">Configuration</h2>
|
231
|
+
|
232
|
+
<p><strong>Order</strong> space default are set by the <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> library and user
|
233
|
+
can override the default based on command line parameters if needed.</p>
|
234
|
+
|
235
|
+
<p>Set default values for <strong>Var</strong> space. After default setting,
|
236
|
+
override the defaults with possible control from command line arguments.</p>
|
237
|
+
|
238
|
+
<p>Finally setup <strong>Trails</strong> by calling:</p>
|
239
|
+
|
240
|
+
<pre class="code ruby"><code class="ruby"><span class='const'>Trail</span><span class='period'>.</span><span class='id identifier rubyid_setup'>setup</span>
|
241
|
+
</code></pre>
|
242
|
+
|
243
|
+
<h2 id="label-File+collection">File collection</h2>
|
244
|
+
|
245
|
+
<p>If the build environment has clear and clean directory structure, it is
|
246
|
+
typically easiest to collect files programmatically. For example, to get
|
247
|
+
all C source files:</p>
|
248
|
+
|
249
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_cee_files'>cee_files</span> <span class='op'>=</span> <span class='const'>Mark</span><span class='period'>.</span><span class='id identifier rubyid_glob'>glob</span><span class='lparen'>(</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'>Var</span><span class='lbracket'>[</span><span class='symbol'>:source_dir</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>/*.c</span><span class='tstring_end'>"</span></span> <span class='rparen'>)</span>
|
250
|
+
</code></pre>
|
251
|
+
|
252
|
+
<p>This creates a list of <strong>Mark</strong> objects which are source
|
253
|
+
files. The corresponding object files can be created with “peer” method:</p>
|
254
|
+
|
255
|
+
<pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_obj_files'>obj_files</span> <span class='op'>=</span> <span class='id identifier rubyid_cee_files'>cee_files</span><span class='period'>.</span><span class='id identifier rubyid_peer'>peer</span><span class='lparen'>(</span> <span class='const'>Var</span><span class='lbracket'>[</span> <span class='symbol'>:build_dir</span> <span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.o</span><span class='tstring_end'>'</span></span> <span class='rparen'>)</span>
|
256
|
+
</code></pre>
|
257
|
+
|
258
|
+
<p>This method invocation takes an Array of <strong>Mark</strong> objects and
|
259
|
+
calls “peer” method for them. “peer” method changes the directory and
|
260
|
+
extension, and returns a new <strong>Mark</strong> object. In some cases
|
261
|
+
also the “basename” of the file is changed. This is achieved by giving the
|
262
|
+
“peer” method a third argument specifying the new “basename”.</p>
|
263
|
+
|
264
|
+
<h2 id="label-Step+definition">Step definition</h2>
|
265
|
+
|
266
|
+
<p><strong>Step</strong> is defined by inheriting of the <span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span>
|
267
|
+
<strong>Step</strong> classes and defining the custom “step” method. If a
|
268
|
+
specific setup for the <strong>Step</strong> is required, then an
|
269
|
+
additional “setup” method can be defined as well.</p>
|
270
|
+
|
271
|
+
<pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>CleanUp</span> <span class='op'><</span> <span class='const'>StepAlways</span>
|
272
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_step'>step</span>
|
273
|
+
<span class='id identifier rubyid_shrun'>shrun</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rm -f </span><span class='embexpr_beg'>#{</span><span class='const'>Var</span><span class='lbracket'>[</span> <span class='symbol'>:build_dir</span> <span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>/*.o</span><span class='tstring_end'>"</span></span>
|
274
|
+
<span class='kw'>end</span>
|
275
|
+
<span class='kw'>end</span>
|
276
|
+
</code></pre>
|
277
|
+
|
278
|
+
<p>“setup” method is typically used to change the command according to user
|
279
|
+
configuration. “step” method is the action for <strong>Step</strong>.
|
280
|
+
<span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> executes it, if necessary. For example, if <strong>Step</strong> is
|
281
|
+
a <strong>StepAged</strong> class, then the “step” method is only called if
|
282
|
+
the source <strong>Mark</strong> is newer than the target
|
283
|
+
<strong>Mark</strong>.</p>
|
284
|
+
|
285
|
+
<p>“step” method may include only one command or a set of commands. If one
|
286
|
+
command is needed, it can be simply executed:</p>
|
287
|
+
|
288
|
+
<pre class="code ruby"><code class="ruby"><span class='kw'>def</span> <span class='id identifier rubyid_step'>step</span>
|
289
|
+
<span class='id identifier rubyid_shrun'>shrun</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rm -f </span><span class='embexpr_beg'>#{</span><span class='const'>Var</span><span class='lbracket'>[</span> <span class='symbol'>:build_dir</span> <span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>/*.o</span><span class='tstring_end'>"</span></span>
|
290
|
+
<span class='kw'>end</span>
|
291
|
+
</code></pre>
|
292
|
+
|
293
|
+
<p>If there are multiple commands, then the commands can be grouped for
|
294
|
+
sequential (“walk”) or parallel execution (“fork”).</p>
|
295
|
+
|
296
|
+
<pre class="code ruby"><code class="ruby"><span class='kw'>def</span> <span class='id identifier rubyid_step'>step</span>
|
297
|
+
<span class='id identifier rubyid_fork'>fork</span> <span class='kw'>do</span>
|
298
|
+
<span class='id identifier rubyid_shuse'>shuse</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rm -f </span><span class='embexpr_beg'>#{</span><span class='const'>Info</span><span class='lbracket'>[</span> <span class='symbol'>:gen_files</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_rpath'>rpath</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
299
|
+
<span class='id identifier rubyid_shuse'>shuse</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rm -f </span><span class='embexpr_beg'>#{</span><span class='const'>Var</span><span class='lbracket'>[</span> <span class='symbol'>:build_dir</span> <span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>/*.o</span><span class='tstring_end'>"</span></span>
|
300
|
+
<span class='kw'>end</span>
|
301
|
+
<span class='kw'>end</span>
|
302
|
+
</code></pre>
|
303
|
+
|
304
|
+
<p>Note that the commands are defined with “shuse”. The logic is that we
|
305
|
+
don't execute the commands right away as in “shrun”. Instead we just
|
306
|
+
register the commands to the group. When the group definition is closed
|
307
|
+
(“end” keyword), it is complete, and we execute it either sequentially or
|
308
|
+
in parallel.</p>
|
309
|
+
|
310
|
+
<h2 id="label-Trail+definition">Trail definition</h2>
|
311
|
+
|
312
|
+
<p><strong>Trail</strong> is a collection of <strong>Steps</strong> or other
|
313
|
+
<strong>Trails</strong>, or a mix of both. For example, in order to compile
|
314
|
+
a set of C source files to object files, we might define:</p>
|
315
|
+
|
316
|
+
<pre class="code ruby"><code class="ruby"><span class='const'>Fork</span><span class='period'>.</span><span class='id identifier rubyid_form'>form</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>compile-cee</span><span class='tstring_end'>'</span></span> <span class='kw'>do</span>
|
317
|
+
<span class='const'>GccCompileFile</span><span class='period'>.</span><span class='id identifier rubyid_usezip'>usezip</span><span class='lparen'>(</span> <span class='id identifier rubyid_cee_files'>cee_files</span><span class='comma'>,</span> <span class='id identifier rubyid_obj_files'>obj_files</span> <span class='rparen'>)</span>
|
318
|
+
<span class='kw'>end</span>
|
319
|
+
</code></pre>
|
320
|
+
|
321
|
+
<p>This creates a parallel (“Fork”) <strong>Trail</strong> called
|
322
|
+
“compile-cee”. Collection of <strong>Steps</strong> is created with
|
323
|
+
“usezip” method. “usezip” performs two operations: it creates a zip type
|
324
|
+
mix of “cee_files” and “obj_files”. The “zip” method of Ruby Array is used.
|
325
|
+
“zip” creates an Array of <strong>Mark</strong> pairs. Each pair is passed
|
326
|
+
to a “GccCompileFile” <strong>Step</strong> object. Finally we have a
|
327
|
+
collection of <strong>Steps</strong> which are executed in parallel when
|
328
|
+
“compile-cee” is invoked.</p>
|
329
|
+
|
330
|
+
<p>Here the defined <strong>Trail</strong> from above is referenced in order
|
331
|
+
to create a <strong>Trail</strong> for the complete compile flow:</p>
|
332
|
+
|
333
|
+
<pre class="code ruby"><code class="ruby"><span class='const'>Walk</span><span class='period'>.</span><span class='id identifier rubyid_form'>form</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>default</span><span class='tstring_end'>'</span></span> <span class='kw'>do</span>
|
334
|
+
<span class='id identifier rubyid_pick'>pick</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>compile-cee</span><span class='tstring_end'>'</span></span>
|
335
|
+
<span class='const'>GccLinkExe</span><span class='period'>.</span><span class='id identifier rubyid_use'>use</span><span class='lparen'>(</span> <span class='id identifier rubyid_obj_files'>obj_files</span><span class='comma'>,</span> <span class='id identifier rubyid_exe_file'>exe_file</span> <span class='rparen'>)</span>
|
336
|
+
<span class='kw'>end</span>
|
337
|
+
</code></pre>
|
338
|
+
|
339
|
+
<p>This <strong>Trail</strong> definition defines that we want to first
|
340
|
+
execute “compile-cee” and then a <strong>Step</strong> which will create an
|
341
|
+
executable from object file collection. “GccLinkExe” <strong>Step</strong>
|
342
|
+
is called with “use” method, which will register the <strong>Step</strong>
|
343
|
+
to the enclosing <strong>Trail</strong>, “default”.</p>
|
344
|
+
|
345
|
+
<h2 id="label-Trail+selection">Trail selection</h2>
|
346
|
+
|
347
|
+
<p>The final stage in RBP execution is to use command line control for
|
348
|
+
selecting the executed <strong>Trails</strong> and then execute them. The
|
349
|
+
above definition (from previous section) is executed with:</p>
|
350
|
+
|
351
|
+
<pre class="code ruby"><code class="ruby"><span class='const'>Trail</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>default</span><span class='tstring_end'>'</span></span> <span class='rparen'>)</span>
|
352
|
+
</code></pre>
|
353
|
+
|
354
|
+
<h2 id="label-Final+notes">Final notes</h2>
|
355
|
+
|
356
|
+
<p><span class='object_link'><a href="Rubu.html" title="Rubu (class)">Rubu</a></span> treats single <strong>Mark</strong> objects and Array of
|
357
|
+
<strong>Mark</strong> objects the “same” way. In practice this means that
|
358
|
+
the most common methods for <strong>Mark</strong> objects are implemented
|
359
|
+
for Array as well. Hence, you can call a <strong>Mark</strong> method for
|
360
|
+
an Array, and they will actually be applied for each individual
|
361
|
+
<strong>Mark</strong> in the collection.</p>
|
362
|
+
|
363
|
+
<p><strong>Step</strong> has sources and targets. Even if a step has only one
|
364
|
+
source and one target, the actual container is an Array. If you want to
|
365
|
+
refer to the source, i.e. the only existing source, you can use the
|
366
|
+
“source” method. Same applies to targets (i.e. use the “target” method).</p>
|
367
|
+
|
121
368
|
<h2 id="label-Testing">Testing</h2>
|
122
369
|
|
123
370
|
<p>For this version, example is the testcase.</p>
|
124
371
|
</div></div>
|
125
372
|
|
126
373
|
<div id="footer">
|
127
|
-
Generated on
|
374
|
+
Generated on Sun Jul 1 17:48:17 2018 by
|
128
375
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
129
376
|
0.8.7.6 (ruby-2.3.3).
|
130
377
|
</div>
|
data/doc/method_list.html
CHANGED
@@ -76,8 +76,8 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
<li class="r1 ">
|
79
|
-
<span class='object_link'><a href="Rubu/
|
80
|
-
<small>Rubu::
|
79
|
+
<span class='object_link'><a href="Rubu/Trail.html#%5B%5D-class_method" title="Rubu::Trail.[] (method)">[]</a></span>
|
80
|
+
<small>Rubu::Trail</small>
|
81
81
|
</li>
|
82
82
|
|
83
83
|
|
@@ -112,8 +112,8 @@
|
|
112
112
|
|
113
113
|
|
114
114
|
<li class="r1 ">
|
115
|
-
<span class='object_link'><a href="Rubu/
|
116
|
-
<small>Rubu::
|
115
|
+
<span class='object_link'><a href="Rubu/Step.html#date_update%3F-instance_method" title="Rubu::Step#date_update? (method)">#date_update?</a></span>
|
116
|
+
<small>Rubu::Step</small>
|
117
117
|
</li>
|
118
118
|
|
119
119
|
|
@@ -124,20 +124,20 @@
|
|
124
124
|
|
125
125
|
|
126
126
|
<li class="r1 ">
|
127
|
-
<span class='object_link'><a href="Rubu/
|
128
|
-
<small>Rubu::
|
127
|
+
<span class='object_link'><a href="Rubu/Move.html#display-instance_method" title="Rubu::Move#display (method)">#display</a></span>
|
128
|
+
<small>Rubu::Move</small>
|
129
129
|
</li>
|
130
130
|
|
131
131
|
|
132
132
|
<li class="r2 ">
|
133
|
-
<span class='object_link'><a href="Rubu/
|
134
|
-
<small>Rubu::
|
133
|
+
<span class='object_link'><a href="Rubu/Move.html#errmsg-instance_method" title="Rubu::Move#errmsg (method)">#errmsg</a></span>
|
134
|
+
<small>Rubu::Move</small>
|
135
135
|
</li>
|
136
136
|
|
137
137
|
|
138
138
|
<li class="r1 ">
|
139
|
-
<span class='object_link'><a href="Rubu/
|
140
|
-
<small>Rubu::
|
139
|
+
<span class='object_link'><a href="Rubu/Move.html#error-instance_method" title="Rubu::Move#error (method)">#error</a></span>
|
140
|
+
<small>Rubu::Move</small>
|
141
141
|
</li>
|
142
142
|
|
143
143
|
|
@@ -154,14 +154,14 @@
|
|
154
154
|
|
155
155
|
|
156
156
|
<li class="r2 ">
|
157
|
-
<span class='object_link'><a href="Rubu/
|
158
|
-
<small>Rubu::
|
157
|
+
<span class='object_link'><a href="Rubu/Step.html#fork-instance_method" title="Rubu::Step#fork (method)">#fork</a></span>
|
158
|
+
<small>Rubu::Step</small>
|
159
159
|
</li>
|
160
160
|
|
161
161
|
|
162
162
|
<li class="r1 ">
|
163
|
-
<span class='object_link'><a href="Rubu/
|
164
|
-
<small>Rubu::
|
163
|
+
<span class='object_link'><a href="Rubu/Trail.html#form-class_method" title="Rubu::Trail.form (method)">form</a></span>
|
164
|
+
<small>Rubu::Trail</small>
|
165
165
|
</li>
|
166
166
|
|
167
167
|
|
@@ -172,26 +172,26 @@
|
|
172
172
|
|
173
173
|
|
174
174
|
<li class="r1 ">
|
175
|
-
<span class='object_link'><a href="Rubu/
|
176
|
-
<small>Rubu::
|
175
|
+
<span class='object_link'><a href="Rubu/Move.html#host-instance_method" title="Rubu::Move#host (method)">#host</a></span>
|
176
|
+
<small>Rubu::Move</small>
|
177
177
|
</li>
|
178
178
|
|
179
179
|
|
180
180
|
<li class="r2 ">
|
181
|
-
<span class='object_link'><a href="Rubu/
|
182
|
-
<small>Rubu::
|
181
|
+
<span class='object_link'><a href="Rubu/Move.html#host_in-instance_method" title="Rubu::Move#host_in (method)">#host_in</a></span>
|
182
|
+
<small>Rubu::Move</small>
|
183
183
|
</li>
|
184
184
|
|
185
185
|
|
186
186
|
<li class="r1 ">
|
187
|
-
<span class='object_link'><a href="Rubu/
|
188
|
-
<small>Rubu::
|
187
|
+
<span class='object_link'><a href="Rubu/Move.html#host_out-instance_method" title="Rubu::Move#host_out (method)">#host_out</a></span>
|
188
|
+
<small>Rubu::Move</small>
|
189
189
|
</li>
|
190
190
|
|
191
191
|
|
192
192
|
<li class="r2 ">
|
193
|
-
<span class='object_link'><a href="Rubu/
|
194
|
-
<small>Rubu::
|
193
|
+
<span class='object_link'><a href="Rubu/Move.html#initialize-instance_method" title="Rubu::Move#initialize (method)">#initialize</a></span>
|
194
|
+
<small>Rubu::Move</small>
|
195
195
|
</li>
|
196
196
|
|
197
197
|
|
@@ -214,14 +214,14 @@
|
|
214
214
|
|
215
215
|
|
216
216
|
<li class="r2 ">
|
217
|
-
<span class='object_link'><a href="Rubu/
|
218
|
-
<small>Rubu::
|
217
|
+
<span class='object_link'><a href="Rubu/Step.html#initialize-instance_method" title="Rubu::Step#initialize (method)">#initialize</a></span>
|
218
|
+
<small>Rubu::Step</small>
|
219
219
|
</li>
|
220
220
|
|
221
221
|
|
222
222
|
<li class="r1 ">
|
223
|
-
<span class='object_link'><a href="Rubu/
|
224
|
-
<small>Rubu::
|
223
|
+
<span class='object_link'><a href="Rubu/Trail.html#initialize-instance_method" title="Rubu::Trail#initialize (method)">#initialize</a></span>
|
224
|
+
<small>Rubu::Trail</small>
|
225
225
|
</li>
|
226
226
|
|
227
227
|
|
@@ -238,14 +238,14 @@
|
|
238
238
|
|
239
239
|
|
240
240
|
<li class="r2 ">
|
241
|
-
<span class='object_link'><a href="Rubu/
|
242
|
-
<small>Rubu::
|
241
|
+
<span class='object_link'><a href="Rubu/Trail.html#load_setup-class_method" title="Rubu::Trail.load_setup (method)">load_setup</a></span>
|
242
|
+
<small>Rubu::Trail</small>
|
243
243
|
</li>
|
244
244
|
|
245
245
|
|
246
246
|
<li class="r1 ">
|
247
|
-
<span class='object_link'><a href="Rubu/
|
248
|
-
<small>Rubu::
|
247
|
+
<span class='object_link'><a href="Rubu/Step.html#mark_update%3F-instance_method" title="Rubu::Step#mark_update? (method)">#mark_update?</a></span>
|
248
|
+
<small>Rubu::Step</small>
|
249
249
|
</li>
|
250
250
|
|
251
251
|
|
@@ -262,20 +262,20 @@
|
|
262
262
|
|
263
263
|
|
264
264
|
<li class="r2 ">
|
265
|
-
<span class='object_link'><a href="Rubu/
|
266
|
-
<small>Rubu::
|
265
|
+
<span class='object_link'><a href="Rubu/Trail.html#name-instance_method" title="Rubu::Trail#name (method)">#name</a></span>
|
266
|
+
<small>Rubu::Trail</small>
|
267
267
|
</li>
|
268
268
|
|
269
269
|
|
270
270
|
<li class="r1 ">
|
271
|
-
<span class='object_link'><a href="Rubu/
|
272
|
-
<small>Rubu::
|
271
|
+
<span class='object_link'><a href="Rubu/Move.html#output-instance_method" title="Rubu::Move#output (method)">#output</a></span>
|
272
|
+
<small>Rubu::Move</small>
|
273
273
|
</li>
|
274
274
|
|
275
275
|
|
276
276
|
<li class="r2 ">
|
277
|
-
<span class='object_link'><a href="Rubu/
|
278
|
-
<small>Rubu::
|
277
|
+
<span class='object_link'><a href="Rubu/MoveStyles.html#parallel_run-instance_method" title="Rubu::MoveStyles#parallel_run (method)">#parallel_run</a></span>
|
278
|
+
<small>Rubu::MoveStyles</small>
|
279
279
|
</li>
|
280
280
|
|
281
281
|
|
@@ -310,20 +310,20 @@
|
|
310
310
|
|
311
311
|
|
312
312
|
<li class="r2 ">
|
313
|
-
<span class='object_link'><a href="Rubu/
|
314
|
-
<small>Rubu::
|
313
|
+
<span class='object_link'><a href="Rubu/Trail.html#pick-instance_method" title="Rubu::Trail#pick (method)">#pick</a></span>
|
314
|
+
<small>Rubu::Trail</small>
|
315
315
|
</li>
|
316
316
|
|
317
317
|
|
318
318
|
<li class="r1 ">
|
319
|
-
<span class='object_link'><a href="Rubu/
|
320
|
-
<small>Rubu::
|
319
|
+
<span class='object_link'><a href="Rubu/Step.html#rbrun-instance_method" title="Rubu::Step#rbrun (method)">#rbrun</a></span>
|
320
|
+
<small>Rubu::Step</small>
|
321
321
|
</li>
|
322
322
|
|
323
323
|
|
324
324
|
<li class="r2 ">
|
325
|
-
<span class='object_link'><a href="Rubu/
|
326
|
-
<small>Rubu::
|
325
|
+
<span class='object_link'><a href="Rubu/Step.html#rbuse-instance_method" title="Rubu::Step#rbuse (method)">#rbuse</a></span>
|
326
|
+
<small>Rubu::Step</small>
|
327
327
|
</li>
|
328
328
|
|
329
329
|
|
@@ -358,20 +358,20 @@
|
|
358
358
|
|
359
359
|
|
360
360
|
<li class="r2 ">
|
361
|
-
<span class='object_link'><a href="Rubu/
|
362
|
-
<small>Rubu::
|
361
|
+
<span class='object_link'><a href="Rubu/Step.html#run-instance_method" title="Rubu::Step#run (method)">#run</a></span>
|
362
|
+
<small>Rubu::Step</small>
|
363
363
|
</li>
|
364
364
|
|
365
365
|
|
366
366
|
<li class="r1 ">
|
367
|
-
<span class='object_link'><a href="Rubu/
|
368
|
-
<small>Rubu::
|
367
|
+
<span class='object_link'><a href="Rubu/Trail.html#run-instance_method" title="Rubu::Trail#run (method)">#run</a></span>
|
368
|
+
<small>Rubu::Trail</small>
|
369
369
|
</li>
|
370
370
|
|
371
371
|
|
372
372
|
<li class="r2 ">
|
373
|
-
<span class='object_link'><a href="Rubu/
|
374
|
-
<small>Rubu::
|
373
|
+
<span class='object_link'><a href="Rubu/Trail.html#run-class_method" title="Rubu::Trail.run (method)">run</a></span>
|
374
|
+
<small>Rubu::Trail</small>
|
375
375
|
</li>
|
376
376
|
|
377
377
|
|
@@ -388,8 +388,8 @@
|
|
388
388
|
|
389
389
|
|
390
390
|
<li class="r1 ">
|
391
|
-
<span class='object_link'><a href="Rubu/
|
392
|
-
<small>Rubu::
|
391
|
+
<span class='object_link'><a href="Rubu/MoveStyles.html#serial_run-instance_method" title="Rubu::MoveStyles#serial_run (method)">#serial_run</a></span>
|
392
|
+
<small>Rubu::MoveStyles</small>
|
393
393
|
</li>
|
394
394
|
|
395
395
|
|
@@ -406,26 +406,26 @@
|
|
406
406
|
|
407
407
|
|
408
408
|
<li class="r2 ">
|
409
|
-
<span class='object_link'><a href="Rubu/
|
410
|
-
<small>Rubu::
|
409
|
+
<span class='object_link'><a href="Rubu/Step.html#setup-instance_method" title="Rubu::Step#setup (method)">#setup</a></span>
|
410
|
+
<small>Rubu::Step</small>
|
411
411
|
</li>
|
412
412
|
|
413
413
|
|
414
414
|
<li class="r1 ">
|
415
|
-
<span class='object_link'><a href="Rubu/
|
416
|
-
<small>Rubu::
|
415
|
+
<span class='object_link'><a href="Rubu/Trail.html#setup-class_method" title="Rubu::Trail.setup (method)">setup</a></span>
|
416
|
+
<small>Rubu::Trail</small>
|
417
417
|
</li>
|
418
418
|
|
419
419
|
|
420
420
|
<li class="r2 ">
|
421
|
-
<span class='object_link'><a href="Rubu/
|
422
|
-
<small>Rubu::
|
421
|
+
<span class='object_link'><a href="Rubu/Step.html#shrun-instance_method" title="Rubu::Step#shrun (method)">#shrun</a></span>
|
422
|
+
<small>Rubu::Step</small>
|
423
423
|
</li>
|
424
424
|
|
425
425
|
|
426
426
|
<li class="r1 ">
|
427
|
-
<span class='object_link'><a href="Rubu/
|
428
|
-
<small>Rubu::
|
427
|
+
<span class='object_link'><a href="Rubu/Step.html#shuse-instance_method" title="Rubu::Step#shuse (method)">#shuse</a></span>
|
428
|
+
<small>Rubu::Step</small>
|
429
429
|
</li>
|
430
430
|
|
431
431
|
|
@@ -436,38 +436,38 @@
|
|
436
436
|
|
437
437
|
|
438
438
|
<li class="r1 ">
|
439
|
-
<span class='object_link'><a href="Rubu/
|
440
|
-
<small>Rubu::
|
439
|
+
<span class='object_link'><a href="Rubu/Step.html#source-instance_method" title="Rubu::Step#source (method)">#source</a></span>
|
440
|
+
<small>Rubu::Step</small>
|
441
441
|
</li>
|
442
442
|
|
443
443
|
|
444
444
|
<li class="r2 ">
|
445
|
-
<span class='object_link'><a href="Rubu/
|
446
|
-
<small>Rubu::
|
445
|
+
<span class='object_link'><a href="Rubu/Step.html#sources-instance_method" title="Rubu::Step#sources (method)">#sources</a></span>
|
446
|
+
<small>Rubu::Step</small>
|
447
447
|
</li>
|
448
448
|
|
449
449
|
|
450
450
|
<li class="r1 ">
|
451
|
-
<span class='object_link'><a href="Rubu/
|
452
|
-
<small>Rubu::
|
451
|
+
<span class='object_link'><a href="Rubu/Move.html#status-instance_method" title="Rubu::Move#status (method)">#status</a></span>
|
452
|
+
<small>Rubu::Move</small>
|
453
453
|
</li>
|
454
454
|
|
455
455
|
|
456
456
|
<li class="r2 ">
|
457
|
-
<span class='object_link'><a href="Rubu/
|
458
|
-
<small>Rubu::
|
457
|
+
<span class='object_link'><a href="Rubu/Move.html#subs-instance_method" title="Rubu::Move#subs (method)">#subs</a></span>
|
458
|
+
<small>Rubu::Move</small>
|
459
459
|
</li>
|
460
460
|
|
461
461
|
|
462
462
|
<li class="r1 ">
|
463
|
-
<span class='object_link'><a href="Rubu/
|
464
|
-
<small>Rubu::
|
463
|
+
<span class='object_link'><a href="Rubu/Step.html#target-instance_method" title="Rubu::Step#target (method)">#target</a></span>
|
464
|
+
<small>Rubu::Step</small>
|
465
465
|
</li>
|
466
466
|
|
467
467
|
|
468
468
|
<li class="r2 ">
|
469
|
-
<span class='object_link'><a href="Rubu/
|
470
|
-
<small>Rubu::
|
469
|
+
<span class='object_link'><a href="Rubu/Step.html#targets-instance_method" title="Rubu::Step#targets (method)">#targets</a></span>
|
470
|
+
<small>Rubu::Step</small>
|
471
471
|
</li>
|
472
472
|
|
473
473
|
|
@@ -478,38 +478,38 @@
|
|
478
478
|
|
479
479
|
|
480
480
|
<li class="r2 ">
|
481
|
-
<span class='object_link'><a href="Rubu/
|
482
|
-
<small>Rubu::
|
481
|
+
<span class='object_link'><a href="Rubu/Step.html#update%3F-instance_method" title="Rubu::Step#update? (method)">#update?</a></span>
|
482
|
+
<small>Rubu::Step</small>
|
483
483
|
</li>
|
484
484
|
|
485
485
|
|
486
486
|
<li class="r1 ">
|
487
|
-
<span class='object_link'><a href="Rubu/
|
488
|
-
<small>Rubu::
|
487
|
+
<span class='object_link'><a href="Rubu/StepAlways.html#update%3F-instance_method" title="Rubu::StepAlways#update? (method)">#update?</a></span>
|
488
|
+
<small>Rubu::StepAlways</small>
|
489
489
|
</li>
|
490
490
|
|
491
491
|
|
492
492
|
<li class="r2 ">
|
493
|
-
<span class='object_link'><a href="Rubu/
|
494
|
-
<small>Rubu::
|
493
|
+
<span class='object_link'><a href="Rubu/StepAged.html#update%3F-instance_method" title="Rubu::StepAged#update? (method)">#update?</a></span>
|
494
|
+
<small>Rubu::StepAged</small>
|
495
495
|
</li>
|
496
496
|
|
497
497
|
|
498
498
|
<li class="r1 ">
|
499
|
-
<span class='object_link'><a href="Rubu/
|
500
|
-
<small>Rubu::
|
499
|
+
<span class='object_link'><a href="Rubu/StepMark.html#update%3F-instance_method" title="Rubu::StepMark#update? (method)">#update?</a></span>
|
500
|
+
<small>Rubu::StepMark</small>
|
501
501
|
</li>
|
502
502
|
|
503
503
|
|
504
504
|
<li class="r2 ">
|
505
|
-
<span class='object_link'><a href="Rubu/
|
506
|
-
<small>Rubu::
|
505
|
+
<span class='object_link'><a href="Rubu/Move.html#use-instance_method" title="Rubu::Move#use (method)">#use</a></span>
|
506
|
+
<small>Rubu::Move</small>
|
507
507
|
</li>
|
508
508
|
|
509
509
|
|
510
510
|
<li class="r1 ">
|
511
|
-
<span class='object_link'><a href="Rubu/
|
512
|
-
<small>Rubu::
|
511
|
+
<span class='object_link'><a href="Rubu/Step.html#use-class_method" title="Rubu::Step.use (method)">use</a></span>
|
512
|
+
<small>Rubu::Step</small>
|
513
513
|
</li>
|
514
514
|
|
515
515
|
|
@@ -520,8 +520,8 @@
|
|
520
520
|
|
521
521
|
|
522
522
|
<li class="r1 ">
|
523
|
-
<span class='object_link'><a href="Rubu/
|
524
|
-
<small>Rubu::
|
523
|
+
<span class='object_link'><a href="Rubu/Step.html#usezip-class_method" title="Rubu::Step.usezip (method)">usezip</a></span>
|
524
|
+
<small>Rubu::Step</small>
|
525
525
|
</li>
|
526
526
|
|
527
527
|
|
@@ -532,14 +532,14 @@
|
|
532
532
|
|
533
533
|
|
534
534
|
<li class="r1 ">
|
535
|
-
<span class='object_link'><a href="Rubu/
|
536
|
-
<small>Rubu::
|
535
|
+
<span class='object_link'><a href="Rubu/Step.html#walk-instance_method" title="Rubu::Step#walk (method)">#walk</a></span>
|
536
|
+
<small>Rubu::Step</small>
|
537
537
|
</li>
|
538
538
|
|
539
539
|
|
540
540
|
<li class="r2 ">
|
541
|
-
<span class='object_link'><a href="Rubu/
|
542
|
-
<small>Rubu::
|
541
|
+
<span class='object_link'><a href="Rubu/Step.html#zip-class_method" title="Rubu::Step.zip (method)">zip</a></span>
|
542
|
+
<small>Rubu::Step</small>
|
543
543
|
</li>
|
544
544
|
|
545
545
|
|