redpomo 0.0.5 → 0.0.6
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/README.md +17 -14
- data/lib/redpomo/cli.rb +76 -24
- data/lib/redpomo/config.rb +4 -2
- data/lib/redpomo/issue.rb +17 -10
- data/lib/redpomo/task.rb +15 -0
- data/lib/redpomo/task_list.rb +11 -0
- data/lib/redpomo/templates/config.yml +38 -7
- data/lib/redpomo/templates/issue_stub.textile +7 -0
- data/lib/redpomo/tracker.rb +30 -10
- data/lib/redpomo/ui.rb +73 -0
- data/lib/redpomo/version.rb +1 -1
- data/lib/redpomo.rb +6 -11
- data/spec/fixtures/add_results.txt +4 -0
- data/spec/fixtures/cassettes/cli_add.yml +102 -0
- data/spec/fixtures/cassettes/cli_close.yml +10 -11
- data/spec/fixtures/cassettes/create_issue.yml +102 -0
- data/spec/fixtures/cassettes/push_entry.yml +55 -0
- data/spec/fixtures/close_results.txt +1 -1
- data/spec/fixtures/config.yml +16 -0
- data/spec/fixtures/pull_results.txt +5 -5
- data/spec/fixtures/tasks.txt +3 -0
- data/spec/integration/init_spec.rb +38 -0
- data/spec/lib/redpomo/cli_spec.rb +46 -58
- data/spec/lib/redpomo/tracker_spec.rb +37 -3
- data/spec/spec_helper.rb +6 -2
- data/spec/support/cli_helpers.rb +75 -0
- data/spec/support/fixtures.rb +17 -0
- data/spec/support/ruby_ext.rb +20 -0
- data/spec/tmp/REDME.md +0 -0
- metadata +52 -33
- data/lib/redpomo/config_generator.rb +0 -17
- data/lib/redpomo/puller.rb +0 -35
- data/lib/redpomo/pusher.rb +0 -59
- data/spec/support/capture.rb +0 -13
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'stringio'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module CLIHelpers
|
5
|
+
|
6
|
+
attr_reader :out, :err, :exitstatus
|
7
|
+
|
8
|
+
def capture(*streams)
|
9
|
+
streams.map! { |stream| stream.to_s }
|
10
|
+
begin
|
11
|
+
result = StringIO.new
|
12
|
+
streams.each { |stream| eval "$#{stream} = result" }
|
13
|
+
yield
|
14
|
+
ensure
|
15
|
+
streams.each { |stream| eval("$#{stream} = #{stream.upcase}") }
|
16
|
+
end
|
17
|
+
result.string
|
18
|
+
end
|
19
|
+
|
20
|
+
def cli_redpomo(cmd)
|
21
|
+
@out = capture(:stdout) do
|
22
|
+
cmd = cmd.kind_of?(Array) ? cmd : cmd.split
|
23
|
+
cmd += "--config #{config_path}".split
|
24
|
+
Redpomo::CLI.start(cmd)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def redpomo(cmd, options = {})
|
29
|
+
expect_err = options.delete(:expect_err)
|
30
|
+
exitstatus = options.delete(:exitstatus)
|
31
|
+
options["no-color"] = true unless options.key?("no-color")
|
32
|
+
|
33
|
+
redpomo_bin = File.expand_path('../../../bin/redpomo', __FILE__)
|
34
|
+
|
35
|
+
env = (options.delete(:env) || {}).map{|k,v| "#{k}='#{v}' "}.join
|
36
|
+
args = options.map do |k,v|
|
37
|
+
v == true ? " --#{k}" : " --#{k} #{v}" if v
|
38
|
+
end.join
|
39
|
+
|
40
|
+
cmd = "#{env}#{Gem.ruby} -I#{lib} #{redpomo_bin} #{cmd}#{args}"
|
41
|
+
|
42
|
+
if exitstatus
|
43
|
+
sys_status(cmd)
|
44
|
+
else
|
45
|
+
sys_exec(cmd, expect_err){|i| yield i if block_given? }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def sys_exec(cmd, expect_err = false)
|
50
|
+
Open3.popen3(cmd.to_s) do |stdin, stdout, stderr|
|
51
|
+
@in_p, @out_p, @err_p = stdin, stdout, stderr
|
52
|
+
|
53
|
+
yield @in_p if block_given?
|
54
|
+
@in_p.close
|
55
|
+
|
56
|
+
@out = @out_p.read_available_bytes.strip
|
57
|
+
@err = @err_p.read_available_bytes.strip
|
58
|
+
end
|
59
|
+
|
60
|
+
puts @err if !expect_err && @err.present?
|
61
|
+
@out
|
62
|
+
end
|
63
|
+
|
64
|
+
def sys_status(cmd)
|
65
|
+
@err = nil
|
66
|
+
@out = %x{#{cmd}}.strip
|
67
|
+
@exitstatus = $?.exitstatus
|
68
|
+
end
|
69
|
+
|
70
|
+
def lib
|
71
|
+
File.expand_path('../../../lib', __FILE__)
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spec
|
2
|
+
module Fixtures
|
3
|
+
|
4
|
+
def tmp(path)
|
5
|
+
File.expand_path("../../tmp/#{path}", __FILE__)
|
6
|
+
end
|
7
|
+
|
8
|
+
def fixture(path)
|
9
|
+
File.expand_path("../../fixtures/#{path}", __FILE__)
|
10
|
+
end
|
11
|
+
|
12
|
+
def read_fixture(path)
|
13
|
+
File.read fixture(path)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class IO
|
2
|
+
def read_available_bytes(chunk_size = 16384, select_timeout = 0.02)
|
3
|
+
buffer = []
|
4
|
+
|
5
|
+
return "" if closed? || eof?
|
6
|
+
# IO.select cannot be used here due to the fact that it
|
7
|
+
# just does not work on windows
|
8
|
+
while true
|
9
|
+
begin
|
10
|
+
IO.select([self], nil, nil, select_timeout)
|
11
|
+
break if eof? # stop raising :-(
|
12
|
+
buffer << self.readpartial(chunk_size)
|
13
|
+
rescue(EOFError)
|
14
|
+
break
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
return buffer.join
|
19
|
+
end
|
20
|
+
end
|
data/spec/tmp/REDME.md
ADDED
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redpomo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &70342270308260 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70342270308260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: thor
|
27
|
-
requirement: &
|
27
|
+
requirement: &70342270307840 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70342270307840
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: todo-txt
|
38
|
-
requirement: &
|
38
|
+
requirement: &70342270307420 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70342270307420
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rest-client
|
49
|
-
requirement: &
|
49
|
+
requirement: &70342270307000 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70342270307000
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: launchy
|
60
|
-
requirement: &
|
60
|
+
requirement: &70342270306580 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70342270306580
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: applescript
|
71
|
-
requirement: &
|
71
|
+
requirement: &70342270306160 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70342270306160
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: terminal-table
|
82
|
-
requirement: &
|
82
|
+
requirement: &70342270305740 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70342270305740
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rspec
|
93
|
-
requirement: &
|
93
|
+
requirement: &70342270305320 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70342270305320
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: vcr
|
104
|
-
requirement: &
|
104
|
+
requirement: &70342270304900 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70342270304900
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: webmock
|
115
|
-
requirement: &
|
115
|
+
requirement: &70342270304480 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *70342270304480
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: mocha
|
126
|
-
requirement: &
|
126
|
+
requirement: &70342270320440 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *70342270320440
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: simplecov
|
137
|
-
requirement: &
|
137
|
+
requirement: &70342270320020 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '0'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *70342270320020
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: rake
|
148
|
-
requirement: &
|
148
|
+
requirement: &70342270319600 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
version: '0'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *70342270319600
|
157
157
|
description: A nice little gem that integrates Redmine, Todo.txt and Pomodoro.app
|
158
158
|
email:
|
159
159
|
- stefano.verna@welaika.com
|
@@ -173,7 +173,6 @@ files:
|
|
173
173
|
- lib/redpomo.rb
|
174
174
|
- lib/redpomo/cli.rb
|
175
175
|
- lib/redpomo/config.rb
|
176
|
-
- lib/redpomo/config_generator.rb
|
177
176
|
- lib/redpomo/entries_printer.rb
|
178
177
|
- lib/redpomo/entry.rb
|
179
178
|
- lib/redpomo/file_cache.rb
|
@@ -181,30 +180,40 @@ files:
|
|
181
180
|
- lib/redpomo/issue.rb
|
182
181
|
- lib/redpomo/null_cache.rb
|
183
182
|
- lib/redpomo/numeric_ext.rb
|
184
|
-
- lib/redpomo/puller.rb
|
185
|
-
- lib/redpomo/pusher.rb
|
186
183
|
- lib/redpomo/task.rb
|
187
184
|
- lib/redpomo/task_list.rb
|
188
185
|
- lib/redpomo/templates/config.yml
|
186
|
+
- lib/redpomo/templates/issue_stub.textile
|
189
187
|
- lib/redpomo/tracker.rb
|
188
|
+
- lib/redpomo/ui.rb
|
190
189
|
- lib/redpomo/version.rb
|
191
190
|
- redpomo.gemspec
|
192
191
|
- spec/file_cache_spec.rb
|
192
|
+
- spec/fixtures/add_results.txt
|
193
|
+
- spec/fixtures/cassettes/cli_add.yml
|
193
194
|
- spec/fixtures/cassettes/cli_close.yml
|
194
195
|
- spec/fixtures/cassettes/cli_pull.yml
|
195
196
|
- spec/fixtures/cassettes/cli_push.yml
|
196
197
|
- spec/fixtures/cassettes/close_issue.yml
|
198
|
+
- spec/fixtures/cassettes/create_issue.yml
|
197
199
|
- spec/fixtures/cassettes/issues.yml
|
200
|
+
- spec/fixtures/cassettes/push_entry.yml
|
198
201
|
- spec/fixtures/close_results.txt
|
202
|
+
- spec/fixtures/config.yml
|
199
203
|
- spec/fixtures/printer_output.txt
|
200
204
|
- spec/fixtures/pull_results.txt
|
205
|
+
- spec/fixtures/tasks.txt
|
201
206
|
- spec/fixtures/timelog.csv
|
207
|
+
- spec/integration/init_spec.rb
|
202
208
|
- spec/lib/redpomo/cli_spec.rb
|
203
209
|
- spec/lib/redpomo/fuzzy_converter_spec.rb
|
204
210
|
- spec/lib/redpomo/task_spec.rb
|
205
211
|
- spec/lib/redpomo/tracker_spec.rb
|
206
212
|
- spec/spec_helper.rb
|
207
|
-
- spec/support/
|
213
|
+
- spec/support/cli_helpers.rb
|
214
|
+
- spec/support/fixtures.rb
|
215
|
+
- spec/support/ruby_ext.rb
|
216
|
+
- spec/tmp/REDME.md
|
208
217
|
homepage: ''
|
209
218
|
licenses: []
|
210
219
|
post_install_message:
|
@@ -231,19 +240,29 @@ specification_version: 3
|
|
231
240
|
summary: A nice little gem that integrates Redmine, Todo.txt and Pomodoro.app
|
232
241
|
test_files:
|
233
242
|
- spec/file_cache_spec.rb
|
243
|
+
- spec/fixtures/add_results.txt
|
244
|
+
- spec/fixtures/cassettes/cli_add.yml
|
234
245
|
- spec/fixtures/cassettes/cli_close.yml
|
235
246
|
- spec/fixtures/cassettes/cli_pull.yml
|
236
247
|
- spec/fixtures/cassettes/cli_push.yml
|
237
248
|
- spec/fixtures/cassettes/close_issue.yml
|
249
|
+
- spec/fixtures/cassettes/create_issue.yml
|
238
250
|
- spec/fixtures/cassettes/issues.yml
|
251
|
+
- spec/fixtures/cassettes/push_entry.yml
|
239
252
|
- spec/fixtures/close_results.txt
|
253
|
+
- spec/fixtures/config.yml
|
240
254
|
- spec/fixtures/printer_output.txt
|
241
255
|
- spec/fixtures/pull_results.txt
|
256
|
+
- spec/fixtures/tasks.txt
|
242
257
|
- spec/fixtures/timelog.csv
|
258
|
+
- spec/integration/init_spec.rb
|
243
259
|
- spec/lib/redpomo/cli_spec.rb
|
244
260
|
- spec/lib/redpomo/fuzzy_converter_spec.rb
|
245
261
|
- spec/lib/redpomo/task_spec.rb
|
246
262
|
- spec/lib/redpomo/tracker_spec.rb
|
247
263
|
- spec/spec_helper.rb
|
248
|
-
- spec/support/
|
264
|
+
- spec/support/cli_helpers.rb
|
265
|
+
- spec/support/fixtures.rb
|
266
|
+
- spec/support/ruby_ext.rb
|
267
|
+
- spec/tmp/REDME.md
|
249
268
|
has_rdoc:
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'thor/group'
|
2
|
-
|
3
|
-
module Redpomo
|
4
|
-
class ConfigGenerator < Thor::Group
|
5
|
-
include Thor::Actions
|
6
|
-
argument :path, :type => :string
|
7
|
-
|
8
|
-
def copy_config
|
9
|
-
template("config.yml", File.expand_path(path))
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.source_root
|
13
|
-
File.dirname(__FILE__) + "/templates"
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
data/lib/redpomo/puller.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'redpomo/config'
|
2
|
-
|
3
|
-
module Redpomo
|
4
|
-
class Puller
|
5
|
-
|
6
|
-
def initialize(options = {})
|
7
|
-
@options = options
|
8
|
-
end
|
9
|
-
|
10
|
-
def execute
|
11
|
-
list = Todo::List.new(
|
12
|
-
config.issues.map(&:to_task) +
|
13
|
-
unrelated_tasks
|
14
|
-
)
|
15
|
-
list.write_to(config.todo_path)
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def config
|
21
|
-
@config ||= Redpomo::Config.new(@options[:config])
|
22
|
-
end
|
23
|
-
|
24
|
-
def trackers_contexts
|
25
|
-
@trackers_context ||= config.trackers.map(&:context)
|
26
|
-
end
|
27
|
-
|
28
|
-
def unrelated_tasks
|
29
|
-
config.tasks.select do |task|
|
30
|
-
! task.include_contexts?(trackers_contexts)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
end
|
data/lib/redpomo/pusher.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'terminal-table'
|
2
|
-
|
3
|
-
require 'redpomo/entry'
|
4
|
-
require 'redpomo/config'
|
5
|
-
|
6
|
-
module Redpomo
|
7
|
-
class Pusher
|
8
|
-
|
9
|
-
def initialize(log_path, options = {})
|
10
|
-
@options = options
|
11
|
-
@log_path = File.expand_path(log_path)
|
12
|
-
end
|
13
|
-
|
14
|
-
def execute
|
15
|
-
entries_to_push = @options[:fuzzy] ? fuzzy_entries : entries
|
16
|
-
|
17
|
-
unless @options[:dry_run]
|
18
|
-
entries_to_push.each do |entry|
|
19
|
-
tracker = config.tracker_for_task(entry.to_task)
|
20
|
-
tracker.push_entry(entry)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
entries_to_push.group_by(&:date).each do |date, entries|
|
25
|
-
duration = 0
|
26
|
-
rows = entries.map do |entry|
|
27
|
-
task = entry.to_task
|
28
|
-
duration += entry.duration
|
29
|
-
[ task.contexts.first, task.projects.first, task.issues.first, task.text, entry.duration.seconds_in_words, I18n.l(entry.time, format: "%H:%M"), I18n.l(entry.end_time, :format => "%H:%M") ]
|
30
|
-
end
|
31
|
-
puts Terminal::Table.new(
|
32
|
-
title: "#{ I18n.l(date, format: "%A %x") } - #{ duration.seconds_in_words }",
|
33
|
-
headings: [ "Context", "Project", "Issue #", "Description", "Duration", "From", "To" ],
|
34
|
-
rows: rows
|
35
|
-
)
|
36
|
-
puts
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
def config
|
44
|
-
@config ||= Redpomo::Config.new(@options[:config])
|
45
|
-
end
|
46
|
-
|
47
|
-
def entries
|
48
|
-
@entries ||= raw_log.map do |line_data|
|
49
|
-
Entry.from_csv(line_data)
|
50
|
-
end.sort_by { |entry| entry.datetime }
|
51
|
-
end
|
52
|
-
|
53
|
-
def raw_log
|
54
|
-
CSV.parse File.read(@log_path).split("\n")[4..-1].join("\n")
|
55
|
-
end
|
56
|
-
|
57
|
-
|
58
|
-
end
|
59
|
-
end
|
data/spec/support/capture.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
|
3
|
-
def capture(*streams)
|
4
|
-
streams.map! { |stream| stream.to_s }
|
5
|
-
begin
|
6
|
-
result = StringIO.new
|
7
|
-
streams.each { |stream| eval "$#{stream} = result" }
|
8
|
-
yield
|
9
|
-
ensure
|
10
|
-
streams.each { |stream| eval("$#{stream} = #{stream.upcase}") }
|
11
|
-
end
|
12
|
-
result.string
|
13
|
-
end
|