inochi 0.3.0 → 1.0.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.
Files changed (84) hide show
  1. data/CREDITS +1 -0
  2. data/bin/inochi +112 -104
  3. data/doc/api/classes/Array.html +370 -0
  4. data/doc/api/classes/File.html +110 -0
  5. data/doc/api/classes/Inochi.html +1493 -0
  6. data/doc/api/classes/Inochi/Manual.html +157 -0
  7. data/doc/api/classes/Inochi/Phrases.html +331 -0
  8. data/doc/api/classes/Inochi/Version.html +190 -0
  9. data/doc/api/classes/TempDir.html +164 -0
  10. data/doc/api/created.rid +1 -0
  11. data/doc/api/css/main.css +263 -0
  12. data/doc/api/css/panel.css +383 -0
  13. data/doc/api/css/reset.css +53 -0
  14. data/doc/api/files/CREDITS.html +61 -0
  15. data/doc/api/files/LICENSE.html +76 -0
  16. data/doc/api/files/lib/inochi/book_rb.html +96 -0
  17. data/doc/api/files/lib/inochi/init_rb.html +78 -0
  18. data/doc/api/files/lib/inochi/main_rb.html +52 -0
  19. data/doc/api/files/lib/inochi/rake_rb.html +52 -0
  20. data/doc/api/files/lib/inochi/test/bacon_rb.html +67 -0
  21. data/doc/api/files/lib/inochi/test/context_rb.html +69 -0
  22. data/doc/api/files/lib/inochi/test/dfect_rb.html +67 -0
  23. data/doc/api/files/lib/inochi/test/matchy_rb.html +69 -0
  24. data/doc/api/files/lib/inochi/test/minitest_rb.html +71 -0
  25. data/doc/api/files/lib/inochi/test/mocha_rb.html +67 -0
  26. data/doc/api/files/lib/inochi/test/rspec_rb.html +67 -0
  27. data/doc/api/files/lib/inochi/test/shoulda_rb.html +67 -0
  28. data/doc/api/files/lib/inochi/test/test_spec_rb.html +67 -0
  29. data/doc/api/files/lib/inochi/test/test_unit_rb.html +67 -0
  30. data/doc/api/files/lib/inochi/util/combo_rb.html +59 -0
  31. data/doc/api/files/lib/inochi/util/tempdir_rb.html +68 -0
  32. data/doc/api/files/lib/inochi/util_rb.html +59 -0
  33. data/doc/api/files/lib/inochi_rb.html +78 -0
  34. data/doc/api/i/arrows.png +0 -0
  35. data/doc/api/i/results_bg.png +0 -0
  36. data/doc/api/i/tree_bg.png +0 -0
  37. data/doc/api/index.html +14 -18
  38. data/doc/api/js/jquery-1.3.2.min.js +19 -0
  39. data/doc/api/js/jquery-effect.js +593 -0
  40. data/doc/api/js/main.js +22 -0
  41. data/doc/api/js/searchdoc.js +605 -0
  42. data/doc/api/panel/index.html +63 -0
  43. data/doc/api/panel/search_index.js +1 -0
  44. data/doc/api/panel/tree.js +1 -0
  45. data/doc/history.erb +75 -34
  46. data/doc/index.erb +10 -5
  47. data/doc/index.xhtml +806 -1145
  48. data/doc/intro.erb +33 -27
  49. data/doc/setup.erb +16 -15
  50. data/doc/usage.erb +86 -137
  51. data/lib/inochi.rb +25 -13
  52. data/lib/inochi/book.rb +13 -6
  53. data/lib/inochi/init.rb +41 -24
  54. data/lib/inochi/main.rb +17 -7
  55. data/lib/inochi/rake.rb +200 -59
  56. data/lib/inochi/test/bacon.rb +3 -0
  57. data/lib/inochi/test/context.rb +4 -0
  58. data/lib/inochi/test/dfect.rb +3 -0
  59. data/lib/inochi/test/matchy.rb +4 -0
  60. data/lib/inochi/test/minitest.rb +7 -0
  61. data/lib/inochi/test/mocha.rb +3 -0
  62. data/lib/inochi/test/rspec.rb +3 -0
  63. data/lib/inochi/test/shoulda.rb +3 -0
  64. data/lib/inochi/test/test_spec.rb +3 -0
  65. data/lib/inochi/test/test_unit.rb +3 -0
  66. data/lib/inochi/util.rb +23 -1
  67. data/lib/inochi/util/combo.rb +191 -0
  68. data/lib/inochi/util/tempdir.rb +29 -0
  69. data/rakefile +12 -0
  70. data/test/inochi.rb +5 -0
  71. metadata +119 -45
  72. data/Rakefile +0 -6
  73. data/doc/api/Inochi.html +0 -2574
  74. data/doc/api/Inochi/Manual.html +0 -230
  75. data/doc/api/Inochi/Phrases.html +0 -409
  76. data/doc/api/Inochi/Version.html +0 -222
  77. data/doc/api/all-methods.html +0 -180
  78. data/doc/api/all-namespaces.html +0 -28
  79. data/doc/api/app.js +0 -18
  80. data/doc/api/jquery.js +0 -11
  81. data/doc/api/readme.html +0 -38
  82. data/doc/api/style.css +0 -68
  83. data/doc/api/syntax_highlight.css +0 -21
  84. data/doc/theory.erb +0 -3
