tasks_scheduler 0.3.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -1
  3. data/app/assets/javascripts/tasks_scheduler.js +2 -109
  4. data/app/assets/javascripts/tasks_scheduler/alert.js +58 -0
  5. data/app/assets/javascripts/tasks_scheduler/status.js +58 -0
  6. data/app/assets/stylesheets/tasks_scheduler.scss +4 -0
  7. data/app/controllers/scheduled_tasks_controller.rb +5 -4
  8. data/app/controllers/tasks_scheduler_daemon_controller.rb +4 -3
  9. data/app/controllers/tasks_scheduler_daemon_controller/_download_log.rb +6 -0
  10. data/app/helpers/scheduled_tasks_helper.rb +2 -0
  11. data/app/models/scheduled_task.rb +16 -14
  12. data/app/models/scheduled_task/checker.rb +17 -5
  13. data/app/models/scheduled_task/log.rb +9 -6
  14. data/app/models/scheduled_task/runner.rb +9 -5
  15. data/app/models/scheduled_task/status.rb +8 -4
  16. data/config/initializers/assets.rb +3 -1
  17. data/config/routes.rb +2 -0
  18. data/db/migrate/20161122123828_create_scheduled_tasks.rb +5 -1
  19. data/db/migrate/20161123130153_add_status_attributes_to_scheduled_tasks.rb +5 -1
  20. data/db/migrate/20161124200712_add_pid_to_scheduled_tasks.rb +5 -1
  21. data/db/migrate/20161128163702_add_args_to_scheduled_tasks.rb +5 -1
  22. data/db/migrate/20180223155025_add_last_fail_status_to_scheduled_tasks.rb +5 -1
  23. data/db/migrate/20180302170138_add_enabled_to_scheduled_tasks.rb +5 -1
  24. data/exe/tasks_scheduler +3 -1
  25. data/exe/tasks_scheduler_run_task +3 -1
  26. data/lib/tasks_scheduler.rb +4 -8
  27. data/lib/tasks_scheduler/app_gem.rb +18 -0
  28. data/lib/tasks_scheduler/checker.rb +5 -2
  29. data/lib/tasks_scheduler/checker/log.rb +2 -0
  30. data/lib/tasks_scheduler/cron_parser_patch.rb +5 -1
  31. data/lib/tasks_scheduler/cron_scheduling_validator.rb +3 -0
  32. data/lib/tasks_scheduler/daemon.rb +20 -13
  33. data/lib/tasks_scheduler/engine.rb +5 -0
  34. data/lib/tasks_scheduler/version.rb +3 -1
  35. data/test/dummy/Rakefile +3 -1
  36. data/test/dummy/app/controllers/application_controller.rb +2 -0
  37. data/test/dummy/app/helpers/application_helper.rb +2 -0
  38. data/test/dummy/bin/bundle +3 -1
  39. data/test/dummy/bin/rails +3 -1
  40. data/test/dummy/bin/rake +2 -0
  41. data/test/dummy/bin/setup +3 -1
  42. data/test/dummy/config.ru +2 -0
  43. data/test/dummy/config/application.rb +3 -1
  44. data/test/dummy/config/boot.rb +4 -2
  45. data/test/dummy/config/environment.rb +3 -1
  46. data/test/dummy/config/environments/development.rb +2 -0
  47. data/test/dummy/config/environments/production.rb +2 -0
  48. data/test/dummy/config/environments/test.rb +2 -0
  49. data/test/dummy/config/initializers/assets.rb +2 -0
  50. data/test/dummy/config/initializers/backtrace_silencers.rb +1 -0
  51. data/test/dummy/config/initializers/cookies_serializer.rb +2 -0
  52. data/test/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  53. data/test/dummy/config/initializers/inflections.rb +1 -0
  54. data/test/dummy/config/initializers/mime_types.rb +1 -0
  55. data/test/dummy/config/initializers/session_store.rb +2 -0
  56. data/test/dummy/config/initializers/wrap_parameters.rb +2 -0
  57. data/test/dummy/config/routes.rb +2 -0
  58. data/test/fixtures/scheduled_tasks.yml +2 -0
  59. data/test/models/scheduled_task_test.rb +6 -4
  60. data/test/test_helper.rb +6 -4
  61. metadata +88 -32
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This file is used by Rack-based servers to start the application.
2
4
 
