sidekiq_adhoc_job 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|