data/CREDITS ADDED
@@ -0,0 +1 @@
1
+ * Florian Gilcher
data/bin/inochi CHANGED
@@ -24,7 +24,7 @@
24
24
  #
25
25
  #
26
26
  # ProjectName: Name of your project, which will be normalized
27
- # into the naame of a Ruby module that will serve
27
+ # into the name of a Ruby module that will serve
28
28
  # as a namespace for all code in your project.
29
29
  #
30
30
  # ProgramName: (Optional) Name of the main project executable,
@@ -35,6 +35,11 @@
35
35
  # Options:
36
36
  #
37
37
 
38
+ #--
39
+ # Copyright 2009 Suraj N. Kurapati
40
+ # See the LICENSE file for details.
41
+ #++
42
+
38
43
  # command line
39
44
  require File.join(File.dirname(__FILE__), '..', 'lib', 'inochi')
40
45
 
@@ -99,6 +104,13 @@
99
104
  require '#{Inochi::PROGRAM}'
100
105
  }.strip
101
106
 
107
+ create "#{program_name}/CREDITS", %{
108
+ * Contributor name
109
+ * [Contributor name with hyperlink](http://the.contributor's.url)
110
+ * Another contributor
111
+ * Yet another contributor
112
+ }
113
+
102
114
  create "#{program_name}/LICENSE", %{
103
115
  (the ISC license)
104
116
 
@@ -117,7 +129,7 @@
117
129
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
118
130
  }
119
131
 
120
- create "#{program_name}/Rakefile", %{
132
+ create "#{program_name}/rakefile", %{
121
133
  #{inochi_preamble}
122
134
 
123
135
  Inochi.rake #{project_symbol.inspect} do |gem|
@@ -175,7 +187,7 @@
175
187
  :version => '#{project_version}',
176
188
  :release => '#{project_release}',
177
189
  :website => 'http://#{program_name}.rubyforge.org',
178
- :tagline => 'TODO: put a single line description of your project here.',
190
+ :tagline => 'put a single line description of your project here',
179
191
  :require => {
180
192
  # TODO: list gems required by your project here.
181
193
  # NOTE: this is completely optional!
@@ -189,66 +201,74 @@
189
201
  }
190
202
 
191
203
  create "#{program_name}/test/#{program_name}.rb", %{
192
- describe #{project_symbol} do
193
- it 'has inochi' do
194
- assert #{project_symbol}.const_defined? :INOCHI
204
+ unless #{project_symbol}.const_defined? :INOCHI
205
+ fail "#{project_symbol} must be established by Inochi"
206
+ end
195
207
 
196
- #{project_symbol}::INOCHI.each do |param, value|
197
- const = param.to_s.upcase
208
+ #{project_symbol}::INOCHI.each do |param, value|
209
+ const = param.to_s.upcase
198
210
 
199
- assert #{project_symbol}.const_defined? const
200
- #{project_symbol}.const_get(const).must_equal value
201
- end
211
+ unless #{project_symbol}.const_defined? const
212
+ fail "#{project_symbol}::\#{const} must be established by Inochi"
213
+ end
214
+
215
+ unless #{project_symbol}.const_get(const) == value
216
+ fail "#{project_symbol}::\#{const} is not what Inochi established"
202
217
  end
203
218
  end
219
+
220
+ puts "Inochi establishment tests passed!"
204
221
  }
205
222
 
206
223
  create "#{program_name}/doc/index.erb", %{
207
- <% Inochi.book #{project_symbol.inspect}, self %>
224
+ % Inochi.book #{project_symbol.inspect}, self
208
225
 
209
- <%# include intro.erb #%>
210
- <%# include setup.erb #%>
211
- <%# include theory.erb #%>
212
- <%# include usage.erb #%>
213
- <%# include history.erb #%>
226
+ %+ "intro.erb"
227
+ %+ "setup.erb"
228
+ %+ "theory.erb"
229
+ %+ "usage.erb"
230
+ %+ "history.erb"
214
231
  }
215
232
 
216
233
  create "#{program_name}/doc/intro.erb", %{
217
- <% chapter "Introduction" do %>
218
- <% project_summary do %>
234
+ % api_url = './api/index.html'
235
+ % repo_url = 'http://github.com/__________/' + $program
236
+ % repo_scm = '[Git](http://git-scm.com)'
237
+
238
+ %|chapter "Introduction"
239
+ %|project
219
240
  > TODO: explain the purpose of your project
220
241
 
221
- **<%= $project %>** is a __________ that __________.
222
- <% end %>
242
+ <%= $project %> is a __________ that __________.
223
243
 
224
- > TODO: explain why your project is important
244
+ > TODO: explain why your project is important
225
245
 
226
- **<%= $project %>** is exciting because:
227
- * It lets you __________.
228
- * Its core contains less than __________ lines of code.
229
- * It __________.
246
+ <%= $project %> is exciting because:
247
+ * It lets you __________.
248
+ * Its core contains less than __________ lines of code.
249
+ * It __________.
230
250
 
231
- > TODO: explain why your project is better than its competitors
251
+ > TODO: explain why your project is better than its competitors
232
252
 
233
- These features distinguish **<%= $project %>** from the competition:
234
- * [competitor 1](http://)
235
- * [competitor 2](http://)
236
- * [competitor 3](http://)
253
+ These features distinguish <%= $project %> from the competition:
254
+ * [competitor 1](http://)
255
+ * [competitor 2](http://)
256
+ * [competitor 3](http://)
237
257
 
238
- <% paragraph "Etymology" do %>
258
+ %|paragraph "Etymology"
239
259
  > TODO: explain the meaning of the name of your project
240
- <% end %>
241
260
 
242
- <% section "Logistics" do %>
261
+ %|section "Logistics"
243
262
  * <%= xref "History", "Release notes" %> --- history of project releases.
244
- * [Source code](http://github.com/#{ENV['USER']}/<%= $program %>) --- obtain via [Git](http://git.or.cz) or browse online.
245
- * [API reference](api/index.html) --- documentation for source code.
263
+ * [Source code](<%= repo_url %>) --- obtain via <%= repo_scm %> or browse online.
264
+ * [API reference](<%= api_url %>) --- documentation for source code.
265
+ * [Project home](<%= $website %>) --- the <%= $project %> project home page.
246
266
 
247
267
  To get help or provide feedback, simply
248
268
  <%= xref "License", "contact the author(s)" %>.
249
269
 
250
- <% paragraph "Version numbers" do %>
251
- **<%= $project %>** releases are numbered in *major.minor.patch*
270
+ %|paragraph "Version numbers"
271
+ <%= $project %> releases are numbered in *major.minor.patch*
252
272
  form according to the [RubyGems rational versioning
253
273
  policy](http://www.rubygems.org/read/chapter/7), which
254
274
  can be summarized thus:
@@ -286,42 +306,34 @@
286
306
  </tr>
287
307
  </tbody>
288
308
  </table>
289
- <% end %>
290
- <% end %>
291
309
 
292
- <% section "License" do %>
293
- <%# include ../LICENSE #%>
294
- <% end %>
310
+ %|paragraph "License"
311
+ %< "../LICENSE"
295
312
 
296
- <% section "Credits" do %>
313
+ %|section "Credits"
297
314
  > TODO: give attribution to your predecessors and contributors
298
315
 
299
- **<%= $project %>** is made possible by
316
+ <%= $project %> is made possible by
300
317
  <%= xref "History", "contributions" %>
301
318
  from users like you:
302
319
 
303
- * __________ (contributor name)
304
- * __________ (contributor name)
305
- * __________ (contributor name)
306
- <% end %>
307
- <% end %>
320
+ %< "../CREDITS"
308
321
  }
309
322
 
310
323
  create "#{program_name}/doc/setup.erb", %{
311
- <% chapter "Setup" do %>
312
- <% section "Requirements" do %>
313
- Your system needs the following software to run **<%= $project %>**.
324
+ %|chapter "Setup"
325
+ %|section "Requirements"
326
+ Your system needs the following software to run <%= $project %>.
314
327
 
315
328
  | Software | Description | Notes |
316
329
  | -------- | ----------- | ----- |
317
- | [Ruby](http://ruby-lang.org) | Ruby language interpreter | Version #{RUBY_VERSION} is required. |
318
- | [RubyGems](http://rubygems.org) | Ruby packaging system | Version #{Gem::RubyGemsVersion} is required. |
319
- <% end %>
330
+ | [Ruby](http://ruby-lang.org) | Ruby language interpreter | Version #{RUBY_VERSION} has been tested successfully. |
331
+ | [RubyGems](http://rubygems.org) | Ruby packaging system | Version #{Gem::RubyGemsVersion} or newer is required. |
320
332
 
321
- <% section "Installation" do %>
322
- You can install **<%= $project %>** by running this command:
333
+ %|section "Installation"
334
+ You can install <%= $project %> by running this command:
323
335
 
324
- gem install -f <%= $program %>
336
+ gem install <%= $program %>
325
337
 
326
338
  To check whether the installation was sucessful, run this command:
327
339
 
@@ -333,10 +345,9 @@
333
345
 
334
346
  If you do not see such output, you may
335
347
  <%= xref "License", "ask the author(s)" %> for help.
336
- <% end %>
337
348
 
338
- <% section "Manifest" do %>
339
- You will see the following items inside **<%= $project %>**'s installation
349
+ %|section "Manifest"
350
+ You will see the following items inside <%= $project %>'s installation
340
351
  directory, whose path you can determine by running this command:
341
352
 
342
353
  <%= $program %> --version
@@ -345,11 +356,11 @@
345
356
 
346
357
  * <tt>bin/</tt>
347
358
 
348
- * <tt><%= $program %></tt> --- the main **<%= $project %>** executable.
359
+ * <tt><%= $program %></tt> --- the main <%= $project %> executable.
349
360
 
350
361
  * <tt>lib/</tt>
351
362
 
352
- * <tt><%= $program %>.rb</tt> --- the main **<%= $project %>** library.
363
+ * <tt><%= $program %>.rb</tt> --- the main <%= $project %> library.
353
364
 
354
365
  * <tt><%= $program %>/</tt>
355
366
 
@@ -364,99 +375,96 @@
364
375
  * <tt>lang/</tt> --- translations of language phrases.
365
376
 
366
377
  * <tt>LICENSE</tt> --- copyright notice and legal conditions.
367
- <% end %>
368
- <% end %>
378
+
379
+ * <tt>CREDITS</tt> --- attribution of project contributors.
369
380
  }
370
381
 
371
382
  create "#{program_name}/doc/theory.erb", %{
372
- <% chapter "Theory of operation" do %>
383
+ %|chapter "Theory of operation"
373
384
  > TODO: explain how your project does what it does
374
- <% end %>
375
385
  }
376
386
 
377
387
  create "#{program_name}/doc/usage.erb", %{
378
- <% chapter "Usage" do %>
379
- <% section "Command-line interface" do %>
388
+ %|chapter "Usage"
389
+ %|section "Command-line interface"
380
390
  When you run this command:
381
391
 
382
392
  <%= $program %> --help
383
393
 
384
394
  You will see this output:
385
395
 
386
- <pre><%= verbatim `ruby bin/\#{$program_name} --help` %></pre>
396
+ <pre><%= verbatim `ruby bin/\#{$program} --help` %></pre>
387
397
 
388
398
  > TODO: explain the command-line arguments
389
- <% end %>
390
399
 
391
- <% section "Ruby library interface" do %>
400
+ %|section "Ruby library interface"
392
401
  > TODO: explain how to use your project's Ruby library
393
402
  > from inside another Ruby program or library
394
- <% end %>
395
403
 
396
- <% section "Tutorial" do %>
397
- This tutorial shows how **<%= $project %>** is used to __________.
404
+ %|section "Tutorial"
405
+ This tutorial shows how <%= $project %> is used to __________.
398
406
 
399
407
  > TODO: give examples for doing common tasks
400
- <% end %>
401
408
 
402
409
  > TODO: explain how to do more (advanced) things
403
- <% end %>
404
410
  }
405
411
 
406
412
  create "#{program_name}/doc/history.erb", %{
407
- <% chapter "History" do %>
413
+ %|chapter "History"
408
414
  > TODO: put a brief history about your project here
409
415
 
410
- <% project_history do %>
416
+ %|history
411
417
  > TODO: put release notes for your project
412
418
  > here -- newest first, oldest last.
413
419
 
414
- <% section "Version #{project_version} (#{project_release})" do %>
420
+ %|section "Version #{project_version} (#{project_release})"
415
421
  > TODO: write a short summary of the changes in this release
416
422
 
417
423
  This release changes __________, adds __________, and fixes __________.
418
424
 
419
- <% paragraph "Incompatible changes" do %>
425
+ %|paragraph "Thank you"
426
+ > TODO: list everyone who contributed to this release
427
+
428
+ * __________ contributed __________
429
+
430
+ * __________ suggested __________
431
+
432
+ * __________ helped to __________
433
+
434
+ %|paragraph "Incompatible changes"
420
435
  > TODO: list all backward-incompatible changes in this release
421
436
 
422
- * __________ has been __________ to __________. (contributor name)
437
+ * __________ has been __________ to __________ ---contributor name
423
438
 
424
- * __________. (contributor name)
439
+ * __________ ---contributor name
425
440
 
426
- * __________. (contributor name)
427
- <% end %>
441
+ * __________ ---contributor name
428
442
 
429
- <% paragraph "New features" do %>
443
+ %|paragraph "New features"
430
444
  > TODO: list new features added in this release
431
445
 
432
- * __________. (contributor name)
446
+ * __________ ---contributor name
433
447
 
434
- * __________. (contributor name)
448
+ * __________ ---contributor name
435
449
 
436
- * __________. (contributor name)
437
- <% end %>
450
+ * __________ ---contributor name
438
451
 
439
- <% paragraph "Bug fixes" do %>
452
+ %|paragraph "Bug fixes"
440
453
  > TODO: describe all bugs that are fixed in this release
441
454
 
442
- * __________ was __________. (contributor name)
455
+ * __________ was __________ ---contributor name
443
456
 
444
- * __________ were __________. (contributor name)
457
+ * __________ were __________ ---contributor name
445
458
 
446
- * __________ did __________. (contributor name)
447
- <% end %>
459
+ * __________ did __________ ---contributor name
448
460
 
449
- <% paragraph "Housekeeping" do %>
461
+ %|paragraph "Housekeeping"
450
462
  > TODO: list the refactorings, clean ups, and other
451
463
  > improvements that were done for this release
452
464
 
453
- * __________. (contributor name)
465
+ * __________ ---contributor name
454
466
 
455
- * __________. (contributor name)
467
+ * __________ ---contributor name
456
468
 
457
- * __________. (contributor name)
458
- <% end %>
459
- <% end %>
460
- <% end %>
461
- <% end %>
469
+ * __________ ---contributor name
462
470
  }
@@ -0,0 +1,370 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <title>Array</title>
7
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
+ <link rel="stylesheet" href="../css/reset.css" type="text/css" media="screen" />
9
+ <link rel="stylesheet" href="../css/main.css" type="text/css" media="screen" />
10
+ <script src="../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
11
+ <script src="../js/jquery-effect.js" type="text/javascript" charset="utf-8"></script>
12
+ <script src="../js/main.js" type="text/javascript" charset="utf-8"></script>
13
+ </head>
14
+
15
+ <body>
16
+ <div class="banner">
17
+ <h1>
18
+ <span class="type">Class</span>
19
+ Array
20
+
21
+ <span class="parent">&lt;
22
+
23
+ Object
24
+
25
+ </span>
26
+
27
+ </h1>
28
+ <ul class="files">
29
+
30
+ <li><a href="../files/lib/inochi/util/combo_rb.html">lib/inochi/util/combo.rb</a></li>
31
+
32
+ </ul>
33
+ </div>
34
+ <div id="bodyContent">
35
+ <div id="content">
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+ <div class="sectiontitle">Methods</div>
46
+ <dl class="methods">
47
+
48
+ <dt>C</dt>
49
+ <dd>
50
+ <ul>
51
+
52
+ <li><a href="#M000002">combination</a>,</li>
53
+
54
+ <li><a href="#M000003">combinations</a></li>
55
+
56
+ </ul>
57
+ </dd>
58
+
59
+ <dt>E</dt>
60
+ <dd>
61
+ <ul>
62
+
63
+ <li><a href="#M000000">enumeration</a>,</li>
64
+
65
+ <li><a href="#M000001">enumerations</a></li>
66
+
67
+ </ul>
68
+ </dd>
69
+
70
+ <dt>P</dt>
71
+ <dd>
72
+ <ul>
73
+
74
+ <li><a href="#M000004">permutation</a>,</li>
75
+
76
+ <li><a href="#M000005">permutations</a></li>
77
+
78
+ </ul>
79
+ </dd>
80
+
81
+ </dl>
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <div class="sectiontitle">Instance Public methods</div>
96
+
97
+ <div class="method">
98
+ <div class="title" id="M000002">
99
+
100
+ <a name="M000002"></a><b>combination</b>(sample_size = self.length, &amp;sampler)
101
+
102
+ </div>
103
+
104
+ <div class="description">
105
+ <p>
106
+ Returns all possible combinations made from sample_size number of items
107
+ from this list.
108
+ </p>
109
+ <h4>Parameters</h4>
110
+ <dl>
111
+ <dt>sample_size</dt><dd>The length of each combination.
112
+
113
+ </dd>
114
+ <dt>sampler</dt><dd>If given, each combination is passed to this block.
115
+
116
+ </dd>
117
+ </dl>
118
+
119
+ </div>
120
+
121
+
122
+
123
+
124
+ <div class="sourcecode">
125
+ <p class="source-link">
126
+ Source: <a href="javascript:toggleSource('M000002_source')" id="l_M000002_source">show</a>
127
+
128
+ | <a href="http://github.com/sunaku/inochi/blob/766b14740d2fffe75a0e4a11fd807c391e1f0c66/lib/inochi/util/combo.rb#L70" target="_blank" class="github_url">on GitHub</a>
129
+
130
+ </p>
131
+ <div id="M000002_source" class="dyn-source">
132
+ <pre><span class="ruby-comment cmt"># File lib/inochi/util/combo.rb, line 70</span>
133
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">combination</span>(<span class="ruby-identifier">sample_size</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>)
134
+ <span class="ruby-identifier">pnk_cnk_impl</span>(<span class="ruby-identifier">sample_size</span>, <span class="ruby-keyword kw">true</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>)
135
+ <span class="ruby-keyword kw">end</span></pre>
136
+ </div>
137
+ </div>
138
+
139
+ </div>
140
+
141
+ <div class="method">
142
+ <div class="title" id="M000003">
143
+
144
+ <a name="M000003"></a><b>combinations</b>(&amp;sampler)
145
+
146
+ </div>
147
+
148
+ <div class="description">
149
+ <p>
150
+ Returns all possible combinations of all possible lengths.
151
+ </p>
152
+ <h4>Parameters</h4>
153
+ <dl>
154
+ <dt>sampler</dt><dd>If given, each combination is passed to this block.
155
+
156
+ </dd>
157
+ </dl>
158
+
159
+ </div>
160
+
161
+
162
+
163
+
164
+ <div class="sourcecode">
165
+ <p class="source-link">
166
+ Source: <a href="javascript:toggleSource('M000003_source')" id="l_M000003_source">show</a>
167
+
168
+ | <a href="http://github.com/sunaku/inochi/blob/766b14740d2fffe75a0e4a11fd807c391e1f0c66/lib/inochi/util/combo.rb#L84" target="_blank" class="github_url">on GitHub</a>
169
+
170
+ </p>
171
+ <div id="M000003_source" class="dyn-source">
172
+ <pre><span class="ruby-comment cmt"># File lib/inochi/util/combo.rb, line 84</span>
173
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">combinations</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>
174
+ <span class="ruby-identifier">all_lengths_impl</span> <span class="ruby-identifier">:combination</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>
175
+ <span class="ruby-keyword kw">end</span></pre>
176
+ </div>
177
+ </div>
178
+
179
+ </div>
180
+
181
+ <div class="method">
182
+ <div class="title" id="M000000">
183
+
184
+ <a name="M000000"></a><b>enumeration</b>(sample_size = self.length, &amp;sampler)
185
+
186
+ </div>
187
+
188
+ <div class="description">
189
+ <p>
190
+ Returns all possible enumerations made from sample_size number of items
191
+ from this list.
192
+ </p>
193
+ <h4>Parameters</h4>
194
+ <dl>
195
+ <dt>sample_size</dt><dd>The length of each enumeration.
196
+
197
+ </dd>
198
+ <dt>sampler</dt><dd>If given, each enumeration is passed to this block.
199
+
200
+ </dd>
201
+ </dl>
202
+
203
+ </div>
204
+
205
+
206
+
207
+
208
+ <div class="sourcecode">
209
+ <p class="source-link">
210
+ Source: <a href="javascript:toggleSource('M000000_source')" id="l_M000000_source">show</a>
211
+
212
+ | <a href="http://github.com/sunaku/inochi/blob/766b14740d2fffe75a0e4a11fd807c391e1f0c66/lib/inochi/util/combo.rb#L20" target="_blank" class="github_url">on GitHub</a>
213
+
214
+ </p>
215
+ <div id="M000000_source" class="dyn-source">
216
+ <pre><span class="ruby-comment cmt"># File lib/inochi/util/combo.rb, line 20</span>
217
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enumeration</span>(<span class="ruby-identifier">sample_size</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>)
218
+ <span class="ruby-keyword kw">return</span> [] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sample_size</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">1</span>
219
+
220
+ <span class="ruby-identifier">results</span> = []
221
+
222
+ <span class="ruby-identifier">visitor</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">parents</span><span class="ruby-operator">|</span>
223
+ <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
224
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">parents</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">child</span>]
225
+
226
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">sample_size</span>
227
+ <span class="ruby-identifier">visitor</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">result</span>
228
+ <span class="ruby-keyword kw">else</span>
229
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">result</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
230
+ <span class="ruby-identifier">results</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">result</span>
231
+ <span class="ruby-keyword kw">end</span>
232
+ <span class="ruby-keyword kw">end</span>
233
+ <span class="ruby-keyword kw">end</span>
234
+
235
+ <span class="ruby-identifier">visitor</span>.<span class="ruby-identifier">call</span> []
236
+ <span class="ruby-identifier">results</span>
237
+ <span class="ruby-keyword kw">end</span></pre>
238
+ </div>
239
+ </div>
240
+
241
+ </div>
242
+
243
+ <div class="method">
244
+ <div class="title" id="M000001">
245
+
246
+ <a name="M000001"></a><b>enumerations</b>(&amp;sampler)
247
+
248
+ </div>
249
+
250
+ <div class="description">
251
+ <p>
252
+ Returns all possible enumerations of all possible lengths.
253
+ </p>
254
+ <h4>Parameters</h4>
255
+ <dl>
256
+ <dt>sampler</dt><dd>If given, each enumeration is passed to this block.
257
+
258
+ </dd>
259
+ </dl>
260
+
261
+ </div>
262
+
263
+
264
+
265
+
266
+ <div class="sourcecode">
267
+ <p class="source-link">
268
+ Source: <a href="javascript:toggleSource('M000001_source')" id="l_M000001_source">show</a>
269
+
270
+ | <a href="http://github.com/sunaku/inochi/blob/766b14740d2fffe75a0e4a11fd807c391e1f0c66/lib/inochi/util/combo.rb#L52" target="_blank" class="github_url">on GitHub</a>
271
+
272
+ </p>
273
+ <div id="M000001_source" class="dyn-source">
274
+ <pre><span class="ruby-comment cmt"># File lib/inochi/util/combo.rb, line 52</span>
275
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">enumerations</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>
276
+ <span class="ruby-identifier">all_lengths_impl</span> <span class="ruby-identifier">:enumeration</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>
277
+ <span class="ruby-keyword kw">end</span></pre>
278
+ </div>
279
+ </div>
280
+
281
+ </div>
282
+
283
+ <div class="method">
284
+ <div class="title" id="M000004">
285
+
286
+ <a name="M000004"></a><b>permutation</b>(sample_size = self.length, &amp;sampler)
287
+
288
+ </div>
289
+
290
+ <div class="description">
291
+ <p>
292
+ Returns all possible permutations made from sample_size number of items
293
+ from this list.
294
+ </p>
295
+ <h4>Parameters</h4>
296
+ <dl>
297
+ <dt>sample_size</dt><dd>The length of each permutation.
298
+
299
+ </dd>
300
+ <dt>sampler</dt><dd>If given, each permutation is passed to this block.
301
+
302
+ </dd>
303
+ </dl>
304
+
305
+ </div>
306
+
307
+
308
+
309
+
310
+ <div class="sourcecode">
311
+ <p class="source-link">
312
+ Source: <a href="javascript:toggleSource('M000004_source')" id="l_M000004_source">show</a>
313
+
314
+ | <a href="http://github.com/sunaku/inochi/blob/766b14740d2fffe75a0e4a11fd807c391e1f0c66/lib/inochi/util/combo.rb#L102" target="_blank" class="github_url">on GitHub</a>
315
+
316
+ </p>
317
+ <div id="M000004_source" class="dyn-source">
318
+ <pre><span class="ruby-comment cmt"># File lib/inochi/util/combo.rb, line 102</span>
319
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">permutation</span>(<span class="ruby-identifier">sample_size</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">length</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>)
320
+ <span class="ruby-identifier">pnk_cnk_impl</span>(<span class="ruby-identifier">sample_size</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>)
321
+ <span class="ruby-keyword kw">end</span></pre>
322
+ </div>
323
+ </div>
324
+
325
+ </div>
326
+
327
+ <div class="method">
328
+ <div class="title" id="M000005">
329
+
330
+ <a name="M000005"></a><b>permutations</b>(&amp;sampler)
331
+
332
+ </div>
333
+
334
+ <div class="description">
335
+ <p>
336
+ Returns all possible permutations of all possible lengths.
337
+ </p>
338
+ <h4>Parameters</h4>
339
+ <dl>
340
+ <dt>sampler</dt><dd>If given, each permutation is passed to this block.
341
+
342
+ </dd>
343
+ </dl>
344
+
345
+ </div>
346
+
347
+
348
+
349
+
350
+ <div class="sourcecode">
351
+ <p class="source-link">
352
+ Source: <a href="javascript:toggleSource('M000005_source')" id="l_M000005_source">show</a>
353
+
354
+ | <a href="http://github.com/sunaku/inochi/blob/766b14740d2fffe75a0e4a11fd807c391e1f0c66/lib/inochi/util/combo.rb#L116" target="_blank" class="github_url">on GitHub</a>
355
+
356
+ </p>
357
+ <div id="M000005_source" class="dyn-source">
358
+ <pre><span class="ruby-comment cmt"># File lib/inochi/util/combo.rb, line 116</span>
359
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">permutations</span> <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>
360
+ <span class="ruby-identifier">all_lengths_impl</span> <span class="ruby-identifier">:permutation</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">sampler</span>
361
+ <span class="ruby-keyword kw">end</span></pre>
362
+ </div>
363
+ </div>
364
+
365
+ </div>
366
+
367
+ </div>
368
+ </div>
369
+ </body>
370
+ </html>