resque-scheduler-web 0.0.1

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 (84) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +23 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +48 -0
  7. data/Rakefile +2 -0
  8. data/app/controllers/resque_web/plugins/resque_scheduler/delayed_controller.rb +55 -0
  9. data/app/controllers/resque_web/plugins/resque_scheduler/schedules_controller.rb +62 -0
  10. data/app/helpers/resque_web/plugins/resque_scheduler/delayed_helper.rb +11 -0
  11. data/app/helpers/resque_web/plugins/resque_scheduler/schedules_helper.rb +53 -0
  12. data/app/models/resque_web/plugins/resque_scheduler/job_finder/working_job_finder.rb +40 -0
  13. data/app/models/resque_web/plugins/resque_scheduler/job_finder.rb +81 -0
  14. data/app/views/resque_web/plugins/resque_scheduler/delayed/_next_more.erb +23 -0
  15. data/app/views/resque_web/plugins/resque_scheduler/delayed/_search_form.erb +8 -0
  16. data/app/views/resque_web/plugins/resque_scheduler/delayed/index.erb +61 -0
  17. data/app/views/resque_web/plugins/resque_scheduler/delayed/jobs_klass.erb +20 -0
  18. data/app/views/resque_web/plugins/resque_scheduler/delayed/search.erb +72 -0
  19. data/app/views/resque_web/plugins/resque_scheduler/delayed/timestamp.erb +25 -0
  20. data/app/views/resque_web/plugins/resque_scheduler/schedules/index.html.erb +51 -0
  21. data/app/views/resque_web/plugins/resque_scheduler/schedules/requeue-params.erb +23 -0
  22. data/lib/resque/scheduler/web/version.rb +7 -0
  23. data/lib/resque/scheduler/web.rb +6 -0
  24. data/lib/resque_web/plugins/resque_scheduler/engine.rb +49 -0
  25. data/resque-scheduler-web.gemspec +35 -0
  26. data/spec/controllers/delayed_controller_spec.rb +117 -0
  27. data/spec/controllers/schedules_controller_spec.rb +152 -0
  28. data/spec/dummy/README.rdoc +28 -0
  29. data/spec/dummy/Rakefile +7 -0
  30. data/spec/dummy/app/assets/images/.keep +0 -0
  31. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  32. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  33. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  34. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  35. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  36. data/spec/dummy/app/mailers/.keep +0 -0
  37. data/spec/dummy/app/models/.keep +0 -0
  38. data/spec/dummy/app/models/concerns/.keep +0 -0
  39. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  40. data/spec/dummy/bin/bundle +3 -0
  41. data/spec/dummy/bin/rails +4 -0
  42. data/spec/dummy/bin/rake +4 -0
  43. data/spec/dummy/bin/setup +29 -0
  44. data/spec/dummy/config/application.rb +31 -0
  45. data/spec/dummy/config/boot.rb +5 -0
  46. data/spec/dummy/config/database.yml +25 -0
  47. data/spec/dummy/config/environment.rb +5 -0
  48. data/spec/dummy/config/environments/development.rb +42 -0
  49. data/spec/dummy/config/environments/production.rb +83 -0
  50. data/spec/dummy/config/environments/test.rb +43 -0
  51. data/spec/dummy/config/initializers/assets.rb +12 -0
  52. data/spec/dummy/config/initializers/backtrace_silencers.rb +9 -0
  53. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  54. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  55. data/spec/dummy/config/initializers/inflections.rb +16 -0
  56. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  57. data/spec/dummy/config/initializers/session_store.rb +3 -0
  58. data/spec/dummy/config/initializers/wrap_parameters.rb +15 -0
  59. data/spec/dummy/config/locales/en.yml +23 -0
  60. data/spec/dummy/config/routes.rb +3 -0
  61. data/spec/dummy/config/secrets.yml +22 -0
  62. data/spec/dummy/config.ru +4 -0
  63. data/spec/dummy/db/development.sqlite3 +0 -0
  64. data/spec/dummy/db/schema.rb +18 -0
  65. data/spec/dummy/db/test.sqlite3 +0 -0
  66. data/spec/dummy/lib/assets/.keep +0 -0
  67. data/spec/dummy/log/.keep +0 -0
  68. data/spec/dummy/log/development.log +4 -0
  69. data/spec/dummy/log/test.log +56454 -0
  70. data/spec/dummy/public/404.html +67 -0
  71. data/spec/dummy/public/422.html +67 -0
  72. data/spec/dummy/public/500.html +66 -0
  73. data/spec/dummy/public/favicon.ico +0 -0
  74. data/spec/features/navigation_spec.rb +16 -0
  75. data/spec/features/schedules/requeuing_a_job_with_parameters_spec.rb +36 -0
  76. data/spec/features/schedules/scheduled_jobs_page_spec.rb +80 -0
  77. data/spec/models/job_finder/working_job_finder_spec.rb +38 -0
  78. data/spec/models/job_finder_spec.rb +68 -0
  79. data/spec/rails_helper.rb +25 -0
  80. data/spec/routing/delayed_routing_spec.rb +9 -0
  81. data/spec/spec_helper.rb +96 -0
  82. data/spec/support/redis_instance.rb +133 -0
  83. data/spec/support/test_jobs.rb +77 -0
  84. metadata +312 -0
