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.
Files changed (38) hide show
  1. data/README.md +3 -3
  2. data/app/assets/javascripts/rakeleak/tasks.js +19 -12
  3. data/app/assets/stylesheets/rakeleak/tasks.css +16 -4
  4. data/app/controllers/rakeleak/tasks_controller.rb +4 -6
  5. data/app/views/rakeleak/tasks/_arg.html.erb +1 -0
  6. data/app/views/rakeleak/tasks/_task.html.erb +11 -5
  7. data/lib/rakeleak/version.rb +1 -1
  8. data/lib/rakeleak.rb +14 -1
  9. data/test/dummy/lib/tasks/with_args.rake +6 -0
  10. data/test/dummy/log/development.log +10836 -0
  11. data/test/dummy/log/test.log +6424 -0
  12. data/test/functional/rakeleak/tasks_controller_test.rb +17 -6
  13. data/test/rakeleak_test.rb +35 -2
  14. metadata +5 -50
  15. data/test/dummy/tmp/cache/assets/C5E/440/sprockets%2Fba31529ca20206e11215433ee169332b +0 -0
  16. data/test/dummy/tmp/cache/assets/C9B/4A0/sprockets%2F798d65ca17a72755d92723797da97d24 +0 -0
  17. data/test/dummy/tmp/cache/assets/CB9/3A0/sprockets%2F16a64c486f8333fe04529e91e5a6635b +0 -0
  18. data/test/dummy/tmp/cache/assets/CE8/240/sprockets%2F777dce4d696645611f0ae85347dc00b7 +0 -0
  19. data/test/dummy/tmp/cache/assets/CEE/A10/sprockets%2F5f66bc32b0a17ed0847c99b4747989c0 +0 -0
  20. data/test/dummy/tmp/cache/assets/CEF/D60/sprockets%2F8ce62194b0c88c58b75f30703867fbc7 +0 -0
  21. data/test/dummy/tmp/cache/assets/D02/6E0/sprockets%2F5db2ebf4409582ca15d8da402374e431 +0 -0
  22. data/test/dummy/tmp/cache/assets/D0D/370/sprockets%2Feda0592655569205d3738f32c4bdadf0 +0 -0
  23. data/test/dummy/tmp/cache/assets/D27/240/sprockets%2Fd28e9af8999b4f679b650105a606b9bf +0 -0
  24. data/test/dummy/tmp/cache/assets/D7B/DD0/sprockets%2F6f2905cdb5eed396c60140fbe94c9e66 +0 -0
  25. data/test/dummy/tmp/cache/assets/D8B/7C0/sprockets%2F5ef63b3be3860b7a1d2f1edbd1b08025 +0 -0
  26. data/test/dummy/tmp/cache/assets/D91/470/sprockets%2F80012ff0ade705b8eed3f36fa5ed5121 +0 -0
  27. data/test/dummy/tmp/cache/assets/D9C/D90/sprockets%2F383b39d58a0ed61af597d1ebdd2e01e5 +0 -0
  28. data/test/dummy/tmp/cache/assets/D9E/9F0/sprockets%2F3f8503a3d9bfee0922e881e8a32fccb2 +0 -0
  29. data/test/dummy/tmp/cache/assets/DB1/A30/sprockets%2F2cfcbef803fb9c40270c8846f6f983ef +0 -0
  30. data/test/dummy/tmp/cache/assets/DC5/D40/sprockets%2F7cf78f2e7bf164a14df03fcd0d0bd900 +0 -0
  31. data/test/dummy/tmp/cache/assets/DC8/880/sprockets%2F2ecbee3d3fdfbc150f65064a19ed9225 +0 -0
  32. data/test/dummy/tmp/cache/assets/DC9/730/sprockets%2F09cb8bd8fb2b5a925a9ef047cac34a53 +0 -0
  33. data/test/dummy/tmp/cache/assets/DD4/990/sprockets%2F2f127f8c0ebf8d16939a0efc14fe09ec +0 -0
  34. data/test/dummy/tmp/cache/assets/DDB/EA0/sprockets%2F2395acf962c33e59dc8655cafeab8e3d +0 -0
  35. data/test/dummy/tmp/cache/assets/DEA/BE0/sprockets%2F352f037cde13c0e2e244d1dcaa5fde6c +0 -0
  36. data/test/dummy/tmp/cache/assets/DEB/510/sprockets%2F99aed1df3af79a258def18d7db49993c +0 -0
  37. data/test/dummy/tmp/cache/assets/E29/770/sprockets%2F3f8c60e8d26acb84da06d9aaac3cc7e5 +0 -0
  38. 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 = 'simple'
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 = 'error'
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 = 'error'
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['error']
44
- assert_equal message, json['error']['msg']
45
- assert_not_nil json['error']['stacktrace']
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
@@ -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 = 'simple'
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 = 'exception'
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.1.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-10 00:00:00.000000000 Z
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