rush_job 0.6.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f1f2016e98628b8ca8df65ab968afd510ae17cec5c27f1c32bb310d9e566cc7
4
- data.tar.gz: 58461cac54f6376f5505ef433b100c17acb4059b267611b63b2284fec3868535
3
+ metadata.gz: 1978822b98733bacfe9f2223674bc12a85caf28660ec3b520b3472671d294700
4
+ data.tar.gz: 1ce5abf613c6506a2b242b5db8d7c2a7047f4e36a3da7b51f97b1edf35e5cb6c
5
5
  SHA512:
6
- metadata.gz: b6bebec349e0ec4975275946490aff4908914c1cdc6420b05e5e8b8bb7977119fee0d8199cf8b69577646d591bb9bf124f13f40d43786f73762d87282da765b2
7
- data.tar.gz: 0c9175a6c11f22a8b93f422bfa5d4346c10f5daed5d8e18a5d512146aa138cc126f2eb48f2f6f535ad68f5e3fe368c9a43c4ad6442df579027c4326e7318a497
6
+ metadata.gz: 453687375125c2fe9982f82500dfc4dc8fe8531787ef962bc25619e894a39a6c7cfbf0e77e21b1676dafbc16ffe9a70f55f9f471d2511c681763abf2b827c6ba
7
+ data.tar.gz: 80066d6e7bd60b5d7402f472674bfe38005c121398f0c431f326f335562eb893b71e309f4fb09090c8c00ed17bbf8306e53a0d8b41bdae7a6d51034f26aec620
data/README.md CHANGED
@@ -17,7 +17,7 @@ Navigate to the `/rush_job` route in your application to see the Delayed Jobs. L
17
17
  Add this line to your Ruby on Rails application's Gemfile:
18
18
 
19
19
  ```ruby
20
- gem 'rush_job', '~> 0.6.1'
20
+ gem 'rush_job', '~> 1.0.0'
21
21
  ```
22
22
 
23
23
  And then execute:
@@ -40,5 +40,8 @@ Open an issue or
40
40
  3. `bundle exec brakeman`
41
41
  4. Open pull request
42
42
 
43
+ ## Turbo
44
+ This gem uses turbo-rails, https://github.com/hotwired/turbo-rails. For Rails UJS fork from v0.6.1
45
+
43
46
  ## License
44
47
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -1,11 +1,11 @@
1
1
  import { Application } from '@hotwired/stimulus';
2
- import Rails from '@rails/ujs';
2
+ import RushJobConfirmController from './controllers/rush_job_confirm_controller';
3
3
  import RushJobPollingController from './controllers/rush_job_polling_controller';
4
4
  import RushJobReloadJobsTableController from './controllers/rush_job_reload_jobs_table_controller';
5
5
  import 'bootstrap';
6
-
7
- Rails.start();
6
+ import '@hotwired/turbo-rails';
8
7
 
9
8
  window.Stimulus = Application.start();
9
+ Stimulus.register('rush-job-confirm', RushJobConfirmController);
10
10
  Stimulus.register('rush-job-polling', RushJobPollingController);
11
11
  Stimulus.register('rush-job-reload-jobs-table', RushJobReloadJobsTableController);
@@ -0,0 +1,11 @@
1
+ import { Controller } from '@hotwired/stimulus';
2
+
3
+ export default class RushJobConfirmController extends Controller {
4
+ displayConfirm(e) {
5
+ const confirmMessage = e.target.dataset.confirmMessage;
6
+
7
+ if (confirm(confirmMessage) !== true) {
8
+ e.preventDefault();
9
+ }
10
+ }
11
+ }
@@ -1,19 +1,23 @@
1
1
  import { Controller } from '@hotwired/stimulus';
2
- import Rails from '@rails/ujs';
3
2
 