3
5
  require ::File.expand_path('../config/environment', __FILE__)
@@ -1,4 +1,6 @@
1
- require File.expand_path('../boot', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('boot', __dir__)
2
4
 
3
5
  require 'rails/all'
4
6
 
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Set up gems listed in the Gemfile.
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
4
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__)
3
5
 
4
6
  require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
5
- $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
7
+ $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__)
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Load the Rails application.
2
- require File.expand_path('../application', __FILE__)
4
+ require File.expand_path('application', __dir__)
3
5
 
4
6
  # Initialize the Rails application.
5
7
  Rails.application.initialize!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Version of your assets, change this if you want to expire all your assets.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Be sure to restart your server when you modify this file.
2
3
 
3
4
  # You can add backtrace silencers for libraries that you're using but don't wish to see in your
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Configure sensitive parameters which will be filtered from the log file.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Be sure to restart your server when you modify this file.
2
3
 
3
4
  # Add new inflection rules using the following format. Inflections
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Be sure to restart your server when you modify this file.
2
3
 
3
4
  # Add new mime types for use in respond_to blocks:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  Rails.application.config.session_store :cookie_store, key: '_dummy_session'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # This file contains settings for ActionController::ParamsWrapper which
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.routes.draw do
2
4
  # The priority is based upon order of creation: first created -> highest priority.
3
5
  # See how all your routes lay out with "rake routes".
@@ -2,3 +2,5 @@ test_scheduling:
2
2
  scheduling: 0 0 * * *
3
3
  task: test
4
4
  next_run: 2016-11-22 09:38:28
5
+ created_at: 2016-11-20 00:00:00
6
+ updated_at: 2016-11-20 00:00:00
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  class ScheduledTaskTest < ActiveSupport::TestCase
@@ -6,9 +8,9 @@ class ScheduledTaskTest < ActiveSupport::TestCase
6
8
  '*/5 * * * *' => Time.utc(2016, 12, 22, 12, 5, 0, 0),
7
9
  '* * 1 * *' => Time.utc(2017, 1, 1, 0, 0, 0, 0),
8
10
  '* * * * *' => Time.utc(2016, 12, 22, 12, 1, 0, 0)
9
- }
11
+ }.freeze
10
12
 
11
- SCHEDULING_INVALID_VALUES = [' ', nil, '1', 'abc123', 456]
13
+ SCHEDULING_INVALID_VALUES = [' ', nil, '1', 'abc123', 456].freeze
12
14
 
13
15
  setup do
14
16
  @scheduled_task = scheduled_tasks(:test_scheduling)
@@ -57,7 +59,7 @@ class ScheduledTaskTest < ActiveSupport::TestCase
57
59
  end
58
60
 
59
61
  test 'status 1' do
