interactor-async 0.0.1 → 0.0.2

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