4
3
  export class RushJobTableUpdateController extends Controller {
5
4
  updateJobs() {
5
+ const headers = { 'Accept': 'text/vnd.turbo-stream.html' };
6
+
6
7
  this.blurTable();
8
+ this.clearFlash();
7
9
 
8
- Rails.ajax({
9
- url: document.location.href,
10
- type: 'GET',
11
- dataType: 'script',
12
- });
10
+ fetch(document.location.href, { headers: headers })
11
+ .then(response => response.text())
12
+ .then(html => Turbo.renderStreamMessage(html));
13
13
  }
14
14
 
15
15
  blurTable() {
16
16
  const jobsContainer = document.getElementById('rush-job-jobs-container');
17
17
  jobsContainer.classList.add('table-refresh');
18
18
  }
19
+
20
+ clearFlash() {
21
+ document.getElementById('rush-job-flash-messages').innerHTML = '';
22
+ }
19
23
  }
@@ -5,14 +5,14 @@ module RushJob
5
5
  rescue_from Pagy::OverflowError, with: :redirect_to_first_page
6
6
 
7
7
  def index
8
- @pagy_locked_jobs, @locked_jobs = pagy(RushJob.locked_jobs,
9
- items: 10,
10
- page_param: :locked_jobs_page)
11
-
8
+ @pagy_locked_jobs, @locked_jobs = pagy(RushJob.locked_jobs, items: 10, page_param: :locked_jobs_page)
12
9
  @queue_groups = RushJob.queue_groups
13
- @pagy_queue, @job_queues = pagy_array(@queue_groups.keys,
14
- items: 10,
15
- page_param: :queue_page)
10
+ @pagy_queue, @job_queues = pagy_array(@queue_groups.keys, items: 10, page_param: :queue_page)
11
+
12
+ respond_to do |format|
13
+ format.html
14
+ format.turbo_stream
15
+ end
16
16
  end
17
17
 
18
18
  def destroy
@@ -7,6 +7,11 @@ module RushJob
7
7
 
8
8
  def index
9
9
  @pagy, @rush_jobs = pagy(RushJob.order("#{sort_column} #{sort_direction}"))
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.turbo_stream
14
+ end
10
15
  end
11
16
 
12
17
  private
@@ -6,7 +6,10 @@ module RushJob
6
6
 
7
7
  def sortable(column)
8
8
  direction = column == sort_column && sort_direction == 'asc' ? 'desc' : 'asc'
9
- link_to t(column), rush_job.rush_jobs_path({ sort: column, direction: }), class: "link-#{invert_theme}"
9
+ link_to t(column),
10
+ rush_job.rush_jobs_path({ sort: column, direction: direction }),
11
+ class: "link-#{invert_theme}",
12
+ target: '_top'
10
13
  end
11
14
 
12
15
  def sort_arrow(column)
@@ -4,7 +4,7 @@ module RushJob
4
4
 
5
5
  scope :locked_jobs, -> { where.not(locked_at: nil).order(locked_at: :desc) }
6
6
  scope :queue_groups, -> { group(:queue, :priority).order(:priority).count }
7
- scope :queue_group, ->(queue, priority) { where(queue:).and(where(priority:)) }
7
+ scope :queue_group, ->(queue, priority) { where(queue: queue).and(where(priority: priority)) }
8
8
 
9
9
  def self.clear_queue(queue, priority)
10
10
  queue_group(queue, priority).delete_all
@@ -32,13 +32,23 @@
32
32
  </a>
33
33
  <div class="dropdown-menu"
34
34
  data-bs-popper="static">
35
- <%= button_to t("#{invert_theme}_mode"), settings_path, class: "nav-link", method: :patch, params: { setting: 'theme' } %>
35
+ <%= button_to t("#{invert_theme}_mode"),
36
+ settings_path,
37
+ class: "nav-link",
38
+ method: :patch,
39
+ params: { setting: 'theme' },
40
+ data: { turbo: false } %>
36
41
  <%= button_to t("#{editing_enabled? ? 'disable_editing' : 'enable_editing'}"),
37
42
  settings_path,
38
43
  class: "nav-link",
39
44
  method: :patch,
40
45
  params: { setting: 'editing' },
