interactor-async 0.0.1 → 0.0.2
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/Gemfile.lock +1 -1
- data/lib/interactor/async.rb +23 -33
- data/lib/interactor/async/active_job_dispatcher.rb +12 -0
- data/lib/interactor/async/null_dispatcher.rb +9 -0
- data/lib/interactor/async/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7dec0ab9286513f77a1e59e7d7a494ae8e1148b1e6d1aaaa64798f3be5df7e8f
|
4
|
+
data.tar.gz: 6d8ed1e0e4c125f1eb6f96ef1f8bea304e8454d5eee915adef3d8f79a9f8e6a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd23c23d586432c1f4f9f294735c8cf346fea1719fbee29b812d6d29aff8fea7d7083b438c02a113e542debd795d3e527813615987cb2cfb1141434d1a68ad73
|
7
|
+
data.tar.gz: a25d2a2dcdf005eee401b6896bd3210290590f72fcc5a59bc3e013446c00fa3337a4f554e5285fb5b5b3a6ea8da606d4400fdf1ead5ac981a9997130e3d0bd8a
|
data/Gemfile.lock
CHANGED
data/lib/interactor/async.rb
CHANGED
@@ -1,48 +1,38 @@
|
|
1
1
|
require "interactor"
|
2
2
|
require "interactor/async/version"
|
3
|
+
require "interactor/async/null_dispatcher"
|
4
|
+
require "interactor/async/active_job_dispatcher"
|
3
5
|
|
4
6
|
module Interactor
|
5
7
|
module Async
|
6
|
-
|
7
|
-
class Dispatcher < ActiveJob::Base
|
8
|
-
def perform(name, *args)
|
9
|
-
name.constantize.call(*args)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class << self
|
15
|
-
def configure &block
|
16
|
-
instance_eval(&block)
|
17
|
-
end
|
8
|
+
extend self
|
18
9
|
|
19
|
-
|
20
|
-
|
21
|
-
|
10
|
+
def configure &block
|
11
|
+
instance_eval(&block)
|
12
|
+
end
|
22
13
|
|
23
|
-
|
24
|
-
|
25
|
-
|
14
|
+
def config
|
15
|
+
@config ||= default_config
|
16
|
+
end
|
26
17
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
else
|
31
|
-
{}
|
32
|
-
end
|
18
|
+
def reset_config!
|
19
|
+
@config = default_config
|
20
|
+
end
|
33
21
|
|
34
|
-
|
22
|
+
def default_config
|
23
|
+
default_options = if defined?(ActiveJob::Base)
|
24
|
+
{job_wrapper: ActiveJobDispatcher}
|
25
|
+
else
|
26
|
+
{job_wrapper: NullDispatcher}
|
35
27
|
end
|
36
28
|
|
37
|
-
|
38
|
-
base.extend ClassMethods
|
39
|
-
end
|
29
|
+
OpenStruct.new(default_options)
|
40
30
|
end
|
31
|
+
end
|
32
|
+
end
|
41
33
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
end
|
46
|
-
end
|
34
|
+
Interactor::ClassMethods.class_eval do
|
35
|
+
def call_later *args
|
36
|
+
Interactor::Async.config.job_wrapper.perform_later(name, *args)
|
47
37
|
end
|
48
38
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: interactor-async
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kasper Meyer
|
@@ -126,6 +126,8 @@ files:
|
|
126
126
|
- bin/setup
|
127
127
|
- interactor-async.gemspec
|
128
128
|
- lib/interactor/async.rb
|
129
|
+
- lib/interactor/async/active_job_dispatcher.rb
|
130
|
+
- lib/interactor/async/null_dispatcher.rb
|
129
131
|
- lib/interactor/async/version.rb
|
130
132
|
homepage: https://github.com/kaspermeyer/interactor-async
|
131
133
|
licenses:
|