sidekiq-enqueuer 2.0.0 → 2.1.0.beta1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +1 -6
- data/lib/sidekiq/enqueuer/version.rb +1 -1
- data/lib/sidekiq/enqueuer/views/new.erb +0 -6
- data/lib/sidekiq/enqueuer/web_extension/helper.rb +2 -19
- data/lib/sidekiq/enqueuer/web_extension/loader.rb +2 -5
- data/lib/sidekiq/enqueuer/web_extension/params_parser.rb +18 -28
- data/lib/sidekiq/enqueuer/worker/instance.rb +2 -2
- data/lib/sidekiq/enqueuer/worker/param.rb +10 -5
- data/lib/sidekiq/enqueuer.rb +0 -2
- data/sidekiq-enqueuer.gemspec +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd0c3ed9a31d9741b5bec6103f7daedfd20a9f1c
|
4
|
+
data.tar.gz: 8e31a23c14f03f9b5e65964b7fd1156c0a9d4584
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c9ef2086a55ef281d1372579f13f327597366d2bb1a8972e08b86f43ce3f5676e5c5abcc77c81501d498eb75466308b0c4899c36ce9b3b2630a9ffc05f8722f
|
7
|
+
data.tar.gz: 0ef6dffd01f43ba99b619a2899f5dda55fbf1eabad24ec8dfd916b3db86d663c2387e04c4a8e1f7816e97f84a2ad7af15b72ed44f0aef776c31a4f2f7a9ef41b
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,13 @@
|
|
5
5
|
- Version bump to stable after rollout to prod.
|
6
6
|
|
7
7
|
|
8
|
+
2.1.0.beta
|
9
|
+
-----------
|
10
|
+
- Drop support for Yaml-like params
|
11
|
+
- Added support for required and optional parameters based on the method definition
|
12
|
+
- Fixed issue with nil parameters being send to Jobs as `nil` strings
|
13
|
+
- Added New Exception to be raised when Required Param values are not present
|
14
|
+
|
8
15
|
2.0.0.beta
|
9
16
|
-----------
|
10
17
|
|
data/README.md
CHANGED
@@ -75,15 +75,10 @@ For ActiveJob, enqueing is being done calling the very own `perform_later` insta
|
|
75
75
|

|
76
76
|
|
77
77
|
* Fill the form, click Enqueue or Schedule.
|
78
|
-