41
- data: { confirm: t("#{editing_enabled? ? 'disable_editing_confirmation' : 'enable_editing_confirmation'}") } %>
46
+ data: {
47
+ turbo: false,
48
+ controller: 'rush-job-confirm',
49
+ action: 'click->rush-job-confirm#displayConfirm',
50
+ confirm_message: t("#{editing_enabled? ? 'disable_editing_confirmation' : 'enable_editing_confirmation'}")
51
+ } %>
42
52
  </div>
43
53
  </li>
44
54
  </ul>
@@ -1,86 +1,93 @@
1
- <div id="rush-job-jobs-container"
2
- class="jobs-container"
3
- role="main">
4
- <div class="d-flex justify-content-left">
5
- <h2 class="color-<%= invert_theme %>"><%= t :locked_jobs %></h2>
6
- </div>
7
- <div id="rush-job-dashboard-locked-jobs" class="mb-2 d-flex justify-content-left">
8
- <div class="table-responsive">
9
- <table class="table
10
- table-bordered
11
- table-striped
12
- table-<%= current_theme %>">
13
- <thead>
14
- <tr>
15
- <th><%= t :id %></th>
16
- <th><%= t :locked_at %></th>
17
- <th><%= t :locked_by %></th>
18
- <th><%= t :job_class %></th>
19
- <th><%= t :arguments %></th>
20
- </tr>
21
- </thead>
22
- <tbody class="table-group-divider">
23
- <% @locked_jobs.each do |job| %>
1
+ <%= turbo_frame_tag 'rush_job_dashboard_frame' do %>
2
+ <div id="rush-job-jobs-container"
3
+ class="jobs-container"
4
+ role="main">
5
+ <div class="d-flex justify-content-left">
6
+ <h2 class="color-<%= invert_theme %>"><%= t :locked_jobs %></h2>
7
+ </div>
8
+ <div id="rush-job-dashboard-locked-jobs" class="mb-2 d-flex justify-content-left">
9
+ <div class="table-responsive">
10
+ <table class="table
11
+ table-bordered
12
+ table-striped
13
+ table-<%= current_theme %>">
14
+ <thead>
24
15
  <tr>
25
- <td><%= job.id %></td>
26
- <td><%= job.locked_at %></td>
27
- <td><%= job.locked_by %></td>
28
- <td><%= job.job_class %></td>
29
- <td><%= job.job_arguments %></td>
16
+ <th><%= t :id %></th>
17
+ <th><%= t :locked_at %></th>
18
+ <th><%= t :locked_by %></th>
19
+ <th><%= t :job_class %></th>
20
+ <th><%= t :arguments %></th>
30
21
  </tr>
31
- <% end %>
32
- </tbody>
33
- </table>
22
+ </thead>
23
+ <tbody class="table-group-divider">
24
+ <% @locked_jobs.each do |job| %>
25
+ <tr>
26
+ <td><%= job.id %></td>
27
+ <td><%= job.locked_at %></td>
28
+ <td><%= job.locked_by %></td>
29
+ <td><%= job.job_class %></td>
30
+ <td><%= job.job_arguments %></td>
31
+ </tr>
32
+ <% end %>
33
+ </tbody>
34
+ </table>
35
+ </div>
36
+ </div>
37
+ <div id="rush-job-locked-job-pagination"
38
+ class="d-flex justify-content-left"
39
+ data-bs-theme="<%= current_theme %>">
40
+ <%== pagy_bootstrap_nav(@pagy_locked_jobs) if @pagy_locked_jobs.pages > 1 %>
34
41
  </div>
35
- </div>
36
- <div id="rush-job-locked-job-pagination"
37
- class="d-flex justify-content-left"
38
- data-bs-theme="<%= current_theme %>">
39
- <%== pagy_bootstrap_nav(@pagy_locked_jobs) if @pagy_locked_jobs.pages > 1 %>
40
- </div>
41
42
 