60
- @scheduled_task.update_attributes!(
62
+ @scheduled_task.update!(
61
63
  scheduling: '*/5 * * * *',
62
64
  next_run: 'Wed, 28 Feb 2018 15:35:00 UTC +00:00',
63
65
  created_at: 'Tue, 06 Dec 2016 20:30:01 UTC +00:00',
@@ -88,7 +90,7 @@ class ScheduledTaskTest < ActiveSupport::TestCase
88
90
  assert_equal ['abc'], @scheduled_task.send('invoke_args')
89
91
 
90
92
  @scheduled_task.args = 'abc|def|ghi'
91
- assert_equal %w(abc def ghi), @scheduled_task.send('invoke_args')
93
+ assert_equal %w[abc def ghi], @scheduled_task.send('invoke_args')
92
94
 
93
95
  @scheduled_task.args = 'abc||ghi'
94
96
  assert_equal ['abc', '', 'ghi'], @scheduled_task.send('invoke_args')
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Configure Rails Environment
2
4
  ENV['RAILS_ENV'] = 'test'
3
5
 
4
- require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
6
+ require File.expand_path('../test/dummy/config/environment.rb', __dir__)
5
7
  ActiveRecord::Migrator.migrations_paths = [
6
- File.expand_path('../../test/dummy/db/migrate', __FILE__)
8
+ File.expand_path('../test/dummy/db/migrate', __dir__)
7
9
  ]
8
10
  require 'rails/test_help'
9
11
 
@@ -12,11 +14,11 @@ require 'rails/test_help'
12
14
  Minitest.backtrace_filter = Minitest::BacktraceFilter.new
13
15
 
14
16
  # Load support files
15
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
17
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each { |f| require f }
16
18
 
17
19
  # Load fixtures from the engine
18
20
  if ActiveSupport::TestCase.respond_to?(:fixture_path=)
19
- ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
21
+ ActiveSupport::TestCase.fixture_path = File.expand_path('fixtures', __dir__)
20
22
  ActiveSupport::TestCase.fixtures :all
21
23
  end
22
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tasks_scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-19 00:00:00.000000000 Z
11
+ date: 2020-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_scaffold
@@ -38,6 +38,40 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: eac_ruby_gems_utils
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.4'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 0.4.1
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '0.4'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.4.1
61
+ - !ruby/object:Gem::Dependency
62
+ name: eac_ruby_utils
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.43'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.43'
41
75
  - !ruby/object:Gem::Dependency
42
76
  name: js-routes
43
77
  requirement: !ruby/object:Gem::Requirement
@@ -70,16 +104,36 @@ dependencies:
70
104
  name: rails
71
105
  requirement: !ruby/object:Gem::Requirement
72
106
  requirements:
73
- - - "~>"
107
+ - - ">="
74
108
  - !ruby/object:Gem::Version
75
- version: 4.2.1
109
+ version: 4.2.11.3
76
110
  type: :runtime
77
111
  prerelease: false
78
112
  version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 4.2.11.3
117
+ - !ruby/object:Gem::Dependency
118
+ name: eac_ruby_gem_support
119
+ requirement: !ruby/object:Gem::Requirement
79
120
  requirements:
80
121
  - - "~>"
81
122
  - !ruby/object:Gem::Version
82
- version: 4.2.1
123
+ version: '0.1'
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 0.1.1
127
+ type: :development
128
+ prerelease: false
129
+ version_requirements: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '0.1'
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: 0.1.1
83
137
  - !ruby/object:Gem::Dependency
84
138
  name: sqlite3
85
139
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +161,8 @@ files:
107
161
  - README.rdoc
108
162
  - Rakefile
109
163
  - app/assets/javascripts/tasks_scheduler.js
164
+ - app/assets/javascripts/tasks_scheduler/alert.js
165
+ - app/assets/javascripts/tasks_scheduler/status.js
110
166
  - app/assets/stylesheets/tasks_scheduler.scss
111
167
  - app/assets/stylesheets/tasks_scheduler/alert.scss
112
168
  - app/controllers/scheduled_tasks_controller.rb
@@ -142,6 +198,7 @@ files:
142
198
  - exe/tasks_scheduler
143
199
  - exe/tasks_scheduler_run_task
144
200
  - lib/tasks_scheduler.rb
201
+ - lib/tasks_scheduler/app_gem.rb
145
202
  - lib/tasks_scheduler/checker.rb
146
203
  - lib/tasks_scheduler/checker/log.rb
147
204
  - lib/tasks_scheduler/cron_parser_patch.rb
@@ -187,7 +244,7 @@ files:
187
244
  - test/fixtures/scheduled_tasks.yml
188
245
  - test/models/scheduled_task_test.rb
189
246
  - test/test_helper.rb
190
- homepage:
247
+ homepage: https://github.com/esquilo-azul/tasks_scheduler
191
248
  licenses:
192
249
  - MIT
193
250
  metadata: {}
@@ -206,47 +263,46 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
263
  - !ruby/object:Gem::Version
207
264
  version: '0'
208
265
  requirements: []
209
- rubyforge_project:
210
- rubygems_version: 2.7.7
266
+ rubygems_version: 3.0.8
211
267
  signing_key:
212
268
  specification_version: 4
213
269
  summary: Scheduler for Rake tasks.
214
270
  test_files:
215
- - test/models/scheduled_task_test.rb
271
+ - test/dummy/Rakefile
272
+ - test/dummy/README.rdoc
273
+ - test/dummy/config.ru
274
+ - test/dummy/config/boot.rb
275
+ - test/dummy/config/database.yml
276
+ - test/dummy/config/secrets.yml
277
+ - test/dummy/config/locales/en.yml
278
+ - test/dummy/config/application.rb
279
+ - test/dummy/config/environments/development.rb
280
+ - test/dummy/config/environments/test.rb
281
+ - test/dummy/config/environments/production.rb
282
+ - test/dummy/config/environment.rb
216
283
  - test/dummy/config/routes.rb
217
284
  - test/dummy/config/initializers/assets.rb
218
285
  - test/dummy/config/initializers/cookies_serializer.rb
286
+ - test/dummy/config/initializers/inflections.rb
219
287
  - test/dummy/config/initializers/session_store.rb
220
- - test/dummy/config/initializers/backtrace_silencers.rb
221
288
  - test/dummy/config/initializers/wrap_parameters.rb
222
289
  - test/dummy/config/initializers/filter_parameter_logging.rb
223
- - test/dummy/config/initializers/inflections.rb
290
+ - test/dummy/config/initializers/backtrace_silencers.rb
224
291
  - test/dummy/config/initializers/mime_types.rb
225
- - test/dummy/config/database.yml
226
- - test/dummy/config/secrets.yml
227
- - test/dummy/config/locales/en.yml
228
- - test/dummy/config/environment.rb
229
- - test/dummy/config/boot.rb
230
- - test/dummy/config/application.rb
231
- - test/dummy/config/environments/production.rb
232
- - test/dummy/config/environments/test.rb
233
- - test/dummy/config/environments/development.rb
234
- - test/dummy/Rakefile
235
- - test/dummy/public/favicon.ico
236
- - test/dummy/public/404.html
237
- - test/dummy/public/500.html
238
- - test/dummy/public/422.html
239
- - test/dummy/config.ru
240
- - test/dummy/app/assets/stylesheets/application.css
241
- - test/dummy/app/assets/javascripts/application.js
242
- - test/dummy/app/helpers/application_helper.rb
292
+ - test/dummy/db/schema.rb
243
293
  - test/dummy/app/views/layouts/application.html.erb
244
294
  - test/dummy/app/controllers/application_controller.rb
245
- - test/dummy/bin/setup
295
+ - test/dummy/app/helpers/application_helper.rb
296
+ - test/dummy/app/assets/stylesheets/application.css
297
+ - test/dummy/app/assets/javascripts/application.js
298
+ - test/dummy/public/422.html
299
+ - test/dummy/public/404.html
300
+ - test/dummy/public/favicon.ico
301
+ - test/dummy/public/500.html
246
302
  - test/dummy/bin/bundle
303
+ - test/dummy/bin/setup
247
304
  - test/dummy/bin/rails
248
305
  - test/dummy/bin/rake
249
- - test/dummy/db/schema.rb
250
- - test/dummy/README.rdoc
251
306
  - test/test_helper.rb
252
307
  - test/fixtures/scheduled_tasks.yml
308
+ - test/models/scheduled_task_test.rb