rakeleak 0.1.0 → 0.2.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.
- data/README.md +3 -3
- data/app/assets/javascripts/rakeleak/tasks.js +19 -12
- data/app/assets/stylesheets/rakeleak/tasks.css +16 -4
- data/app/controllers/rakeleak/tasks_controller.rb +4 -6
- data/app/views/rakeleak/tasks/_arg.html.erb +1 -0
- data/app/views/rakeleak/tasks/_task.html.erb +11 -5
- data/lib/rakeleak/version.rb +1 -1
- data/lib/rakeleak.rb +14 -1
- data/test/dummy/lib/tasks/with_args.rake +6 -0
- data/test/dummy/log/development.log +10836 -0
- data/test/dummy/log/test.log +6424 -0
- data/test/functional/rakeleak/tasks_controller_test.rb +17 -6
- data/test/rakeleak_test.rb +35 -2
- metadata +5 -50
- data/test/dummy/tmp/cache/assets/C5E/440/sprockets%2Fba31529ca20206e11215433ee169332b +0 -0
- data/test/dummy/tmp/cache/assets/C9B/4A0/sprockets%2F798d65ca17a72755d92723797da97d24 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/3A0/sprockets%2F16a64c486f8333fe04529e91e5a6635b +0 -0
- data/test/dummy/tmp/cache/assets/CE8/240/sprockets%2F777dce4d696645611f0ae85347dc00b7 +0 -0
- data/test/dummy/tmp/cache/assets/CEE/A10/sprockets%2F5f66bc32b0a17ed0847c99b4747989c0 +0 -0
- data/test/dummy/tmp/cache/assets/CEF/D60/sprockets%2F8ce62194b0c88c58b75f30703867fbc7 +0 -0
- data/test/dummy/tmp/cache/assets/D02/6E0/sprockets%2F5db2ebf4409582ca15d8da402374e431 +0 -0
- data/test/dummy/tmp/cache/assets/D0D/370/sprockets%2Feda0592655569205d3738f32c4bdadf0 +0 -0
- data/test/dummy/tmp/cache/assets/D27/240/sprockets%2Fd28e9af8999b4f679b650105a606b9bf +0 -0
- data/test/dummy/tmp/cache/assets/D7B/DD0/sprockets%2F6f2905cdb5eed396c60140fbe94c9e66 +0 -0
- data/test/dummy/tmp/cache/assets/D8B/7C0/sprockets%2F5ef63b3be3860b7a1d2f1edbd1b08025 +0 -0
- data/test/dummy/tmp/cache/assets/D91/470/sprockets%2F80012ff0ade705b8eed3f36fa5ed5121 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/D90/sprockets%2F383b39d58a0ed61af597d1ebdd2e01e5 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/9F0/sprockets%2F3f8503a3d9bfee0922e881e8a32fccb2 +0 -0
- data/test/dummy/tmp/cache/assets/DB1/A30/sprockets%2F2cfcbef803fb9c40270c8846f6f983ef +0 -0
- data/test/dummy/tmp/cache/assets/DC5/D40/sprockets%2F7cf78f2e7bf164a14df03fcd0d0bd900 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/880/sprockets%2F2ecbee3d3fdfbc150f65064a19ed9225 +0 -0
- data/test/dummy/tmp/cache/assets/DC9/730/sprockets%2F09cb8bd8fb2b5a925a9ef047cac34a53 +0 -0
- data/test/dummy/tmp/cache/assets/DD4/990/sprockets%2F2f127f8c0ebf8d16939a0efc14fe09ec +0 -0
- data/test/dummy/tmp/cache/assets/DDB/EA0/sprockets%2F2395acf962c33e59dc8655cafeab8e3d +0 -0
- data/test/dummy/tmp/cache/assets/DEA/BE0/sprockets%2F352f037cde13c0e2e244d1dcaa5fde6c +0 -0
- data/test/dummy/tmp/cache/assets/DEB/510/sprockets%2F99aed1df3af79a258def18d7db49993c +0 -0
- data/test/dummy/tmp/cache/assets/E29/770/sprockets%2F3f8c60e8d26acb84da06d9aaac3cc7e5 +0 -0
- data/test/dummy/tmp/cache/assets/E5A/A10/sprockets%2Ff9ffe2fc2fc392bab3c1361efae80ad6 +0 -0
@@ -16,7 +16,7 @@ module Rakeleak
|
|
16
16
|
end
|
17
17
|
|
18
18
|
test 'run task' do
|
19
|
-
name =
|
19
|
+
name = :simple
|
20
20
|
done = false
|
21
21
|
Rake::Task.tasks << task(name) {|_| done = true }
|
22
22
|
|
@@ -26,7 +26,7 @@ module Rakeleak
|
|
26
26
|
end
|
27
27
|
|
28
28
|
test 'return forbidden status if task failed' do
|
29
|
-
name =
|
29
|
+
name = :error
|
30
30
|
Rake::Task.tasks << task(name) {|_| raise 'boom!' }
|
31
31
|
|
32
32
|
post :run, id: name, format: :json
|
@@ -34,15 +34,26 @@ module Rakeleak
|
|
34
34
|
end
|
35
35
|
|
36
36
|
test 'return error description if task failed' do
|
37
|
-
name =
|
37
|
+
name = :error
|
38
38
|
message = 'boom!'
|
39
39
|
Rake::Task.tasks << task(name) {|_| raise message }
|
40
40
|
|
41
41
|
post :run, id: name, format: :json
|
42
42
|
json = JSON.parse(response.body)
|
43
|
-
assert_not_nil json['
|
44
|
-
assert_equal message, json['
|
45
|
-
assert_not_nil json['
|
43
|
+
assert_not_nil json['msg']
|
44
|
+
assert_equal message, json['msg']
|
45
|
+
assert_not_nil json['stacktrace']
|
46
|
+
end
|
47
|
+
|
48
|
+
test 'return task output if any' do
|
49
|
+
name = :puts
|
50
|
+
message = 'boom!'
|
51
|
+
Rake::Task.tasks << task(name) {|_| puts message }
|
52
|
+
|
53
|
+
post :run, id: name, format: :json
|
54
|
+
json = JSON.parse(response.body)
|
55
|
+
assert_not_nil json['output']
|
56
|
+
assert_equal "#{message}\n", json['output']
|
46
57
|
end
|
47
58
|
end
|
48
59
|
end
|
data/test/rakeleak_test.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
require 'ostruct'
|
2
3
|
|
3
4
|
class RakeleakTest < ActiveSupport::TestCase
|
4
5
|
include Rake::DSL
|
@@ -9,15 +10,47 @@ class RakeleakTest < ActiveSupport::TestCase
|
|
9
10
|
end
|
10
11
|
|
11
12
|
test 'running existing task' do
|
12
|
-
name =
|
13
|
+
name = :simple
|
13
14
|
Rake::Task.tasks << task(name) {|_| 'eval this string and stop' }
|
14
15
|
assert_nothing_raised { Rakeleak.run(name) }
|
15
16
|
end
|
16
17
|
|
17
18
|
test 'running existing task throwing exception' do
|
18
|
-
name =
|
19
|
+
name = :exception
|
19
20
|
message = 'simple exception'
|
20
21
|
Rake::Task.tasks << task(name) {|_| raise message }
|
21
22
|
assert_raise(RuntimeError) { Rakeleak.run(name) }
|
22
23
|
end
|
24
|
+
|
25
|
+
test '::capture_stdout captures simple output by $stdout.puts' do
|
26
|
+
message = 'Hello, World'
|
27
|
+
out = Rakeleak.capture_stdout { puts message }
|
28
|
+
assert_equal "#{message}\n", out
|
29
|
+
end
|
30
|
+
|
31
|
+
test '::capture_stdout captures any output by $stdout.puts' do
|
32
|
+
numbers = [1,2,3]
|
33
|
+
out = Rakeleak.capture_stdout { numbers.each {|number| puts number } }
|
34
|
+
assert_equal "#{numbers.join("\n")}\n", out
|
35
|
+
end
|
36
|
+
|
37
|
+
test '::capture_stdout captures output by p' do
|
38
|
+
object = OpenStruct.new
|
39
|
+
object.x, object.y = 1, 2
|
40
|
+
out = Rakeleak.capture_stdout { p object }
|
41
|
+
assert_equal "#{object}\n", out
|
42
|
+
end
|
43
|
+
|
44
|
+
test '::capture_stdout returns nothing if there is no output to stdout' do
|
45
|
+
assert_equal '', Rakeleak.capture_stdout { true }
|
46
|
+
end
|
47
|
+
|
48
|
+
test '::capture_stdout returns nothing if there is no block given' do
|
49
|
+
assert_equal '', Rakeleak.capture_stdout
|
50
|
+
end
|
51
|
+
|
52
|
+
test '::capture_stdout throws an exception from block' do
|
53
|
+
assert_raise(RuntimeError) { Rakeleak.capture_stdout { raise 'any exception' } }
|
54
|
+
end
|
55
|
+
|
23
56
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rakeleak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- app/controllers/rakeleak/application_controller.rb
|
90
90
|
- app/controllers/rakeleak/tasks_controller.rb
|
91
91
|
- app/views/layouts/rakeleak/application.html.erb
|
92
|
+
- app/views/rakeleak/tasks/_arg.html.erb
|
92
93
|
- app/views/rakeleak/tasks/_task.html.erb
|
93
94
|
- app/views/rakeleak/tasks/index.html.erb
|
94
95
|
- config/routes.rb
|
@@ -125,6 +126,7 @@ files:
|
|
125
126
|
- test/dummy/lib/tasks/simple.rake
|
126
127
|
- test/dummy/lib/tasks/timerror.rake
|
127
128
|
- test/dummy/lib/tasks/wait_3_sec.rake
|
129
|
+
- test/dummy/lib/tasks/with_args.rake
|
128
130
|
- test/dummy/log/development.log
|
129
131
|
- test/dummy/log/test.log
|
130
132
|
- test/dummy/public/404.html
|
@@ -134,30 +136,6 @@ files:
|
|
134
136
|
- test/dummy/Rakefile
|
135
137
|
- test/dummy/README.rdoc
|
136
138
|
- test/dummy/script/rails
|
137
|
-
- test/dummy/tmp/cache/assets/C5E/440/sprockets%2Fba31529ca20206e11215433ee169332b
|
138
|
-
- test/dummy/tmp/cache/assets/C9B/4A0/sprockets%2F798d65ca17a72755d92723797da97d24
|
139
|
-
- test/dummy/tmp/cache/assets/CB9/3A0/sprockets%2F16a64c486f8333fe04529e91e5a6635b
|
140
|
-
- test/dummy/tmp/cache/assets/CE8/240/sprockets%2F777dce4d696645611f0ae85347dc00b7
|
141
|
-
- test/dummy/tmp/cache/assets/CEE/A10/sprockets%2F5f66bc32b0a17ed0847c99b4747989c0
|
142
|
-
- test/dummy/tmp/cache/assets/CEF/D60/sprockets%2F8ce62194b0c88c58b75f30703867fbc7
|
143
|
-
- test/dummy/tmp/cache/assets/D02/6E0/sprockets%2F5db2ebf4409582ca15d8da402374e431
|
144
|
-
- test/dummy/tmp/cache/assets/D0D/370/sprockets%2Feda0592655569205d3738f32c4bdadf0
|
145
|
-
- test/dummy/tmp/cache/assets/D27/240/sprockets%2Fd28e9af8999b4f679b650105a606b9bf
|
146
|
-
- test/dummy/tmp/cache/assets/D7B/DD0/sprockets%2F6f2905cdb5eed396c60140fbe94c9e66
|
147
|
-
- test/dummy/tmp/cache/assets/D8B/7C0/sprockets%2F5ef63b3be3860b7a1d2f1edbd1b08025
|
148
|
-
- test/dummy/tmp/cache/assets/D91/470/sprockets%2F80012ff0ade705b8eed3f36fa5ed5121
|
149
|
-
- test/dummy/tmp/cache/assets/D9C/D90/sprockets%2F383b39d58a0ed61af597d1ebdd2e01e5
|
150
|
-
- test/dummy/tmp/cache/assets/D9E/9F0/sprockets%2F3f8503a3d9bfee0922e881e8a32fccb2
|
151
|
-
- test/dummy/tmp/cache/assets/DB1/A30/sprockets%2F2cfcbef803fb9c40270c8846f6f983ef
|
152
|
-
- test/dummy/tmp/cache/assets/DC5/D40/sprockets%2F7cf78f2e7bf164a14df03fcd0d0bd900
|
153
|
-
- test/dummy/tmp/cache/assets/DC8/880/sprockets%2F2ecbee3d3fdfbc150f65064a19ed9225
|
154
|
-
- test/dummy/tmp/cache/assets/DC9/730/sprockets%2F09cb8bd8fb2b5a925a9ef047cac34a53
|
155
|
-
- test/dummy/tmp/cache/assets/DD4/990/sprockets%2F2f127f8c0ebf8d16939a0efc14fe09ec
|
156
|
-
- test/dummy/tmp/cache/assets/DDB/EA0/sprockets%2F2395acf962c33e59dc8655cafeab8e3d
|
157
|
-
- test/dummy/tmp/cache/assets/DEA/BE0/sprockets%2F352f037cde13c0e2e244d1dcaa5fde6c
|
158
|
-
- test/dummy/tmp/cache/assets/DEB/510/sprockets%2F99aed1df3af79a258def18d7db49993c
|
159
|
-
- test/dummy/tmp/cache/assets/E29/770/sprockets%2F3f8c60e8d26acb84da06d9aaac3cc7e5
|
160
|
-
- test/dummy/tmp/cache/assets/E5A/A10/sprockets%2Ff9ffe2fc2fc392bab3c1361efae80ad6
|
161
139
|
- test/functional/rakeleak/tasks_controller_test.rb
|
162
140
|
- test/integration/navigation_test.rb
|
163
141
|
- test/rakeleak_test.rb
|
@@ -214,6 +192,7 @@ test_files:
|
|
214
192
|
- test/dummy/lib/tasks/simple.rake
|
215
193
|
- test/dummy/lib/tasks/timerror.rake
|
216
194
|
- test/dummy/lib/tasks/wait_3_sec.rake
|
195
|
+
- test/dummy/lib/tasks/with_args.rake
|
217
196
|
- test/dummy/log/development.log
|
218
197
|
- test/dummy/log/test.log
|
219
198
|
- test/dummy/public/404.html
|
@@ -223,30 +202,6 @@ test_files:
|
|
223
202
|
- test/dummy/Rakefile
|
224
203
|
- test/dummy/README.rdoc
|
225
204
|
- test/dummy/script/rails
|
226
|
-
- test/dummy/tmp/cache/assets/C5E/440/sprockets%2Fba31529ca20206e11215433ee169332b
|
227
|
-
- test/dummy/tmp/cache/assets/C9B/4A0/sprockets%2F798d65ca17a72755d92723797da97d24
|
228
|
-
- test/dummy/tmp/cache/assets/CB9/3A0/sprockets%2F16a64c486f8333fe04529e91e5a6635b
|
229
|
-
- test/dummy/tmp/cache/assets/CE8/240/sprockets%2F777dce4d696645611f0ae85347dc00b7
|
230
|
-
- test/dummy/tmp/cache/assets/CEE/A10/sprockets%2F5f66bc32b0a17ed0847c99b4747989c0
|
231
|
-
- test/dummy/tmp/cache/assets/CEF/D60/sprockets%2F8ce62194b0c88c58b75f30703867fbc7
|
232
|
-
- test/dummy/tmp/cache/assets/D02/6E0/sprockets%2F5db2ebf4409582ca15d8da402374e431
|
233
|
-
- test/dummy/tmp/cache/assets/D0D/370/sprockets%2Feda0592655569205d3738f32c4bdadf0
|
234
|
-
- test/dummy/tmp/cache/assets/D27/240/sprockets%2Fd28e9af8999b4f679b650105a606b9bf
|
235
|
-
- test/dummy/tmp/cache/assets/D7B/DD0/sprockets%2F6f2905cdb5eed396c60140fbe94c9e66
|
236
|
-
- test/dummy/tmp/cache/assets/D8B/7C0/sprockets%2F5ef63b3be3860b7a1d2f1edbd1b08025
|
237
|
-
- test/dummy/tmp/cache/assets/D91/470/sprockets%2F80012ff0ade705b8eed3f36fa5ed5121
|
238
|
-
- test/dummy/tmp/cache/assets/D9C/D90/sprockets%2F383b39d58a0ed61af597d1ebdd2e01e5
|
239
|
-
- test/dummy/tmp/cache/assets/D9E/9F0/sprockets%2F3f8503a3d9bfee0922e881e8a32fccb2
|
240
|
-
- test/dummy/tmp/cache/assets/DB1/A30/sprockets%2F2cfcbef803fb9c40270c8846f6f983ef
|
241
|
-
- test/dummy/tmp/cache/assets/DC5/D40/sprockets%2F7cf78f2e7bf164a14df03fcd0d0bd900
|
242
|
-
- test/dummy/tmp/cache/assets/DC8/880/sprockets%2F2ecbee3d3fdfbc150f65064a19ed9225
|
243
|
-
- test/dummy/tmp/cache/assets/DC9/730/sprockets%2F09cb8bd8fb2b5a925a9ef047cac34a53
|
244
|
-
- test/dummy/tmp/cache/assets/DD4/990/sprockets%2F2f127f8c0ebf8d16939a0efc14fe09ec
|
245
|
-
- test/dummy/tmp/cache/assets/DDB/EA0/sprockets%2F2395acf962c33e59dc8655cafeab8e3d
|
246
|
-
- test/dummy/tmp/cache/assets/DEA/BE0/sprockets%2F352f037cde13c0e2e244d1dcaa5fde6c
|
247
|
-
- test/dummy/tmp/cache/assets/DEB/510/sprockets%2F99aed1df3af79a258def18d7db49993c
|
248
|
-
- test/dummy/tmp/cache/assets/E29/770/sprockets%2F3f8c60e8d26acb84da06d9aaac3cc7e5
|
249
|
-
- test/dummy/tmp/cache/assets/E5A/A10/sprockets%2Ff9ffe2fc2fc392bab3c1361efae80ad6
|
250
205
|
- test/functional/rakeleak/tasks_controller_test.rb
|
251
206
|
- test/integration/navigation_test.rb
|
252
207
|
- test/rakeleak_test.rb
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|