42
- <div class="d-flex justify-content-left">
43
- <h2 class="color-<%= invert_theme %>"><%= t :queues %></h2>
44
- </div>
45
- <div id="rush-job-dashboard-queues" class="d-flex justify-content-left">
46
- <div class="table-responsive">
47
- <table class="table
48
- table-bordered
49
- table-striped
50
- table-<%= current_theme %>">
51
- <thead>
52
- <tr>
53
- <th><%= t :name %></th>
54
- <th><%= t :priority %></th>
55
- <th><%= t :count %></th>
56
- <% if editing_enabled? %>
57
- <th><%= t :clear %></th>
58
- <% end %>
59
- </tr>
60
- </thead>
61
- <tbody class="table-group-divider">
62
- <% @job_queues.each do |queue| %>
43
+ <div class="d-flex justify-content-left">
44
+ <h2 class="color-<%= invert_theme %>"><%= t :queues %></h2>
45
+ </div>
46
+ <div id="rush-job-dashboard-queues" class="d-flex justify-content-left">
47
+ <div class="table-responsive">
48
+ <table class="table
49
+ table-bordered
50
+ table-striped
51
+ table-<%= current_theme %>">
52
+ <thead>
63
53
  <tr>
64
- <td><%= queue[0] %></td>
65
- <td><%= queue[1] %></td>
66
- <td><%= @queue_groups[queue] %></td>
54
+ <th><%= t :name %></th>
55
+ <th><%= t :priority %></th>
56
+ <th><%= t :count %></th>
67
57
  <% if editing_enabled? %>
68
- <td><%= button_to t(:clear),
69
- dashboard_path,
70
- class: "btn btn-danger btn-sm",
71
- method: :delete,
72
- params: { queue: queue[0], priority: queue[1] },
73
- data: { confirm: t(:clear_queue_confirmation, queue: queue[0]) } %></td>
58
+ <th><%= t :clear %></th>
74
59
  <% end %>
75
60
  </tr>
76
- <% end %>
77
- </tbody>
78
- </table>
61
+ </thead>
62
+ <tbody class="table-group-divider">
63
+ <% @job_queues.each do |queue| %>
64
+ <tr>
65
+ <td><%= queue[0] %></td>
66
+ <td><%= queue[1] %></td>
67
+ <td><%= @queue_groups[queue] %></td>
68
+ <% if editing_enabled? %>
69
+ <td><%= button_to t(:clear),
70
+ dashboard_path,
71
+ class: "btn btn-danger btn-sm",
72
+ method: :delete,
73
+ params: { queue: queue[0], priority: queue[1] },
74
+ data: {
75
+ turbo: false,
76
+ controller: 'rush-job-confirm',
77
+ action: 'click->rush-job-confirm#displayConfirm',
78
+ confirm_message: t(:clear_queue_confirmation, queue: queue[0])
79
+ } %></td>
80
+ <% end %>
81
+ </tr>
82
+ <% end %>
83
+ </tbody>
84
+ </table>
85
+ </div>
86
+ </div>
87
+ <div id="rush-job-locked-queue-pagination"
88
+ class="d-flex justify-content-left"
89
+ data-bs-theme="<%= current_theme %>">
90
+ <%== pagy_bootstrap_nav(@pagy_queue) if @pagy_queue.pages > 1 %>
79
91
  </div>
80
92
  </div>
