olag 0.1.15 → 0.1.16

Sign up to get free protection for your applications and to get access to all the features.
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