|
79
79
|
|
80
80
|
* That is it!
|
81
81
|
|
82
|
-
## Form filling
|
83
|
-
* Support string value and hash value. Value will be stripped.
|
84
|
-
* Start with { will be parsed by YAML as hash, eg: {k1: v1, k2: v2} to {'k1'=> 'v1', 'k2'=> 'v2'}
|
85
|
-
|
86
|
-
|
87
82
|
## Contributing
|
88
83
|
|
89
84
|
Bug reports and pull requests are welcome on GitHub at https://github.com/richfisher/sidekiq-enqueuer.
|
@@ -1,10 +1,4 @@
|
|
1
1
|
<h3>Enqueuer</h3>
|
2
|
-
|
3
|
-
<div class="well">
|
4
|
-
<p>Support string value and hash value. Value will be stripped.</p>
|
5
|
-
<p>Start with { will be parsed by YAML as hash, eg: {k1: v1, k2: v2} to {'k1'=> 'v1', 'k2'=> 'v2'}. </p>
|
6
|
-
</div>
|
7
|
-
|
8
2
|
<form method="post" action="<%= root_path %>enqueuer">
|
9
3
|
<%= csrf_tag if respond_to?(:csrf_tag) %>
|
10
4
|
|
@@ -2,9 +2,9 @@ module Sidekiq
|
|
2
2
|
module Enqueuer
|
3
3
|
module WebExtension
|
4
4
|
module Helper
|
5
|
-
def get_params_by_action(name)
|
5
|
+
def get_params_by_action(name, job)
|
6
6
|
return [] if params[name].nil?
|
7
|
-
ParamsParser.new(params[name]).process
|
7
|
+
Sidekiq::Enqueuer::WebExtension::ParamsParser.new(params[name], job).process
|
8
8
|
end
|
9
9
|
|
10
10
|
def find_job_by_class_name(job_class_name)
|
@@ -12,23 +12,6 @@ module Sidekiq
|
|
12
12
|
job_klass.job == job_class_name || job_klass.job.to_s == job_class_name || job_klass.name == job_class_name
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
16
|
-
# TODO: Figure out the need of unlock!
|
17
|
-
# def does_job_have_unlock_method(klass_or_module)
|
18
|
-
# klass_or_module.respond_to?(:unlock!)
|
19
|
-
# false
|
20
|
-
# end
|
21
|
-
|
22
|
-
# TODO: Figure out the need of unlock!
|
23
|
-
# def get_job_unlock_params(klass_or_module)
|
24
|
-
# klass_or_module.method(:unlock!).parameters.map{ |e| e[1]}
|
25
|
-
# end
|
26
|
-
|
27
|
-
# TODO: Figure out the need of unlock!
|
28
|
-
# def self.unlock!(klass, values)
|
29
|
-
# parsed_values = values_parser(values)
|
30
|
-
# klass.unlock!(*parsed_values)
|
31
|
-
# end
|
32
15
|
end
|
33
16
|
end
|
34
17
|
end
|
@@ -18,12 +18,9 @@ module Sidekiq
|
|
18
18
|
|
19
19
|
app.post '/enqueuer' do
|
20
20
|
job = find_job_by_class_name(params[:job_class_name])
|
21
|
-
|
22
|
-
# TODO: Figure out the need of unlock!
|
23
|
-
# if params['unlock-enable'] && params['unlock-enable'] != ''
|
24
|
-
# Sidekiq::Enqueuer.unlock!(klass, get_params_by_action('unlock'))
|
25
|
-
# end
|
21
|
+
|
26
22
|
if job
|
23
|
+
requested_params = get_params_by_action('perform', job)
|
27
24
|
job.trigger(requested_params) if params['submit'] == 'Enqueue'
|
28
25
|
job.trigger_in(params['enqueue_in'], requested_params) if params['submit'] == 'Schedule'
|
29
26
|
end
|
@@ -2,45 +2,35 @@ module Sidekiq
|
|
2
2
|
module Enqueuer
|
3
3
|
module WebExtension
|
4
4
|
class ParamsParser
|
5
|
-
|
5
|
+
class NoProvidedValueForRequiredParam < StandardError; end
|
6
6
|
|
7
|
-
|
7
|
+
attr_reader :raw_params, :worker
|
8
|
+
|
9
|
+
def initialize(params, worker)
|
8
10
|
@raw_params = params
|
11
|
+
@worker = worker
|
9
12
|
end
|
10
13
|
|
11
14
|
def process
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
simple_params.values.compact.flatten
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def yaml_to_params(values)
|
22
|
-
unique_params = {}
|
23
|
-
values.each do |str_param|
|
24
|
-
param_hash = expected_hash?(str_param) ? convert_to_ruby(str_param) : {}
|
25
|
-
unique_params.merge!(param_hash)
|
15
|
+
worker.params.each do |expected_param|
|
16
|
+
value = extract_value(expected_param.name.to_s)
|
17
|
+
expected_param.value = value
|
18
|
+
raise NoProvidedValueForRequiredParam if expected_param.required? && !expected_param.value.present?
|
26
19
|
end
|
27
|
-
|
20
|
+
worker.params.map(&:value)
|
28
21
|
end
|
29
22
|
|
30
|
-
|
31
|
-
given_params.delete_if { |_, v| v.to_s.empty? }
|
32
|
-
end
|
33
|
-
|
34
|
-
def filter_complex(given_params)
|
35
|
-
given_params.delete_if { |_, v| expected_hash?(v.to_s) }
|
36
|
-
end
|
23
|
+
private
|
37
24
|
|
38
|
-
def
|
39
|
-
|
25
|
+
def extract_value(param_name)
|
26
|
+
return nil unless raw_params[param_name].present?
|
27
|
+
cleanup(raw_params[param_name])
|
40
28
|
end
|
41
29
|
|
42
|
-
def
|
43
|
-
value.to_s.
|
30
|
+
def cleanup(value)
|
31
|
+
return nil if value.to_s.downcase == 'nil'
|
32
|
+
return '' if value.to_s.strip.empty?
|
33
|
+
value
|
44
34
|
end
|
45
35
|
end
|
46
36
|
end
|
@@ -26,7 +26,7 @@ module Sidekiq
|
|
26
26
|
private
|
27
27
|
|
28
28
|
def trigger_job(input_params)
|
29
|
-
Trigger.new(job, input_params)
|
29
|
+
Sidekiq::Enqueuer::Worker::Trigger.new(job, input_params)
|
30
30
|
end
|
31
31
|
|
32
32
|
# TODO: what if two of this methods exist? which one to pick to figure out params?
|
@@ -38,7 +38,7 @@ module Sidekiq
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def deduce_params
|
41
|
-
worker_params.empty? ? [] : worker_params.map { |e| Param.new(e[1], e[0]) }
|
41
|
+
worker_params.empty? ? [] : worker_params.map { |e| Sidekiq::Enqueuer::Worker::Param.new(e[1], e[0]) }
|
42
42
|
end
|
43
43
|
|
44
44
|
def worker_params
|
@@ -2,17 +2,22 @@ module Sidekiq
|
|
2
2
|
module Enqueuer
|
3
3
|
module Worker
|
4
4
|
class Param
|
5
|
-
attr_reader :name, :
|
5
|
+
attr_reader :name, :label
|
6
|
+
attr_accessor :value
|
6
7
|
|
7
8
|
VALID_OPTIONS = { req: 'required', opt: 'optional' }.freeze
|
8
9
|
|
9
|
-
def initialize(name,
|
10
|
+
def initialize(name, label)
|
10
11
|
@name = name
|
11
|
-
@
|
12
|
+
@label = VALID_OPTIONS[label]
|
12
13
|
end
|
13
14
|
|
14
|
-
def
|
15
|
-
|
15
|
+
def required?
|
16
|
+
label == VALID_OPTIONS[:req]
|
17
|
+
end
|
18
|
+
|
19
|
+
def optional?
|
20
|
+
!required?
|
16
21
|
end
|
17
22
|
end
|
18
23
|
end
|
data/lib/sidekiq/enqueuer.rb
CHANGED
data/sidekiq-enqueuer.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_development_dependency 'bundler'
|
30
30
|
spec.add_development_dependency 'rake'
|
31
|
-
spec.add_development_dependency '
|
31
|
+
spec.add_development_dependency 'minitest'
|
32
32
|
spec.add_development_dependency 'sidekiq'
|
33
33
|
spec.add_development_dependency 'rails', '> 4.2'
|
34
34
|
spec.add_development_dependency 'sinatra'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-enqueuer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- richfisher
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -140,9 +140,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
140
140
|
version: '0'
|
141
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - ">"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: 1.3.1
|
146
146
|
requirements: []
|
147
147
|
rubyforge_project:
|
148
148
|
rubygems_version: 2.4.8
|