sidekiq_adhoc_job 0.2.1 → 1.0.1

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: c21a2663558c918e59402c9180737fdc70f7520003413770eecaa73cabf86db8
4
- data.tar.gz: f0eb1fd9b4c6e9d7b7fd52eaa157bd468bc02585438413c27b42a933097b5ca9
3
+ metadata.gz: 66953581bfb24c498a01eaaf26fabdd822e39195179b9e3624b8eb4fd2dab287
4
+ data.tar.gz: 67dedc0f7f9e1d6e053f5df711c16c489e3c9e1b3996da84243e164dc224ddf5
5
5
  SHA512:
6
- metadata.gz: cc04bca685843cdc4f68758fbef688bfaaca75ab64deaaece3cb3e082dd54c028230753e1c8d7d2b8001089584c8b6a4fb578fbb2582f22fd604c0a30b492bb9
7
- data.tar.gz: 5c3bb8282be7d70ff5a5937b41e7be4db4d4ab4568b302030aef2da554ede3a89e8d9b45afafbd5820b4bc68fc22b75bebb7ffbce183c9c8c773878c5bbb8fa0
6
+ metadata.gz: bbc917b706c381e9a49d29cdd46d30efc4840d4f52a6dc4506dd05b567df8a5f86f7ba17dd09d2765931131d1bec008cf28cbd6be1bce17ecf5a7780e35c3d75
7
+ data.tar.gz: 371a29635a981a812fb5dd31412d656d85e2723a158dedad143610eccdc382ba5f1f3c53312ce2d4b1a229b1e49ace6f33c027aa467779b223475adc01a59980
@@ -16,6 +16,7 @@ module SidekiqAdhocJob
16
16
  module Strategies
17
17
  autoload :Default, 'sidekiq_adhoc_job/strategies/default'
18
18
  autoload :ActiveJob, 'sidekiq_adhoc_job/strategies/active_job'
19
+ autoload :RailsApplicationJob, 'sidekiq_adhoc_job/strategies/rails_application_job'
19
20
  end
20
21
 
21
22
  def self.configure
@@ -25,7 +25,9 @@ module SidekiqAdhocJob
25
25
  :allowed_params, :worker_params
26
26
 
27
27
  def parse_params
28
- @worker_params = allowed_params.map { |key| StringUtil.parse(request_params[key], symbolize: true) }
28
+ @worker_params = allowed_params
29
+ .reject { |key| request_params[key].empty? }
30
+ .map { |key| StringUtil.parse(request_params[key], symbolize: true) }
29
31
  if !!request_params[:rest_args] && !request_params[:rest_args].empty?
30
32
  @worker_params << StringUtil.parse_json(request_params[:rest_args].strip, symbolize: true)
31
33
  end
@@ -0,0 +1,19 @@
1
+ module SidekiqAdhocJob
2
+ module Strategies
3
+ class RailsApplicationJob
4
+ include SidekiqAdhocJob::Strategy
5
+
6
+ def worker_class?(klass)
7
+ klass.superclass&.name == 'ApplicationJob'
8
+ end
9
+
10
+ def get_queue_name(klass_name)
11
+ klass_name.queue_name
12
+ end
13
+
14
+ def perform_async(klass, *params)
15
+ klass.perform_later(*params)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module SidekiqAdhocJob
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '1.0.1'.freeze
3
3
  end
@@ -4,7 +4,7 @@ module SidekiqAdhocJob
4
4
  class JobPresenter
5
5
  include Sidekiq::WebHelpers
6
6
 
7
- attr_reader :name, :path_name, :queue, :has_rest_args, :args
7
+ attr_reader :name, :path_name, :queue, :required_args, :optional_args, :has_rest_args
8
8
 
9
9
  StringUtil ||= ::SidekiqAdhocJob::Utils::String
10
10
 
@@ -16,7 +16,6 @@ module SidekiqAdhocJob
16
16
  @required_args = args[:req] || []
17
17
  @optional_args = args[:opt] || []
18
18
  @has_rest_args = !!args[:rest]
19
- @args = @required_args + @optional_args
20
19
  end
21
20
 
22
21
  # Builds the presenter instances for the schedule hash
@@ -1,7 +1,8 @@
1
1
  en:
2
2
  adhoc_jobs: Adhoc Jobs
3
3
  adhoc_jobs_actions: Actions
4
- adhoc_jobs_arguments: Required Arguments
4
+ adhoc_jobs_required_arguments: Required Arguments
5
+ adhoc_jobs_optional_arguments: Optional Arguments
5
6
  adhoc_jobs_go_back: Go Back
6
7
  adhoc_jobs_has_rest_arguments: Has Rest Arguments
7
8
  adhoc_jobs_name: Job Name
@@ -6,7 +6,8 @@
6
6
  <tr>
7
7
  <th><%= t('adhoc_jobs_name') %></th>
8
8
  <th><%= t('adhoc_jobs_queue') %></th>
9
- <th><%= t('adhoc_jobs_arguments') %></th>
9
+ <th><%= t('adhoc_jobs_required_arguments') %></th>
10
+ <th><%= t('adhoc_jobs_optional_arguments') %></th>
10
11
  <th><%= t('adhoc_jobs_has_rest_arguments') %></th>
