testowl 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,49 @@
1
+ # Teeio has two approaches to capturing output and this single class
2
+ # attempts to do both - smudged, wedged and shoved into one. The problem
3
+ # we're solving here is how to get the output from the tests streamed to
4
+ # stdout while still being able to capture the output for analysis.
5
+ # Doing a simple backtick means that we're not able to provide feedback
6
+ # on progress until the tests are finished.
7
+ #
8
+ # If you call run then it will pipe the ouput, via tee, to a temporary
9
+ # file and then read that file to get the output.
10
+ #
11
+ # You can also pass an instance of this class for objects that expect
12
+ # stdio and it will probably work, in a duck-typing fashion. At least,
13
+ # it works with Spork - which is what we're interested in.
14
+ module TestOwl
15
+ class Teeio
16
+
17
+ def initialize
18
+ @results = []
19
+ @file = Tempfile.new('testowl')
20
+ end
21
+
22
+ def run(command)
23
+ system("#{command} | tee #{@file.path}")
24
+ end
25
+
26
+ def write(buf)
27
+ @results << buf
28
+ $stdout.write buf
29
+ end
30
+
31
+ def puts(buf)
32
+ @results << buf
33
+ $stdout.puts buf
34
+ end
35
+
36
+ def flush
37
+ $stdout.flush
38
+ end
39
+
40
+ def output
41
+ if @results.size == 0
42
+ IO.read(@file.path)
43
+ else
44
+ @results.join
45
+ end
46
+ end
47
+
48
+ end
49
+ end
@@ -1,3 +1,3 @@
1
1
  module Testowl
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/testowl.gemspec CHANGED
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
28
28
  "lib/testowl/growl.rb",
29
29
  "lib/testowl/monitor.rb",
30
30
  "lib/testowl/rspec_runner.rb",
31
+ "lib/testowl/teeio.rb",
31
32
  "lib/testowl/test_unit_runner.rb",
32
33
  "lib/testowl/tester.rb",
33
34
  "lib/testowl/version.rb",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testowl
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bill Horsman
@@ -68,6 +68,7 @@ files:
68
68
  - lib/testowl/growl.rb
69
69
  - lib/testowl/monitor.rb
70
70
  - lib/testowl/rspec_runner.rb
71
+ - lib/testowl/teeio.rb
71
72
  - lib/testowl/test_unit_runner.rb
72
73
  - lib/testowl/tester.rb
73
74
  - lib/testowl/version.rb