81
- <div id="rush-job-locked-queue-pagination"
82
- class="d-flex justify-content-left"
83
- data-bs-theme="<%= current_theme %>">
84
- <%== pagy_bootstrap_nav(@pagy_queue) if @pagy_queue.pages > 1 %>
85
- </div>
86
- </div>
93
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <%= turbo_stream.replace 'rush_job_dashboard_frame',
2
+ partial: 'dashboard_tables',
3
+ locals: {
4
+ pagy_locked_jobs: @pagy_locked_jobs,
5
+ locked_jobs: @locked_jobs,
6
+ queue_groups: @queue_groups,
7
+ pagy_queue: @pagy_queue,
8
+ job_queues: @job_queues
9
+ } %>
@@ -1,47 +1,49 @@
1
- <div id="rush-job-jobs-container"
2
- class="jobs-container"
3
- role="main">
4
- <div class="table-responsive">
5
- <table class="table
6
- table-bordered
7
- table-striped
8
- table-<%= current_theme %>">
9
- <thead>
10
- <tr>
11
- <th><%= sortable 'id' %><%= sort_arrow 'id' %></th>
12
- <th><%= sortable 'priority' %><%= sort_arrow 'priority' %></th>
13
- <th><%= sortable 'attempts' %><%= sort_arrow 'attempts' %></th>
14
- <th><%= t :job_class %></th>
15
- <th><%= t :arguments %></th>
16
- <th><%= sortable 'last_error' %><%= sort_arrow 'last_error' %></th>
17
- <th><%= sortable 'run_at' %><%= sort_arrow 'run_at' %></th>
18
- <th><%= sortable 'locked_at' %><%= sort_arrow 'locked_at' %></th>
19
- <th><%= sortable 'failed_at' %><%= sort_arrow 'failed_at' %></th>
20
- <th><%= sortable 'locked_by' %><%= sort_arrow'locked_by' %></th>
21
- <th><%= sortable 'queue' %><%= sort_arrow 'queue' %></th>
22
- </tr>
23
- </thead>
24
- <tbody class="table-group-divider">
25
- <% @rush_jobs.each do |job| %>
1
+ <%= turbo_frame_tag 'rush_job_jobs_frame' do %>
2
+ <div id="rush-job-jobs-container"
3
+ class="jobs-container"
4
+ role="main">
5
+ <div class="table-responsive">
6
+ <table class="table
7
+ table-bordered
8
+ table-striped
9
+ table-<%= current_theme %>">
10
+ <thead>
26
11
  <tr>
27
- <td><%= job.id %></td>
28
- <td><%= job.priority %></td>
29
- <td><%= job.attempts %></td>
30
- <td><%= job.job_class %></td>
31
- <td><%= job.job_arguments %></td>
32
- <td><%= job.last_error %></td>
33
- <td><%= job.run_at %></td>
34
- <td><%= job.locked_at %></td>
35
- <td><%= job.failed_at %></td>
36
- <td><%= job.locked_by %></td>
37
- <td><%= job.queue %></td>
12
+ <th><%= sortable 'id' %><%= sort_arrow 'id' %></th>
13
+ <th><%= sortable 'priority' %><%= sort_arrow 'priority' %></th>
14
+ <th><%= sortable 'attempts' %><%= sort_arrow 'attempts' %></th>
15
+ <th><%= t :job_class %></th>
16
+ <th><%= t :arguments %></th>
17
+ <th><%= sortable 'last_error' %><%= sort_arrow 'last_error' %></th>
18
+ <th><%= sortable 'run_at' %><%= sort_arrow 'run_at' %></th>
19
+ <th><%= sortable 'locked_at' %><%= sort_arrow 'locked_at' %></th>
20
+ <th><%= sortable 'failed_at' %><%= sort_arrow 'failed_at' %></th>
21
+ <th><%= sortable 'locked_by' %><%= sort_arrow'locked_by' %></th>
22
+ <th><%= sortable 'queue' %><%= sort_arrow 'queue' %></th>
38
23
  </tr>
39
- <% end %>
40
- </tbody>
41
- </table>
24
+ </thead>
25
+ <tbody class="table-group-divider">
26
+ <% @rush_jobs.each do |job| %>
27
+ <tr>
28
+ <td><%= job.id %></td>
29
+ <td><%= job.priority %></td>
30
+ <td><%= job.attempts %></td>
31
+ <td><%= job.job_class %></td>
32
+ <td><%= job.job_arguments %></td>
33
+ <td><%= job.last_error %></td>
34
+ <td><%= job.run_at %></td>
35
+ <td><%= job.locked_at %></td>
36
+ <td><%= job.failed_at %></td>
37
+ <td><%= job.locked_by %></td>
38
+ <td><%= job.queue %></td>
39
+ </tr>
40
+ <% end %>
41
+ </tbody>
42
+ </table>
43
+ </div>
42
44
  </div>