11
12
  <th><%= t('adhoc_jobs_actions') %></th>
12
13
  </tr>
@@ -17,7 +18,8 @@
17
18
  <tr>
18
19
  <td><%= job.name %></td>
19
20
  <td><%= job.queue %></td>
20
- <td><%= job.args.join(', ') %></td>
21
+ <td><%= job.required_args.join(', ') %></td>
22
+ <td><%= job.optional_args.join(', ') %></td>
21
23
  <td><%= job.has_rest_args %></td>
22
24
  <td class="text-center">
23
25
  <a class="btn btn-warn btn-xs" href="<%= root_path %>adhoc-jobs/<%= URI.escape(job.path_name) %>">
@@ -4,10 +4,10 @@
4
4
 
5
5
  <form method="POST" action="<%= root_path %>adhoc-jobs/<%= URI.escape(@presented_job.path_name) %>/schedule">
6
6
  <input type="hidden" name="authenticity_token" value="<%= @csrf_token %>" />
7
- <% if @presented_job.args.empty? && !@presented_job.has_rest_args %>
7
+ <% if @presented_job.required_args.empty? && @presented_job.optional_args.empty? && !@presented_job.has_rest_args %>
8
8
  <p>No job arguments</p>
9
9
  <% else %>
10
- <% @presented_job.args.each do |arg| %>
10
+ <% @presented_job.required_args.each do |arg| %>
11
11
  <div class="form-group row">
12
12
  <label class="col-sm-2 col-form-label" for="<%= arg %>">*<%= arg %>:</label>
13
13
  <div class="col-sm-4">
@@ -15,11 +15,19 @@
15
15
  </div>
16
16
  </div>
17
17
  <% end %>
18
+ <% @presented_job.optional_args.each do |arg| %>
19
+ <div class="form-group row">
20
+ <label class="col-sm-2 col-form-label" for="<%= arg %>"><%= arg %>:</label>
21
+ <div class="col-sm-4">
22
+ <input class="form-control" type="text" name="<%= arg %>" id="<%= arg %>"/>
23
+ </div>
24
+ </div>
25
+ <% end %>
18
26
  <% if @presented_job.has_rest_args %>
19
27
  <div class="form-group row">
20
- <label class="col-sm-2 col-form-label" for="rest_args">*Rest arguments (please provide a json string representing the arguments):</label>
28
+ <label class="col-sm-2 col-form-label" for="rest_args">Rest arguments (please provide a json string representing the arguments):</label>
21
29
  <div class="col-sm-4">
22
- <input class="form-control" type="text" name="rest_args" id="rest_args" required/>
30
+ <input class="form-control" type="text" name="rest_args" id="rest_args"/>
23
31
  </div>
24
32
  </div>
25
33
  <% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq_adhoc_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Goh Khoon Hiang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-09 00:00:00.000000000 Z
11
+ date: 2020-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 3.8.0
61
+ version: 3.10.0
62
62
  type: :development
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: 3.8.0
68
+ version: 3.10.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack-test
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.20.0
89
+ version: 0.26.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.20.0
96
+ version: 0.26.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: sidekiq
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "<"
102
102
  - !ruby/object:Gem::Version
103
- version: 5.2.7
103
+ version: '7'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "<"
109
109
  - !ruby/object:Gem::Version
110
- version: 5.2.7
110
+ version: '7'
111
111
  description: Trigger jobs adhoc from Sidekiq web admin
112
112
  email:
113
113
  - gohkhoonhiang@gmail.com
@@ -119,6 +119,7 @@ files:
119
119
  - lib/sidekiq_adhoc_job/services/schedule_adhoc_job.rb
120
120
  - lib/sidekiq_adhoc_job/strategies/active_job.rb
121
121
  - lib/sidekiq_adhoc_job/strategies/default.rb
122
+ - lib/sidekiq_adhoc_job/strategies/rails_application_job.rb
122
123
  - lib/sidekiq_adhoc_job/strategy.rb
123
124
  - lib/sidekiq_adhoc_job/utils/class_inspector.rb
124
125
  - lib/sidekiq_adhoc_job/utils/string.rb
@@ -144,17 +145,16 @@ require_paths:
144
145
  - lib
145
146
  required_ruby_version: !ruby/object:Gem::Requirement
146
147
  requirements:
147
- - - ">="
148
+ - - "~>"
148
149
  - !ruby/object:Gem::Version
149
- version: 2.6.0
150
+ version: '2.6'
150
151
  required_rubygems_version: !ruby/object:Gem::Requirement
151
152
  requirements:
152
153
  - - ">="
153
154
  - !ruby/object:Gem::Version
154
155
  version: '0'
155
156
  requirements: []
156
- rubyforge_project:
157
- rubygems_version: 2.7.7
157
+ rubygems_version: 3.0.8
158
158
  signing_key:
159
159
  specification_version: 4
160
160
  summary: Trigger jobs adhoc from Sidekiq web admin