sidekiq-enqueue 0.0.3 → 0.0.4
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/.rubocop.yml +4 -1
- data/.tool-versions +1 -1
- data/CHANGELOG.md +6 -2
- data/Gemfile.lock +27 -26
- data/README.md +11 -0
- data/lib/sidekiq/enqueue/services/available_jobs.rb +58 -0
- data/lib/sidekiq/enqueue/services/enqueue.rb +10 -2
- data/lib/sidekiq/enqueue/version.rb +1 -1
- data/lib/sidekiq/enqueue/web/locales/en.yml +3 -0
- data/lib/sidekiq/enqueue/web/routes/enqueue.rb +6 -1
- data/lib/sidekiq/enqueue/web/routes/index.rb +2 -0
- data/lib/sidekiq/enqueue/web/templates/index.html.erb +85 -17
- data/lib/sidekiq/enqueue/web.rb +1 -0
- data/sidekiq-enqueue.gemspec +39 -0
- metadata +7 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b7e0670989272758e4def45a7bb33e090464b31078ab7d2a23f0eb6ff08b905a
|
|
4
|
+
data.tar.gz: 62f0740f8438f75f016fc961aaa13fba6c45b4846495465a704edc398dace8ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dd686de4c4c309c36e3c9ad2cc5f9ea9ed1f03aed57591e8c0eeb455964808508dab4e7d46a3ffa15dfe58d79fbf963b1896136a57d6cf407a403f3198744cd5
|
|
7
|
+
data.tar.gz: 9035c08ea3c292b8b7e13195869ae5e799e4e38f3f6a45e27f6baf4ec0b87ac4e94e7c4196c3b8df0191053943e1f1f8c3d0260bec00cd4a0d2f5ef8fbc5299a
|
data/.rubocop.yml
CHANGED
|
@@ -4,7 +4,7 @@ require:
|
|
|
4
4
|
AllCops:
|
|
5
5
|
NewCops: enable
|
|
6
6
|
SuggestExtensions: false
|
|
7
|
-
TargetRubyVersion: 3.
|
|
7
|
+
TargetRubyVersion: 3.4.0
|
|
8
8
|
|
|
9
9
|
Gemspec/DevelopmentDependencies:
|
|
10
10
|
Enabled: false
|
|
@@ -34,6 +34,9 @@ RSpec/SpecFilePathFormat:
|
|
|
34
34
|
RSpec/SubjectStub:
|
|
35
35
|
Enabled: false
|
|
36
36
|
|
|
37
|
+
RSpec/MultipleExpectations:
|
|
38
|
+
Enabled: false
|
|
39
|
+
|
|
37
40
|
RSpec/VerifiedDoubles:
|
|
38
41
|
Enabled: false
|
|
39
42
|
|
data/.tool-versions
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby 3.4.
|
|
1
|
+
ruby 3.4.7
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
sidekiq-enqueue (0.0.
|
|
5
|
-
sidekiq (<
|
|
4
|
+
sidekiq-enqueue (0.0.4)
|
|
5
|
+
sidekiq (< 9)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
ast (2.4.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
parser (3.3.7.0)
|
|
10
|
+
ast (2.4.3)
|
|
11
|
+
connection_pool (3.0.2)
|
|
12
|
+
diff-lcs (1.6.2)
|
|
13
|
+
json (2.19.2)
|
|
14
|
+
language_server-protocol (3.17.0.5)
|
|
15
|
+
logger (1.7.0)
|
|
16
|
+
parallel (1.27.0)
|
|
17
|
+
parser (3.3.10.2)
|
|
19
18
|
ast (~> 2.4.1)
|
|
20
19
|
racc
|
|
20
|
+
prism (1.9.0)
|
|
21
21
|
racc (1.8.1)
|
|
22
|
-
rack (3.2.
|
|
22
|
+
rack (3.2.5)
|
|
23
23
|
rainbow (3.1.1)
|
|
24
24
|
rake (13.0.6)
|
|
25
|
-
redis-client (0.
|
|
25
|
+
redis-client (0.28.0)
|
|
26
26
|
connection_pool
|
|
27
|
-
regexp_parser (2.
|
|
27
|
+
regexp_parser (2.11.3)
|
|
28
28
|
rspec (3.12.0)
|
|
29
29
|
rspec-core (~> 3.12.0)
|
|
30
30
|
rspec-expectations (~> 3.12.0)
|
|
@@ -50,20 +50,21 @@ GEM
|
|
|
50
50
|
rubocop-ast (>= 1.36.2, < 2.0)
|
|
51
51
|
ruby-progressbar (~> 1.7)
|
|
52
52
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
53
|
-
rubocop-ast (1.
|
|
54
|
-
parser (>= 3.3.
|
|
53
|
+
rubocop-ast (1.49.1)
|
|
54
|
+
parser (>= 3.3.7.2)
|
|
55
|
+
prism (~> 1.7)
|
|
55
56
|
rubocop-rspec (3.0.5)
|
|
56
57
|
rubocop (~> 1.61)
|
|
57
58
|
ruby-progressbar (1.13.0)
|
|
58
|
-
sidekiq (
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
logger
|
|
62
|
-
rack (>=
|
|
63
|
-
redis-client (>= 0.
|
|
64
|
-
unicode-display_width (3.
|
|
65
|
-
unicode-emoji (~> 4.
|
|
66
|
-
unicode-emoji (4.0
|
|
59
|
+
sidekiq (8.1.1)
|
|
60
|
+
connection_pool (>= 3.0.0)
|
|
61
|
+
json (>= 2.16.0)
|
|
62
|
+
logger (>= 1.7.0)
|
|
63
|
+
rack (>= 3.2.0)
|
|
64
|
+
redis-client (>= 0.26.0)
|
|
65
|
+
unicode-display_width (3.2.0)
|
|
66
|
+
unicode-emoji (~> 4.1)
|
|
67
|
+
unicode-emoji (4.2.0)
|
|
67
68
|
|
|
68
69
|
PLATFORMS
|
|
69
70
|
arm64-darwin-24
|
|
@@ -78,4 +79,4 @@ DEPENDENCIES
|
|
|
78
79
|
sidekiq-enqueue!
|
|
79
80
|
|
|
80
81
|
BUNDLED WITH
|
|
81
|
-
2.
|
|
82
|
+
2.6.9
|
data/README.md
CHANGED
|
@@ -21,3 +21,14 @@ Sidekiq::Enqueue.init
|
|
|
21
21
|
## Web UI
|
|
22
22
|
|
|
23
23
|
The web UI is accessible via `#{root_url}/#{sidekiq_web_path}/enqueue`.
|
|
24
|
+
|
|
25
|
+
## Release
|
|
26
|
+
|
|
27
|
+
Merging to `main` does not automatically publish a new gem version. Before another app can consume a new release by updating its `Gemfile`, publish the gem to RubyGems:
|
|
28
|
+
|
|
29
|
+
1. Update `Sidekiq::Enqueue::VERSION` in `lib/sidekiq/enqueue/version.rb`.
|
|
30
|
+
2. Update `CHANGELOG.md`.
|
|
31
|
+
3. Merge the release changes to `main`.
|
|
32
|
+
4. Run `bundle exec rake release`.
|
|
33
|
+
|
|
34
|
+
`bundle exec rake release` will build the gem, create a git tag for the version, and push the gem to RubyGems. After that, update the gem version in the other app's `Gemfile` and run Bundler as usual.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Sidekiq
|
|
4
|
+
module Enqueue
|
|
5
|
+
module Services
|
|
6
|
+
class AvailableJobs
|
|
7
|
+
def self.call
|
|
8
|
+
eager_load_jobs!
|
|
9
|
+
|
|
10
|
+
job_names
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.job_names
|
|
14
|
+
@job_names ||= ObjectSpace.each_object(Class)
|
|
15
|
+
.filter_map { |klass| job_name_for(klass) }
|
|
16
|
+
.uniq
|
|
17
|
+
.sort
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def self.reset_cache!
|
|
21
|
+
@job_names = nil
|
|
22
|
+
@job_files = nil
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.eager_load_jobs!
|
|
26
|
+
return unless defined?(Rails) && Rails.respond_to?(:root) && Rails.root
|
|
27
|
+
|
|
28
|
+
job_files
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.job_files
|
|
32
|
+
@job_files ||= Dir[Rails.root.join("app/jobs/**/*.rb")].each do |file|
|
|
33
|
+
if defined?(require_dependency)
|
|
34
|
+
require_dependency(file)
|
|
35
|
+
else
|
|
36
|
+
require(file)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def self.job_name_for(klass)
|
|
42
|
+
return unless klass.name
|
|
43
|
+
return unless valid_job_class?(klass)
|
|
44
|
+
|
|
45
|
+
klass.name
|
|
46
|
+
rescue StandardError
|
|
47
|
+
nil
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def self.valid_job_class?(klass)
|
|
51
|
+
klass.respond_to?(:perform_async) && klass.respond_to?(:get_sidekiq_options)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private_class_method :eager_load_jobs!, :job_name_for, :valid_job_class?, :new
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "json"
|
|
4
|
+
|
|
3
5
|
module Sidekiq
|
|
4
6
|
module Enqueue
|
|
5
7
|
module Services
|
|
6
8
|
class Enqueue
|
|
7
9
|
def initialize(job_name, arguments)
|
|
8
|
-
@
|
|
10
|
+
@job_name = job_name
|
|
9
11
|
@arguments = arguments
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
def call
|
|
13
|
-
|
|
15
|
+
job_class.perform_async(*@arguments.split(",").map(&:strip))
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def job_class
|
|
21
|
+
Module.const_get(@job_name)
|
|
14
22
|
end
|
|
15
23
|
end
|
|
16
24
|
end
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
en:
|
|
2
2
|
sidekiq_enqueue: Enqueue Job
|
|
3
3
|
sidekiq_enqueue_arguments: Arguments
|
|
4
|
+
sidekiq_enqueue_arguments_hint: Enter a comma-separated list of arguments to pass to the job.
|
|
4
5
|
sidekiq_enqueue_job_name: Job Name
|
|
6
|
+
sidekiq_enqueue_jobs_load_error: Unable to load available jobs.
|
|
7
|
+
sidekiq_enqueue_job_name_hint: Search for or enter the worker class name to enqueue.
|
|
5
8
|
sidekiq_enqueue_submit: Submit
|
|
@@ -7,9 +7,14 @@ module Sidekiq
|
|
|
7
7
|
class Enqueue
|
|
8
8
|
def self.register(app)
|
|
9
9
|
app.post "/enqueue" do
|
|
10
|
-
|
|
10
|
+
raise StandardError, "Job name is required" if url_params("job_name").nil? || url_params("job_name").empty?
|
|
11
|
+
|
|
12
|
+
Sidekiq::Enqueue::Services::Enqueue.new(url_params("job_name"), url_params("arguments")).call
|
|
11
13
|
|
|
12
14
|
redirect "#{root_path}enqueue"
|
|
15
|
+
rescue StandardError => e
|
|
16
|
+
@enqueue_error = e
|
|
17
|
+
erb File.read(File.join(VIEW_PATH, "index.html.erb"))
|
|
13
18
|
end
|
|
14
19
|
end
|
|
15
20
|
end
|
|
@@ -1,25 +1,93 @@
|
|
|
1
|
-
<
|
|
1
|
+
<style nonce="<%= csp_nonce %>">
|
|
2
|
+
.enqueue-form-container {
|
|
3
|
+
max-width: 40rem;
|
|
4
|
+
padding: 1.5rem 0;
|
|
5
|
+
}
|
|
2
6
|
|
|
3
|
-
|
|
4
|
-
|
|
7
|
+
.enqueue-form-title {
|
|
8
|
+
margin-bottom: 1.25rem;
|
|
9
|
+
}
|
|
5
10
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
.enqueue-form {
|
|
12
|
+
display: block;
|
|
13
|
+
width: 100%;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.enqueue-form-group {
|
|
17
|
+
display: block;
|
|
18
|
+
margin-bottom: 1.5rem;
|
|
19
|
+
width: 100%;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.enqueue-form-label {
|
|
23
|
+
display: block;
|
|
24
|
+
margin-bottom: 0.35rem;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.enqueue-form-input {
|
|
28
|
+
box-sizing: border-box;
|
|
29
|
+
display: block;
|
|
30
|
+
height: auto;
|
|
31
|
+
min-height: 2.25rem;
|
|
32
|
+
width: 100%;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.enqueue-form-hint {
|
|
36
|
+
display: block;
|
|
37
|
+
margin-top: 0.35rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.enqueue-form-actions {
|
|
41
|
+
margin-top: 1.5rem;
|
|
42
|
+
}
|
|
43
|
+
</style>
|
|
44
|
+
|
|
45
|
+
<script nonce="<%= csp_nonce %>">
|
|
46
|
+
localStorage.sidekiqLivePoll = "disabled";
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<% available_jobs = [] %>
|
|
50
|
+
<% available_jobs_error = nil %>
|
|
51
|
+
<% begin %>
|
|
52
|
+
<% available_jobs = Sidekiq::Enqueue::Services::AvailableJobs.call %>
|
|
53
|
+
<% rescue StandardError %>
|
|
54
|
+
<% available_jobs_error = t('sidekiq_enqueue_jobs_load_error', default: 'Unable to load available jobs.') %>
|
|
55
|
+
<% end %>
|
|
56
|
+
|
|
57
|
+
<div class="enqueue-form-container">
|
|
58
|
+
<h3 class="enqueue-form-title"><%= t('sidekiq_enqueue') %></h3>
|
|
59
|
+
|
|
60
|
+
<% if defined?(@enqueue_error) && @enqueue_error %>
|
|
61
|
+
<div class="alert alert-danger" role="alert">
|
|
62
|
+
<%= @enqueue_error.message %>
|
|
63
|
+
</div>
|
|
64
|
+
<% end %>
|
|
65
|
+
|
|
66
|
+
<form action="<%= root_path %>enqueue" method="post" id="enqueue-form" class="enqueue-form">
|
|
67
|
+
<%= csrf_tag %>
|
|
68
|
+
|
|
69
|
+
<div class="form-group string enqueue-form-group">
|
|
70
|
+
<label for="job_name" class="enqueue-form-label"><%= t('sidekiq_enqueue_job_name') %></label>
|
|
71
|
+
<input class="form-control enqueue-form-input" type="text" name="job_name" id="job_name" list="available_jobs" autocomplete="off" />
|
|
72
|
+
<datalist id="available_jobs">
|
|
73
|
+
<% available_jobs.each do |job_name| %>
|
|
74
|
+
<option value="<%= job_name %>"></option>
|
|
75
|
+
<% end %>
|
|
76
|
+
</datalist>
|
|
77
|
+
<% if available_jobs_error %>
|
|
78
|
+
<small class="hint enqueue-form-hint text-danger"><%= available_jobs_error %></small>
|
|
79
|
+
<% end %>
|
|
80
|
+
<small class="hint enqueue-form-hint"><%= t('sidekiq_enqueue_job_name_hint', default: 'Search for or enter the worker class name to enqueue.') %></small>
|
|
10
81
|
</div>
|
|
11
|
-
</div>
|
|
12
82
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<
|
|
83
|
+
<div class="form-group string enqueue-form-group">
|
|
84
|
+
<label for="arguments" class="enqueue-form-label"><%= t('sidekiq_enqueue_arguments') %></label>
|
|
85
|
+
<input class="form-control enqueue-form-input" type="text" name="arguments" id="arguments" autocomplete="off" />
|
|
86
|
+
<small class="hint enqueue-form-hint"><%= t('sidekiq_enqueue_arguments_hint', default: 'Enter a JSON array of arguments to pass to the job.') %></small>
|
|
17
87
|
</div>
|
|
18
|
-
</div>
|
|
19
88
|
|
|
20
|
-
|
|
21
|
-
<div class="col-sm-4">
|
|
89
|
+
<div class="form-actions enqueue-form-actions">
|
|
22
90
|
<button type="submit" class="btn btn-danger"><%= t('sidekiq_enqueue_submit') %></button>
|
|
23
91
|
</div>
|
|
24
|
-
</
|
|
25
|
-
</
|
|
92
|
+
</form>
|
|
93
|
+
</div>
|
data/lib/sidekiq/enqueue/web.rb
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lib/sidekiq/enqueue/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "sidekiq-enqueue"
|
|
7
|
+
spec.version = Sidekiq::Enqueue::VERSION
|
|
8
|
+
spec.authors = ["Jordan Ell"]
|
|
9
|
+
spec.email = ["jordan.ell@riipen.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "Manually enqueue Sidekiq jobs from the web UI."
|
|
12
|
+
spec.homepage = "https://github.com/riipen/sidekiq-enqueue"
|
|
13
|
+
spec.license = "MIT"
|
|
14
|
+
spec.required_ruby_version = ">= 3.4.0"
|
|
15
|
+
|
|
16
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
17
|
+
spec.metadata["changelog_uri"] = "https://github.com/riipen/sidekiq-enqueue/blob/master/CHANGELOG.md"
|
|
18
|
+
|
|
19
|
+
# Specify which files should be added to the gem when it is released.
|
|
20
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
21
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
22
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
|
23
|
+
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
spec.bindir = "exe"
|
|
27
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
28
|
+
spec.require_paths = ["lib"]
|
|
29
|
+
|
|
30
|
+
spec.add_development_dependency "rake", "~> 13.0.6"
|
|
31
|
+
spec.add_development_dependency "rspec", "~> 3.12.0"
|
|
32
|
+
spec.add_development_dependency "rspec_junit_formatter", "~> 0.6.0"
|
|
33
|
+
spec.add_development_dependency "rubocop", "~> 1.69.2"
|
|
34
|
+
spec.add_development_dependency "rubocop-rspec", "~> 3.0.4"
|
|
35
|
+
|
|
36
|
+
spec.add_dependency "sidekiq", "< 9"
|
|
37
|
+
|
|
38
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
39
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidekiq-enqueue
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jordan Ell
|
|
@@ -85,14 +85,14 @@ dependencies:
|
|
|
85
85
|
requirements:
|
|
86
86
|
- - "<"
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '
|
|
88
|
+
version: '9'
|
|
89
89
|
type: :runtime
|
|
90
90
|
prerelease: false
|
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
92
|
requirements:
|
|
93
93
|
- - "<"
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '
|
|
95
|
+
version: '9'
|
|
96
96
|
email:
|
|
97
97
|
- jordan.ell@riipen.com
|
|
98
98
|
executables: []
|
|
@@ -110,6 +110,7 @@ files:
|
|
|
110
110
|
- README.md
|
|
111
111
|
- Rakefile
|
|
112
112
|
- lib/sidekiq/enqueue.rb
|
|
113
|
+
- lib/sidekiq/enqueue/services/available_jobs.rb
|
|
113
114
|
- lib/sidekiq/enqueue/services/enqueue.rb
|
|
114
115
|
- lib/sidekiq/enqueue/version.rb
|
|
115
116
|
- lib/sidekiq/enqueue/web.rb
|
|
@@ -117,6 +118,7 @@ files:
|
|
|
117
118
|
- lib/sidekiq/enqueue/web/routes/enqueue.rb
|
|
118
119
|
- lib/sidekiq/enqueue/web/routes/index.rb
|
|
119
120
|
- lib/sidekiq/enqueue/web/templates/index.html.erb
|
|
121
|
+
- sidekiq-enqueue.gemspec
|
|
120
122
|
homepage: https://github.com/riipen/sidekiq-enqueue
|
|
121
123
|
licenses:
|
|
122
124
|
- MIT
|
|
@@ -131,14 +133,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
131
133
|
requirements:
|
|
132
134
|
- - ">="
|
|
133
135
|
- !ruby/object:Gem::Version
|
|
134
|
-
version: 3.
|
|
136
|
+
version: 3.4.0
|
|
135
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
138
|
requirements:
|
|
137
139
|
- - ">="
|
|
138
140
|
- !ruby/object:Gem::Version
|
|
139
141
|
version: '0'
|
|
140
142
|
requirements: []
|
|
141
|
-
rubygems_version: 3.6.
|
|
143
|
+
rubygems_version: 3.6.9
|
|
142
144
|
specification_version: 4
|
|
143
145
|
summary: Manually enqueue Sidekiq jobs from the web UI.
|
|
144
146
|
test_files: []
|