43
- </div>
44
45
 
45
- <div class="footer-container" data-bs-theme="<%= current_theme %>">
46
- <%== pagy_bootstrap_nav(@pagy) if @pagy.pages > 1 %>
47
- </div>
46
+ <div class="footer-container" data-bs-theme="<%= current_theme %>">
47
+ <%== pagy_bootstrap_nav(@pagy) if @pagy.pages > 1 %>
48
+ </div>
49
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <%= turbo_stream.replace 'rush_job_jobs_frame',
2
+ partial: 'jobs_table',
3
+ locals: {
4
+ pagy: @pagy,
5
+ rush_jobs: @rush_jobs
6
+ } %>
data/config/importmap.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  pin 'rush_job/application', preload: true
2
2
  pin 'bootstrap', to: 'https://ga.jspm.io/npm:bootstrap@5.3.1/dist/js/bootstrap.esm.js'
3
3
  pin '@popperjs/core', to: 'https://ga.jspm.io/npm:@popperjs/core@2.11.8/lib/index.js'
4
- pin '@rails/ujs', to: 'https://ga.jspm.io/npm:@rails/ujs@7.0.6/lib/assets/compiled/rails-ujs.js'
5
4
  pin '@hotwired/stimulus', to: 'https://ga.jspm.io/npm:@hotwired/stimulus@3.2.2/dist/stimulus.js'
5
+ pin '@hotwired/turbo-rails', to: 'turbo.min.js', preload: true
@@ -1,3 +1,3 @@
1
1
  module RushJob
2
- VERSION = '0.6.1'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rush_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JavaKoala
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-09 00:00:00.000000000 Z
11
+ date: 2024-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.2'
61
+ version: '2.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.2'
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pagy
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '6.0'
75
+ version: '8.6'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '6.0'
82
+ version: '8.6'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: sassc-rails
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '2.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: turbo-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: delayed_job
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,112 +142,112 @@ dependencies:
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '6.0'
145
+ version: '6.1'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '6.0'
152
+ version: '6.1'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: capybara
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '3.39'
159
+ version: '3.40'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '3.39'
166
+ version: '3.40'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: debug
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - "~>"
158
172
  - !ruby/object:Gem::Version
159
- version: '1.8'
173
+ version: '1.9'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - "~>"
165
179
  - !ruby/object:Gem::Version
166
- version: '1.8'
180
+ version: '1.9'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: puma
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: '6.3'
187
+ version: '6.4'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - "~>"
179
193
  - !ruby/object:Gem::Version
180
- version: '6.3'
194
+ version: '6.4'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: rubocop-capybara
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - "~>"
186
200
  - !ruby/object:Gem::Version
187
- version: '2.18'
201
+ version: '2.21'
188
202
  type: :development
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
206
  - - "~>"
193
207
  - !ruby/object:Gem::Version
194
- version: '2.18'
208
+ version: '2.21'
195
209
  - !ruby/object:Gem::Dependency
196
210
  name: rubocop-minitest
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: 0.31.0
215
+ version: 0.35.0
202
216
  type: :development
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - "~>"
207
221
  - !ruby/object:Gem::Version
208
- version: 0.31.0
222
+ version: 0.35.0
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: rubocop-rails
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - "~>"
214
228
  - !ruby/object:Gem::Version
215
- version: '2.21'
229
+ version: '2.25'
216
230
  type: :development
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
234
  - - "~>"
221
235
  - !ruby/object:Gem::Version
222
- version: '2.21'
236
+ version: '2.25'
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: selenium-webdriver
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - "~>"
228
242
  - !ruby/object:Gem::Version
229
- version: '4.12'
243
+ version: '4.22'
230
244
  type: :development
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
248
  - - "~>"
235
249
  - !ruby/object:Gem::Version
236
- version: '4.12'
250
+ version: '4.22'
237
251
  - !ruby/object:Gem::Dependency
238
252
  name: simplecov
239
253
  requirement: !ruby/object:Gem::Requirement