@@ -0,0 +1,133 @@
1
+ # vim:fileencoding=utf-8
2
+ require 'socket'
3
+ require 'timeout'
4
+ require 'fileutils'
5
+
6
+ class RedisInstance
7
+ class << self
8
+ @running = false
9
+ @port = nil
10
+ @pid = nil
11
+ @waiting = false
12
+
13
+ def run_if_needed!
14
+ run! unless @running
15
+ end
16
+
17
+ def run!
18
+ ensure_redis_server_present!
19
+ ensure_pid_directory
20
+ reassign_redis_clients
21
+ start_redis_server
22
+ post_boot_waiting_and_such
23
+
24
+ @running = true
25
+ end
26
+
27
+ def stop!
28
+ $stdout.puts "Sending TERM to Redis (#{pid})..." if $stdout.tty?
29
+ Process.kill('TERM', pid)
30
+
31
+ @port = nil
32
+ @running = false
33
+ @pid = nil
34
+ end
35
+
36
+ private
37
+
38
+ def post_boot_waiting_and_such
39
+ wait_for_pid
40
+ puts "Booted isolated Redis on #{port} with PID #{pid}."
41
+
42
+ wait_for_redis_boot
43
+
44
+ # Ensure we tear down Redis on Ctrl+C / test failure.
45
+ at_exit { stop! }
46
+ end
47
+
48
+ def ensure_redis_server_present!
49
+ unless system('redis-server -v')
50
+ fail "** can't find `redis-server` in your path"
51
+ end
52
+ end
53
+
54
+ def wait_for_redis_boot
55
+ Timeout.timeout(10) do
56
+ loop do
57
+ begin
58
+ break if Resque.redis.ping == 'PONG'
59
+ rescue Redis::CannotConnectError
60
+ @waiting = true
61
+ end
62
+ end
63
+ @waiting = false
64
+ end
65
+ end
66
+
67
+ def ensure_pid_directory
68
+ FileUtils.mkdir_p(File.dirname(pid_file))
69
+ end
70
+
71
+ def reassign_redis_clients
72
+ Resque.redis = Redis.new(
73
+ hostname: '127.0.0.1', port: port, thread_safe: true
74
+ )
75
+ end
76
+
77
+ def start_redis_server
78
+ IO.popen('redis-server -', 'w+') do |server|
79
+ server.write(config)
80
+ server.close_write
81
+ end
82
+ end
83
+
84
+ def pid
85
+ @pid ||= File.read(pid_file).to_i
86
+ end
87
+
88
+ def wait_for_pid
89
+ Timeout.timeout(10) do
90
+ loop { break if File.exist?(pid_file) }
91
+ end
92
+ end
93
+
94
+ def port
95
+ @port ||= random_port
96
+ end
97
+
98
+ def pid_file
99
+ '/tmp/redis-scheduler-test.pid'
100
+ end
101
+
102
+ def config
103
+ <<-EOF
104
+ daemonize yes
105
+ pidfile #{pid_file}
106
+ port #{port}
107
+ EOF
108
+ end
109
+
110
+ # Returns a random port in the upper (10000-65535) range.
111
+ def random_port
112
+ ports = (10_000..65_535).to_a
113
+
114
+ loop do
115
+ port = ports[rand(ports.size)]
116
+ return port if port_available?('127.0.0.1', port)
117
+ end
118
+ end
119
+
120
+ def port_available?(ip, port, seconds = 1)
121
+ Timeout.timeout(seconds) do
122
+ begin
123
+ TCPSocket.new(ip, port).close
124
+ false
125
+ rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
126
+ true
127
+ end
128
+ end
129
+ rescue Timeout::Error
130
+ true
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,77 @@
1
+ # Allows us to test that we can find working jobs
2
+ class OngoingJob
3
+ def self.queue
4
+ :quick
5
+ end
6
+
7
+ def self.perform
8
+ sleep 5
9
+ end
10
+ end
11
+
12
+ class SomeJob
13
+ def self.perform(_repo_id, _path)
14
+ end
15
+ end
16
+
17
+ class SomeQuickJob < SomeJob
18
+ @queue = :quick
19
+ end
20
+
21
+ class SomeIvarJob < SomeJob
22
+ @queue = :ivar
23
+ end
24
+
25
+ class SomeSharedEnvJob < SomeJob
26
+ def self.queue
27
+ :shared_job
28
+ end
29
+ end
30
+
31
+ class JobWithParams
32
+ @queue = :quick
33
+
34
+ def self.perform(*args)
35
+ @args = args
36
+ end
37
+ end
38
+
39
+ JobWithoutParams = Class.new(JobWithParams)
40
+
41
+
42
+ module Foo
43
+ class Bar
44
+ def self.queue
45
+ 'bar'
46
+ end
47
+ end
48
+ end
49
+
50
+ module Test
51
+ RESQUE_SCHEDULE = {
52
+ 'job_without_params' => {
53
+ 'cron' => '* * * * *',
54
+ 'class' => 'JobWithoutParams',
55
+ 'args' => {
56
+ 'host' => 'localhost'
57
+ },
58
+ 'rails_env' => 'production'
59
+ },
60
+ 'job_with_params' => {
61
+ 'every' => '1m',
62
+ 'class' => 'JobWithParams',
63
+ 'args' => {
64
+ 'host' => 'localhost'
65
+ },
66
+ 'parameters' => {
67
+ 'log_level' => {
68
+ 'description' => 'The level of logging',
69
+ 'default' => 'warn'
70
+ }
71
+ }
72
+ }
73
+ }
74
+ end
75
+
76
+
77
+
metadata ADDED
@@ -0,0 +1,312 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: resque-scheduler-web
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Matt Gibson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: resque-web
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: resque-scheduler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '4.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.2'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.2'
111
+ - !ruby/object:Gem::Dependency
112
+ name: capybara
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.4'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.4'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sass
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.4'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.4'
139
+ description: Use this if you want to move to the new Resque Web plugin architecture
140
+ via the resque-web gem, rather than the Sinatra-based approach that is bundled with
141
+ Resque 1.x
142
+ email:
143
+ - downrightlies@gmail.com
144
+ executables: []
145
+ extensions: []
146
+ extra_rdoc_files: []
147
+ files:
148
+ - ".gitignore"
149
+ - ".rspec"
150
+ - Gemfile
151
+ - LICENSE.txt
152
+ - README.md
153
+ - Rakefile
154
+ - app/controllers/resque_web/plugins/resque_scheduler/delayed_controller.rb
155
+ - app/controllers/resque_web/plugins/resque_scheduler/schedules_controller.rb
156
+ - app/helpers/resque_web/plugins/resque_scheduler/delayed_helper.rb
157
+ - app/helpers/resque_web/plugins/resque_scheduler/schedules_helper.rb
158
+ - app/models/resque_web/plugins/resque_scheduler/job_finder.rb
159
+ - app/models/resque_web/plugins/resque_scheduler/job_finder/working_job_finder.rb
160
+ - app/views/resque_web/plugins/resque_scheduler/delayed/_next_more.erb
161
+ - app/views/resque_web/plugins/resque_scheduler/delayed/_search_form.erb
162
+ - app/views/resque_web/plugins/resque_scheduler/delayed/index.erb
163
+ - app/views/resque_web/plugins/resque_scheduler/delayed/jobs_klass.erb
164
+ - app/views/resque_web/plugins/resque_scheduler/delayed/search.erb
165
+ - app/views/resque_web/plugins/resque_scheduler/delayed/timestamp.erb
166
+ - app/views/resque_web/plugins/resque_scheduler/schedules/index.html.erb
167
+ - app/views/resque_web/plugins/resque_scheduler/schedules/requeue-params.erb
168
+ - lib/resque/scheduler/web.rb
169
+ - lib/resque/scheduler/web/version.rb
170
+ - lib/resque_web/plugins/resque_scheduler/engine.rb
171
+ - resque-scheduler-web.gemspec
172
+ - spec/controllers/delayed_controller_spec.rb
173
+ - spec/controllers/schedules_controller_spec.rb
174
+ - spec/dummy/README.rdoc
175
+ - spec/dummy/Rakefile
176
+ - spec/dummy/app/assets/images/.keep
177
+ - spec/dummy/app/assets/javascripts/application.js
178
+ - spec/dummy/app/assets/stylesheets/application.css
179
+ - spec/dummy/app/controllers/application_controller.rb
180
+ - spec/dummy/app/controllers/concerns/.keep
181
+ - spec/dummy/app/helpers/application_helper.rb
182
+ - spec/dummy/app/mailers/.keep
183
+ - spec/dummy/app/models/.keep
184
+ - spec/dummy/app/models/concerns/.keep
185
+ - spec/dummy/app/views/layouts/application.html.erb
186
+ - spec/dummy/bin/bundle
187
+ - spec/dummy/bin/rails
188
+ - spec/dummy/bin/rake
189
+ - spec/dummy/bin/setup
190
+ - spec/dummy/config.ru
191
+ - spec/dummy/config/application.rb
192
+ - spec/dummy/config/boot.rb
193
+ - spec/dummy/config/database.yml
194
+ - spec/dummy/config/environment.rb
195
+ - spec/dummy/config/environments/development.rb
196
+ - spec/dummy/config/environments/production.rb
197
+ - spec/dummy/config/environments/test.rb
198
+ - spec/dummy/config/initializers/assets.rb
199
+ - spec/dummy/config/initializers/backtrace_silencers.rb
200
+ - spec/dummy/config/initializers/cookies_serializer.rb
201
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
202
+ - spec/dummy/config/initializers/inflections.rb
203
+ - spec/dummy/config/initializers/mime_types.rb
204
+ - spec/dummy/config/initializers/session_store.rb
205
+ - spec/dummy/config/initializers/wrap_parameters.rb
206
+ - spec/dummy/config/locales/en.yml
207
+ - spec/dummy/config/routes.rb
208
+ - spec/dummy/config/secrets.yml
209
+ - spec/dummy/db/development.sqlite3
210
+ - spec/dummy/db/schema.rb
211
+ - spec/dummy/db/test.sqlite3
212
+ - spec/dummy/lib/assets/.keep
213
+ - spec/dummy/log/.keep
214
+ - spec/dummy/log/development.log
215
+ - spec/dummy/log/test.log
216
+ - spec/dummy/public/404.html
217
+ - spec/dummy/public/422.html
218
+ - spec/dummy/public/500.html
219
+ - spec/dummy/public/favicon.ico
220
+ - spec/features/navigation_spec.rb
221
+ - spec/features/schedules/requeuing_a_job_with_parameters_spec.rb
222
+ - spec/features/schedules/scheduled_jobs_page_spec.rb
223
+ - spec/models/job_finder/working_job_finder_spec.rb
224
+ - spec/models/job_finder_spec.rb
225
+ - spec/rails_helper.rb
226
+ - spec/routing/delayed_routing_spec.rb
227
+ - spec/spec_helper.rb
228
+ - spec/support/redis_instance.rb
229
+ - spec/support/test_jobs.rb
230
+ homepage: https://github.com/mattgibson/resque-scheduler-web
231
+ licenses:
232
+ - MIT
233
+ metadata: {}
234
+ post_install_message:
235
+ rdoc_options: []
236
+ require_paths:
237
+ - lib
238
+ required_ruby_version: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ required_rubygems_version: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - ">="
246
+ - !ruby/object:Gem::Version
247
+ version: '0'
248
+ requirements: []
249
+ rubyforge_project:
250
+ rubygems_version: 2.4.5
251
+ signing_key:
252
+ specification_version: 4
253
+ summary: This gem provides tabs in Resque Web for managing Resque Scheduler.
254
+ test_files:
255
+ - spec/controllers/delayed_controller_spec.rb
256
+ - spec/controllers/schedules_controller_spec.rb
257
+ - spec/dummy/README.rdoc
258
+ - spec/dummy/Rakefile
259
+ - spec/dummy/app/assets/images/.keep
260
+ - spec/dummy/app/assets/javascripts/application.js
261
+ - spec/dummy/app/assets/stylesheets/application.css
262
+ - spec/dummy/app/controllers/application_controller.rb
263
+ - spec/dummy/app/controllers/concerns/.keep
264
+ - spec/dummy/app/helpers/application_helper.rb
265
+ - spec/dummy/app/mailers/.keep
266
+ - spec/dummy/app/models/.keep
267
+ - spec/dummy/app/models/concerns/.keep
268
+ - spec/dummy/app/views/layouts/application.html.erb
269
+ - spec/dummy/bin/bundle
270
+ - spec/dummy/bin/rails
271
+ - spec/dummy/bin/rake
272
+ - spec/dummy/bin/setup
273
+ - spec/dummy/config.ru
274
+ - spec/dummy/config/application.rb
275
+ - spec/dummy/config/boot.rb
276
+ - spec/dummy/config/database.yml
277
+ - spec/dummy/config/environment.rb
278
+ - spec/dummy/config/environments/development.rb
279
+ - spec/dummy/config/environments/production.rb
280
+ - spec/dummy/config/environments/test.rb
281
+ - spec/dummy/config/initializers/assets.rb
282
+ - spec/dummy/config/initializers/backtrace_silencers.rb
283
+ - spec/dummy/config/initializers/cookies_serializer.rb
284
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
285
+ - spec/dummy/config/initializers/inflections.rb
286
+ - spec/dummy/config/initializers/mime_types.rb
287
+ - spec/dummy/config/initializers/session_store.rb
288
+ - spec/dummy/config/initializers/wrap_parameters.rb
289
+ - spec/dummy/config/locales/en.yml
290
+ - spec/dummy/config/routes.rb
291
+ - spec/dummy/config/secrets.yml
292
+ - spec/dummy/db/development.sqlite3
293
+ - spec/dummy/db/schema.rb
294
+ - spec/dummy/db/test.sqlite3
295
+ - spec/dummy/lib/assets/.keep
296
+ - spec/dummy/log/.keep
297
+ - spec/dummy/log/development.log
298
+ - spec/dummy/log/test.log
299
+ - spec/dummy/public/404.html
300
+ - spec/dummy/public/422.html
301
+ - spec/dummy/public/500.html
302
+ - spec/dummy/public/favicon.ico
303
+ - spec/features/navigation_spec.rb
304
+ - spec/features/schedules/requeuing_a_job_with_parameters_spec.rb
305
+ - spec/features/schedules/scheduled_jobs_page_spec.rb
306
+ - spec/models/job_finder/working_job_finder_spec.rb
307
+ - spec/models/job_finder_spec.rb
308
+ - spec/rails_helper.rb
309
+ - spec/routing/delayed_routing_spec.rb
310
+ - spec/spec_helper.rb
311
+ - spec/support/redis_instance.rb
312
+ - spec/support/test_jobs.rb