emittance-resque 1.0.0 → 1.1.0

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
  SHA1:
3
- metadata.gz: '0082d65adf9c96d40e09536e10340f29dbb9523d'
4
- data.tar.gz: 9006ef3541397a79f0afa0e41f24860f425c7689
3
+ metadata.gz: aa7e46cd8958a963475c19ff1c97d910b37b52d0
4
+ data.tar.gz: 8de5573d208daaa25bfc1bae93d884b03eeac82c
5
5
  SHA512:
6
- metadata.gz: ab3c12fc76f0ba26b354c2ba7634a2fe2efa2f58c1bfdd1423c4376c06ac055a5f5f9c1f1592bcc6db8e77c2827dfa7e9724a7dfba87c6b0607f1a555d89b4e5
7
- data.tar.gz: 413ceba8ef618695b4d60300a45d330494ef3d80577c82e1b1d2fab3faf3b42e6ab57e2446d44e7eea58c3c199063e7ad7447dd276a3954cd6e11dc987b50bac
6
+ metadata.gz: 1afa519c7015e79c3402f54d34a4f20f5acbda9dd1df2ec4f67c2b681066b8fb73b16690fa2f40b8b5b6f078b5efb7b4922dbd08fa4de49cc8bd2983e6b62643
7
+ data.tar.gz: d79ccc04ca1d6314765c99179ff50526c27516bb2eac515e22d740a875e5f505f755551e28177b5bcc129e6dc282403a25b359903e3c5d66883cd0601fb48bff
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- emittance-resque (1.0.0)
5
- emittance (~> 1.0)
4
+ emittance-resque (1.1.0)
5
+ emittance (~> 1.1)
6
6
  resque
7
7
 
8
8
  GEM
@@ -24,12 +24,12 @@ GEM
24
24
  concurrent-ruby (1.0.5)
25
25
  diff-lcs (1.3)
26
26
  docile (1.1.5)
27
- emittance (1.0.0)
27
+ emittance (1.1.0)
28
28
  i18n (0.9.1)
29
29
  concurrent-ruby (~> 1.0)
30
30
  json (2.1.0)
31
31
  method_source (0.9.0)
32
- minitest (5.10.3)
32
+ minitest (5.11.1)
33
33
  mono_logger (1.1.0)
34
34
  multi_json (1.13.1)
35
35
  mustermann (1.0.1)
@@ -53,7 +53,7 @@ GEM
53
53
  rspec-core (~> 3.7.0)
54
54
  rspec-expectations (~> 3.7.0)
55
55
  rspec-mocks (~> 3.7.0)
56
- rspec-core (3.7.0)
56
+ rspec-core (3.7.1)
57
57
  rspec-support (~> 3.7.0)
58
58
  rspec-expectations (3.7.0)
59
59
  diff-lcs (>= 1.2.0, < 2.0)
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.add_dependency 'emittance', '~> 1.0'
25
+ spec.add_dependency 'emittance', '~> 1.1'
26
26
  spec.add_dependency 'resque'
27
27
 
28
28
  spec.add_development_dependency 'activerecord'
@@ -8,7 +8,7 @@ module Emittance
8
8
  end
9
9
  end
10
10
 
11
- require 'emittance/resque/process_event_job'
11
+ require 'emittance/resque/event_fanout_job'
12
12
  require 'emittance/resque/event_serializer'
13
13
  require 'emittance/resque/event_serializer/default'
14
14
 
@@ -20,7 +20,7 @@ module Emittance
20
20
  class Dispatcher
21
21
  MethodCallRegistration = Struct.new(:klass_name, :method_name, :queue)
22
22
 
23
- PROCESS_EVENT_JOB = Emittance::Resque::ProcessEventJob
23
+ EVENT_FANOUT_JOB = Emittance::Resque::EventFanoutJob
24
24
  DEFAULT_QUEUE = :default
25
25
 
26
26
  class << self
@@ -35,10 +35,9 @@ module Emittance
35
35
  private
36
36
 
37
37
  def _process_event(event)
38
- registrations = registrations_for(event.class)
39
38
  serialized_event = serialize_event(event)
40
39
 
41
- registrations.each { |registration| enqueue_job registration, serialized_event }
40
+ enqueue_fanout_job(serialized_event)
42
41
  end
43
42
 
44
43
  def _register(_identifier, _params = {}, &_callback)
@@ -57,14 +56,8 @@ module Emittance
57
56
  MethodCallRegistration.new(object.name, method_name, queue)
58
57
  end
59
58
 
60
- def enqueue_job(registration, event)
61
- queue = queue_from_registration(registration)
62
-
63
- ::Resque.enqueue_to queue, PROCESS_EVENT_JOB, registration.klass_name, registration.method_name, event
64
- end
65
-
66
- def queue_from_registration(registration)
67
- registration.queue || default_queue
59
+ def enqueue_fanout_job(event)
60
+ ::Resque.enqueue EVENT_FANOUT_JOB, event
68
61
  end
69
62
 
70
63
  def serialize_event(event)
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'emittance/resque/process_event_job'
4
+
5
+ module Emittance
6
+ module Resque
7
+ ##
8
+ # A job that fans out events to their proper listeners.
9
+ #
10
+ class EventFanoutJob
11
+ PROCESS_EVENT_JOB = Emittance::Resque::ProcessEventJob
12
+
13
+ @queue = :default
14
+
15
+ class << self
16
+ def perform(event)
17
+ new(event).perform
18
+ end
19
+ end
20
+
21
+ def initialize(event)
22
+ @event = event
23
+ end
24
+
25
+ def perform
26
+ registrations.each { |registration| enqueue_job registration, event }
27
+ end
28
+
29
+ private
30
+
31
+ attr_reader :event
32
+
33
+ def registrations
34
+ identifier = event['identifier']
35
+ Emittance::Resque::Dispatcher.registrations_for(identifier)
36
+ end
37
+
38
+ def enqueue_job(registration, event)
39
+ queue = queue_from_registration(registration)
40
+
41
+ ::Resque.enqueue_to(
42
+ queue, PROCESS_EVENT_JOB, registration.klass_name, registration.method_name, event
43
+ )
44
+ end
45
+
46
+ def queue_from_registration(registration)
47
+ registration.queue || default_queue
48
+ end
49
+
50
+ def default_queue
51
+ Emittance::Resque::Dispatcher.default_queue
52
+ end
53
+ end
54
+ end
55
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Emittance
4
4
  module Resque
5
- VERSION = '1.0.0'
5
+ VERSION = '1.1.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emittance-resque
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Guillen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-10 00:00:00.000000000 Z
11
+ date: 2018-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: emittance
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '1.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: resque
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -162,6 +162,7 @@ files:
162
162
  - lib/emittance/resque/broker.rb
163
163
  - lib/emittance/resque/dispatcher.rb
164
164
  - lib/emittance/resque/errors.rb
165
+ - lib/emittance/resque/event_fanout_job.rb
165
166
  - lib/emittance/resque/event_serializer.rb
166
167
  - lib/emittance/resque/event_serializer/active_record.rb
167
168
  - lib/emittance/resque/event_serializer/default.rb