@@ -254,28 +268,28 @@ dependencies:
254
268
  requirements:
255
269
  - - "~>"
256
270
  - !ruby/object:Gem::Version
257
- version: '3.4'
271
+ version: '3.5'
258
272
  type: :development
259
273
  prerelease: false
260
274
  version_requirements: !ruby/object:Gem::Requirement
261
275
  requirements:
262
276
  - - "~>"
263
277
  - !ruby/object:Gem::Version
264
- version: '3.4'
278
+ version: '3.5'
265
279
  - !ruby/object:Gem::Dependency
266
280
  name: sqlite3
267
281
  requirement: !ruby/object:Gem::Requirement
268
282
  requirements:
269
283
  - - "~>"
270
284
  - !ruby/object:Gem::Version
271
- version: '1.6'
285
+ version: '1.4'
272
286
  type: :development
273
287
  prerelease: false
274
288
  version_requirements: !ruby/object:Gem::Requirement
275
289
  requirements:
276
290
  - - "~>"
277
291
  - !ruby/object:Gem::Version
278
- version: '1.6'
292
+ version: '1.4'
279
293
  description: Rails web interface for delayed_job using Rails::Engine.
280
294
  email:
281
295
  - javakoala1@gmail.com
@@ -292,6 +306,7 @@ files:
292
306
  - app/assets/images/rush_job/arrow-up-dark.svg
293
307
  - app/assets/images/rush_job/arrow-up-light.svg
294
308
  - app/assets/javascript/rush_job/application.js
309
+ - app/assets/javascript/rush_job/controllers/rush_job_confirm_controller.js
295
310
  - app/assets/javascript/rush_job/controllers/rush_job_polling_controller.js
296
311
  - app/assets/javascript/rush_job/controllers/rush_job_reload_jobs_table_controller.js
297
312
  - app/assets/javascript/rush_job/controllers/rush_job_table_update_controller.js
@@ -318,10 +333,10 @@ files:
318
333
  - app/views/layouts/rush_job/application.html.erb
319
334
  - app/views/rush_job/dashboard/_dashboard_tables.html.erb
320
335
  - app/views/rush_job/dashboard/index.html.erb
321
- - app/views/rush_job/dashboard/index.js.erb
336
+ - app/views/rush_job/dashboard/index.turbo_stream.erb
322
337
  - app/views/rush_job/rush_jobs/_jobs_table.html.erb
323
338
  - app/views/rush_job/rush_jobs/index.html.erb
324
- - app/views/rush_job/rush_jobs/index.js.erb
339
+ - app/views/rush_job/rush_jobs/index.turbo_stream.erb
325
340
  - app/views/rush_job/shared/_polling.html.erb
326
341
  - config/importmap.rb
327
342
  - config/locales/en.yml
@@ -347,14 +362,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
347
362
  requirements:
348
363
  - - ">="
349
364
  - !ruby/object:Gem::Version
350
- version: 3.2.0
365
+ version: '3.0'
351
366
  required_rubygems_version: !ruby/object:Gem::Requirement
352
367
  requirements:
353
368
  - - ">="
354
369
  - !ruby/object:Gem::Version
355
370
  version: '0'
356
371
  requirements: []
357
- rubygems_version: 3.4.20
372
+ rubygems_version: 3.5.3
358
373
  signing_key:
359
374
  specification_version: 4
360
375
  summary: User interface for delayed_job
@@ -1,2 +0,0 @@
1
- document.getElementById('rush-job-flash-messages').innerHTML = "<%= j (render partial: 'layouts/rush_job/flash_messages') %>"
2
- document.getElementById('rush-job-jobs').innerHTML = "<%= j (render partial: 'dashboard_tables') %>"
@@ -1,2 +0,0 @@
1
- document.getElementById('rush-job-flash-messages').innerHTML = "<%= j (render partial: 'layouts/rush_job/flash_messages') %>"
2
- document.getElementById('rush-job-jobs').innerHTML = "<%= j (render partial: 'jobs_table') %>"