sidekiq_adhoc_job 0.1.5 → 0.1.6
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/lib/sidekiq_adhoc_job.rb +2 -6
- data/lib/sidekiq_adhoc_job/version.rb +1 -1
- data/lib/sidekiq_adhoc_job/worker_classes_loader.rb +15 -25
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b485f48179615a49f00e4a39c0ff9b7d4ffe77ef9336e331d875633c1ccdf82
|
4
|
+
data.tar.gz: c0f7d9316a7cff046ebe6ef03fea42206ff0c195c5e6081fe80750e5de5f98c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 427a776633fa687204e6a7d73f7ef95c0e3fc3a77995fccbb4ab84a78bd3a51c731f98ee7ffa3886df6f9e98bd735dd5a73136c2bf5f45e028d3de1a0c60edbe
|
7
|
+
data.tar.gz: c4897277ab341b525cd4dcf1b4943cac66ba27a46d581d91334f32eb8867c0bf300d96eb342093c10530a43d4cb0f1e85cb08b1dad852e0f746e20d1ffd6b8bd
|
data/lib/sidekiq_adhoc_job.rb
CHANGED
@@ -10,8 +10,6 @@ require 'sidekiq_adhoc_job/web'
|
|
10
10
|
|
11
11
|
module SidekiqAdhocJob
|
12
12
|
|
13
|
-
InvalidConfigurationError ||= Class.new(RuntimeError)
|
14
|
-
|
15
13
|
def self.configure
|
16
14
|
@_config = Configuration.new
|
17
15
|
yield @_config
|
@@ -22,8 +20,6 @@ module SidekiqAdhocJob
|
|
22
20
|
end
|
23
21
|
|
24
22
|
def self.init
|
25
|
-
raise InvalidConfigurationError, 'Must configure before init' unless @_config&.configured?
|
26
|
-
|
27
23
|
SidekiqAdhocJob::WorkerClassesLoader.load(@_config.module_names)
|
28
24
|
|
29
25
|
Sidekiq::Web.register(SidekiqAdhocJob::Web)
|
@@ -38,8 +34,8 @@ module SidekiqAdhocJob
|
|
38
34
|
@module_names = []
|
39
35
|
end
|
40
36
|
|
41
|
-
def
|
42
|
-
|
37
|
+
def module_names
|
38
|
+
Array(@module_names).map(&:to_s)
|
43
39
|
end
|
44
40
|
end
|
45
41
|
|
@@ -1,15 +1,11 @@
|
|
1
1
|
module SidekiqAdhocJob
|
2
2
|
class WorkerClassesLoader
|
3
|
-
|
4
|
-
StringUtil ||= Utils::String
|
5
|
-
|
6
3
|
@_worker_klasses = {}
|
7
4
|
|
8
5
|
def self.load(module_names)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
load_workers(module_const, sub_module_const_sym, @_worker_klasses)
|
6
|
+
ObjectSpace.each_object(Class).each do |klass|
|
7
|
+
if worker_class?(klass) && allowed_namespace?(klass.name, allowlist: module_names)
|
8
|
+
@_worker_klasses[worker_path_name(klass.name)] = klass
|
13
9
|
end
|
14
10
|
end
|
15
11
|
end
|
@@ -22,27 +18,21 @@ module SidekiqAdhocJob
|
|
22
18
|
@_worker_klasses[path_name]
|
23
19
|
end
|
24
20
|
|
25
|
-
def self.
|
26
|
-
|
21
|
+
def self.worker_class?(klass)
|
22
|
+
klass.included_modules.include?(Sidekiq::Worker)
|
23
|
+
end
|
24
|
+
private_class_method :worker_class?
|
27
25
|
|
28
|
-
|
29
|
-
|
30
|
-
rescue NameError => _e
|
31
|
-
qualified_name = [parent_module_const, module_sym].compact.join('::')
|
32
|
-
begin
|
33
|
-
StringUtil.constantize(qualified_name)
|
34
|
-
rescue NameError => _e
|
35
|
-
nil
|
36
|
-
end
|
37
|
-
end
|
38
|
-
return unless module_const && module_const.is_a?(Class)
|
26
|
+
def self.allowed_namespace?(class_name, allowlist:)
|
27
|
+
return true if allowlist.empty? || allowlist.include?('Module') # allow any namespace
|
39
28
|
|
40
|
-
|
41
|
-
path_name = StringUtil.underscore(qualified_name).gsub('/', '_')
|
42
|
-
workers[path_name] = module_const
|
43
|
-
return
|
44
|
-
end
|
29
|
+
allowlist.any? { |prefix| class_name.start_with?(prefix) }
|
45
30
|
end
|
31
|
+
private_class_method :allowed_namespace?
|
46
32
|
|
33
|
+
def self.worker_path_name(worker_name)
|
34
|
+
Utils::String.underscore(worker_name).gsub('/', '_')
|
35
|
+
end
|
36
|
+
private_class_method :worker_path_name
|
47
37
|
end
|
48
38
|
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.1.
|
4
|
+
version: 0.1.6
|
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:
|
11
|
+
date: 2020-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,7 +150,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: '0'
|
152
152
|
requirements: []
|
153
|
-
|
153
|
+
rubyforge_project:
|
154
|
+
rubygems_version: 2.7.7
|
154
155
|
signing_key:
|
155
156
|
specification_version: 4
|
156
157
|
summary: Trigger jobs adhoc from Sidekiq web admin
|