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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d682633a1e55f4d7c6be26914ab304cfbf395906a99b87067bdb035795d142c
4
- data.tar.gz: 10c357c98338c37cd46f00830a9e0f85323e06217b2bb37afc0c02eadbb8d2ec
3
+ metadata.gz: 7dec0ab9286513f77a1e59e7d7a494ae8e1148b1e6d1aaaa64798f3be5df7e8f
4
+ data.tar.gz: 6d8ed1e0e4c125f1eb6f96ef1f8bea304e8454d5eee915adef3d8f79a9f8e6a9
5
5
  SHA512:
6
- metadata.gz: 9e99c1a763e0321f05c65277d061e3482707db12eac1ca8cfaa1a5aa9f3d476735d4795eadfeadfb65047bf3a29ba5f8e9566282b6f99b7f68e71f2da7c40f8b
7
- data.tar.gz: d53185c99f6f95a20ce45a480ef6bd977b0752efa918045ac0f73f3175886799ec39bef44d493d503a6d78a2da06b5f66b82a4f8855377d36b302532e846d6a9
6
+ metadata.gz: bd23c23d586432c1f4f9f294735c8cf346fea1719fbee29b812d6d29aff8fea7d7083b438c02a113e542debd795d3e527813615987cb2cfb1141434d1a68ad73
7
+ data.tar.gz: a25d2a2dcdf005eee401b6896bd3210290590f72fcc5a59bc3e013446c00fa3337a4f554e5285fb5b5b3a6ea8da606d4400fdf1ead5ac981a9997130e3d0bd8a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- interactor-async (0.0.1)
4
+ interactor-async (0.0.2)
5
5
  interactor (~> 3.0)
6
6
 
7
7
  GEM
@@ -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
- if defined?(ActiveJob::Base)
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
- def config
20
- @config ||= default_config
21
- end
10
+ def configure &block
11
+ instance_eval(&block)
12
+ end
22
13
 
23
- def reset_config!
24
- @config = default_config
25
- end
14
+ def config
15
+ @config ||= default_config
16
+ end
26
17
 
27
- def default_config
28
- default_options = if defined?(Dispatcher)
29
- {job_wrapper: Dispatcher}
30
- else
31
- {}
32
- end
18
+ def reset_config!
19
+ @config = default_config
20
+ end
33
21
 
34
- OpenStruct.new(default_options)
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
- def included(base)
38
- base.extend ClassMethods
39
- end
29
+ OpenStruct.new(default_options)
40
30
  end
31
+ end
32
+ end
41
33
 
42
- module ClassMethods
43
- def call_later *args
44
- Interactor::Async.config.job_wrapper.perform_later(name, *args)
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
@@ -0,0 +1,12 @@
1
+ module Interactor
2
+ module Async
3
+ if defined?(ActiveJob::Base)
4
+ class ActiveJobDispatcher < ActiveJob::Base
5
+ def perform(name, *args)
6
+ name.constantize.call(*args)
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
12
+
@@ -0,0 +1,9 @@
1
+ module Interactor
2
+ module Async
3
+ class NullDispatcher
4
+ def self.perform_later(name, *args)
5
+ name.constantize.call(*args)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,5 +1,5 @@
1
1
  module Interactor
2
2
  module Async
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  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.1
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: