olag 0.1.15 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/ChangeLog CHANGED
@@ -1,5 +1,6 @@
1
1
  2012-01-07 Oren Ben-Kiki <github-oren@ben-kiki.org>
2
2
 
3
+ * Improve HAskell configuration comment.
3
4
  * Add default configurations for Haskell code.
4
5
 
5
6
  2011-09-13 Oren Ben-Kiki <github-oren@ben-kiki.org>
@@ -679,8 +679,7 @@ Olag using monkey-patching.
679
679
  <p>
680
680
  Finally, Olag::Rake sets up the following tasks (as reported by <code>rake -T</code>):
681
681
  </p>
682
- <pre>
683
- <code>rake all # Version, verify, document, package
682
+ <pre><code>rake all # Version, verify, document, package
684
683
  rake analyze # Analyze source code
685
684
  rake changelog # Update ChangeLog from Git
686
685
  rake clean # Remove any temporary products.
@@ -710,9 +709,7 @@ rake second_commit # Perform the 2nd (amend) Git commit
710
709
  rake test # Run tests for test
711
710
  rake verify # Test, coverage, analyze code
712
711
  rake version # Update version file from Git
713
- </code>
714
- </pre>
715
- </li>
712
+ </code></pre></li>
716
713
  </ul>
717
714
 
718
715
 
@@ -2028,7 +2025,7 @@ number of Git commits by running <tt>rake version</tt>.
2028
2025
  </tr>
2029
2026
  </table>
2030
2027
  <pre class='ruby code syntax'>
2031
- <span class="Type">VERSION</span> = <span class="Special">&quot;</span><span class="Constant">0.1.15</span><span class="Special">&quot;</span>
2028
+ <span class="Type">VERSION</span> = <span class="Special">&quot;</span><span class="Constant">0.1.16</span><span class="Special">&quot;</span>
2032
2029
 
2033
2030
  end
2034
2031
  </pre>
@@ -3305,6 +3302,7 @@ Here is a mix-in that helps writing tests using temporary files and folders:
3305
3302
  <div class="chunk html">
3306
3303
  <pre class='ruby code syntax'>
3307
3304
  <span class="PreProc">require</span> <span class="Special">&quot;</span><span class="Constant">fileutils</span><span class="Special">&quot;</span>
3305
+ <span class="PreProc">require</span> <span class="Special">&quot;</span><span class="Constant">tempfile</span><span class="Special">&quot;</span>
3308
3306
 
3309
3307
  <span class="PreProc">module</span> <span class="Type">Test</span>
3310
3308
 
@@ -3423,8 +3421,106 @@ Automatically clean up the temporary files when the test is done.
3423
3421
  <span class="PreProc">end</span>
3424
3422
 
3425
3423
  end
3424
+ end
3425
+
3426
+ end
3427
+
3428
+ end
3429
+ </pre>
3430
+ </div>
3431
+ </div>
3432
+ </p>
3433
+ <h3>Testing with a temporary directory</h3>
3434
+ <p>
3435
+ When running external programs, or sometimes even Ruby programs, it is useful
3436
+ to have a temporary directory to stuff everything into, which is automatically
3437
+ removed when the test is done. The <code>WithTempfile</code> module does provide the
3438
+ <code>create_tempdir</code> function, which we can use; but it is easier to also include
3439
+ the <code>WithTempdir</code> module, which does this automatically in the <code>setup</code> function
3440
+ for us, and precomputes up the standard I/O file names as well.
3441
+ </p>
3442
+ <p>
3443
+ <div class="named_with_containers chunk">
3444
+ <div class="chunk name">
3445
+ <a name="lib-olag-test-with-tempdir-rb">
3446
+ <span>lib/olag/test/with_tempdir.rb</span>
3447
+ </a>
3448
+ </div>
3449
+ <div class="chunk html">
3450
+ <pre class='ruby code syntax'>
3451
+ <span class="PreProc">require</span> <span class="Special">&quot;</span><span class="Constant">olag/test/with_tempfile</span><span class="Special">&quot;</span>
3452
+
3453
+ <span class="PreProc">module</span> <span class="Type">Test</span>
3454
+
3455
+ </pre>
3456
+ <table class='layout'>
3457
+ <tr>
3458
+ <td class='indentation'>
3459
+ <pre> </pre>
3460
+ </td>
3461
+ <td class='html'>
3462
+ <div class='rdoc comment markup'>
3463
+ <p>
3464
+ Mix-in for tests that run applications in a temporary directory. This
3465
+ assumes that the test class has already mixed-in the WithTempfile mix-in.
3466
+ </p>
3467
+ </div>
3468
+ </td>
3469
+ </tr>
3470
+ </table>
3471
+ <pre class='ruby code syntax'>
3472
+ <span class="PreProc">module</span> <span class="Type">WithTempdir</span>
3473
+
3474
+ </pre>
3475
+ <table class='layout'>
3476
+ <tr>
3477
+ <td class='indentation'>
3478
+ <pre> </pre>
3479
+ </td>
3480
+ <td class='html'>
3481
+ <div class='rdoc comment markup'>
3482
+ <p>
3483
+ Aliasing methods needs to be deferred to when the module is included and be
3484
+ executed in the context of the class.
3485
+ </p>
3486
+ </div>
3487
+ </td>
3488
+ </tr>
3489
+ </table>
3490
+ <pre class='ruby code syntax'>
3491
+ <span class="PreProc">def</span> <span class="Constant">self</span>.<span class="Identifier">included</span>(base)
3492
+ base.class_eval <span class="Statement">do</span>
3493
+
3494
+ alias_method <span class="Constant">:tempdir_original_setup</span>, <span class="Constant">:setup</span>
3426
3495
 
3496
+ </pre>
3497
+ <table class='layout'>
3498
+ <tr>
3499
+ <td class='indentation'>
3500
+ <pre> </pre>
3501
+ </td>
3502
+ <td class='html'>
3503
+ <div class='rdoc comment markup'>
3504
+ <p>
3505
+ Create a temporary directory for the run and percompute the standard I/O
3506
+ file names in it.
3507
+ </p>
3508
+ </div>
3509
+ </td>
3510
+ </tr>
3511
+ </table>
3512
+ <pre class='ruby code syntax'>
3513
+ <span class="PreProc">def</span> <span class="Identifier">setup</span>
3514
+ tempdir_original_setup
3515
+ <span class="Identifier">@tempdir</span> = create_tempdir
3516
+ <span class="Identifier">@stdout</span> = <span class="Identifier">@tempdir</span> + <span class="Special">&quot;</span><span class="Constant">/stdout</span><span class="Special">&quot;</span>
3517
+ <span class="Identifier">@stdin</span> = <span class="Identifier">@tempdir</span> + <span class="Special">&quot;</span><span class="Constant">/stdin</span><span class="Special">&quot;</span>
3518
+ <span class="Identifier">@stderr</span> = <span class="Identifier">@tempdir</span> + <span class="Special">&quot;</span><span class="Constant">/stderr</span><span class="Special">&quot;</span>
3519
+ <span class="PreProc">end</span>
3520
+
3521
+ end
3427
3522
  end
3523
+
3428
3524
  end
3429
3525
 
3430
3526
  end
@@ -242,6 +242,17 @@ Here is a mix-in that helps writing tests using temporary files and folders:
242
242
 
243
243
  [[lib/olag/test/with_tempfile.rb|named_chunk_with_containers]]
244
244
 
245
+ ### Testing with a temporary directory ###
246
+
247
+ When running external programs, or sometimes even Ruby programs, it is useful
248
+ to have a temporary directory to stuff everything into, which is automatically
249
+ removed when the test is done. The `WithTempfile` module does provide the
250
+ `create_tempdir` function, which we can use; but it is easier to also include
251
+ the `WithTempdir` module, which does this automatically in the `setup` function
252
+ for us, and precomputes up the standard I/O file names as well.
253
+
254
+ [[lib/olag/test/with_tempdir.rb|named_chunk_with_containers]]
255
+
245
256
  ### Testing Rake tasks ###
246
257
 
247
258
  Testing Rake tasks is tricky because tests may be run in the context of Rake.
@@ -0,0 +1,31 @@
1
+ require "olag/test/with_tempfile"
2
+
3
+ module Test
4
+
5
+ # Mix-in for tests that run applications in a temporary directory. This
6
+ # assumes that the test class has already mixed-in the WithTempfile mix-in.
7
+ module WithTempdir
8
+
9
+ # Aliasing methods needs to be deferred to when the module is included and
10
+ # be executed in the context of the class.
11
+ def self.included(base)
12
+ base.class_eval do
13
+
14
+ alias_method :tempdir_original_setup, :setup
15
+
16
+ # Create a temporary directory for the run and percompute the standard
17
+ # I/O file names in it.
18
+ def setup
19
+ tempdir_original_setup
20
+ @tempdir = create_tempdir
21
+ @stdout = @tempdir + "/stdout"
22
+ @stdin = @tempdir + "/stdin"
23
+ @stderr = @tempdir + "/stderr"
24
+ end
25
+
26
+ end
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -1,4 +1,5 @@
1
1
  require "fileutils"
2
+ require "tempfile"
2
3
 
3
4
  module Test
4
5
 
@@ -42,8 +43,8 @@ module Test
42
43
  end
43
44
 
44
45
  end
45
-
46
46
  end
47
+
47
48
  end
48
49
 
49
50
  end
@@ -3,6 +3,6 @@ module Olag
3
3
 
4
4
  # This version number. The third number is automatically updated to track the
5
5
  # number of Git commits by running <tt>rake version</tt>.
6
- VERSION = "0.1.15"
6
+ VERSION = "0.1.16"
7
7
 
8
8
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: olag
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 59
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 15
10
- version: 0.1.15
9
+ - 16
10
+ version: 0.1.16
11
11
  platform: ruby
12
12
  authors:
13
13
  - Oren Ben-Kiki
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-01-07 00:00:00 Z
18
+ date: 2012-01-15 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: Saikuro
@@ -180,6 +180,7 @@ files:
180
180
  - lib/olag/test/with_errors.rb
181
181
  - lib/olag/test/with_fakefs.rb
182
182
  - lib/olag/test/with_rake.rb
183
+ - lib/olag/test/with_tempdir.rb
183
184
  - lib/olag/test/with_tempfile.rb
184
185
  - lib/olag/test.rb
185
186
  - lib/olag/update_version.rb
@@ -202,7 +203,7 @@ licenses: []
202
203
  post_install_message:
203
204
  rdoc_options:
204
205
  - --title
205
- - Olag 0.1.15
206
+ - Olag 0.1.16
206
207
  - --main
207
208
  - README.rdoc
208
209
  - --line-numbers