pheromone 0.3.2 → 0.3.3

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
  SHA1:
3
- metadata.gz: 095307a9589c450d98d2267df1fd1d5a9a404fcb
4
- data.tar.gz: f6ee446cd83c5f2623af4f904b9b02d52759d413
3
+ metadata.gz: 579707010487601af25f633bada8a8ffda541ef5
4
+ data.tar.gz: c7f027d298ea29b05c4b6ecee8d45dbc3cbbece6
5
5
  SHA512:
6
- metadata.gz: 916792dd19f3d6b9b5a9a6c0ba3a36cb5c4317f526e32d6e071d25cc6bd36d109a7db1021d243406a7fec64935526d37fba3cc4266b0fb40f4862c6ea8a7f7b4
7
- data.tar.gz: f9cf7439b22e1c74373792b13aca65f2ddfa22a6efe831df7545c3d73dad6ef93229f7a21db2e28c6e6b786b3e6ffbbd5cd3eb038be5e784a22f710e34786bd9
6
+ metadata.gz: 59485b3ecea81dbe5a612f3bbea067dea48482c51b9f7f3dbac7d381e2fa5b075b8ceb943a945693ef190165544b425087803f67a015c178cf543693500edd66
7
+ data.tar.gz: 55215044cf75ca43ef9678cc92be43eaa3f42feddf3606b8638b98e9c4564e786d3b6de6adb95294ca803eeb0c13643da64018bb75be6c18ab72d63f122dc27c
@@ -39,58 +39,63 @@ module Pheromone
39
39
  message_options
40
40
  ).validate
41
41
  raise Pheromone::Exceptions::InvalidPublishOptions.new(errors) unless errors.empty?
42
- __send__(:after_commit, proc { dispatch_messages(message_options: message_options) })
42
+ __send__(
43
+ :after_commit,
44
+ proc { dispatch_messages(message_options: message_options, current_event: :create) },
45
+ on: :create
46
+ )
47
+ __send__(
48
+ :after_commit,
49
+ proc { dispatch_messages(message_options: message_options, current_event: :update) },
50
+ on: :update
51
+ )
43
52
  end
44
53
  end
45
54
 
46
55
  module InstanceMethods
47
56
  include Pheromone::MethodInvoker
48
57
 
49
- def dispatch_messages(message_options:)
58
+ def dispatch_messages(message_options:, current_event:)
50
59
  message_options.each do |options|
51
- next unless check_conditions(options)
52
- send_message(options)
60
+ next unless check_conditions(options, current_event)
61
+ send_message(options, current_event)
53
62
  end
54
63
  end
55
64
 
56
65
  private
57
66
 
58
- def check_conditions(options)
67
+ def check_conditions(options, current_event)
59
68
  condition_callback = options[:if]
60
- result = check_event(options)
69
+ result = check_event(options, current_event)
61
70
  return result unless condition_callback
62
71
  result && call_proc_or_instance_method(condition_callback)
63
72
  end
64
73
 
65
- def check_event(options)
74
+ def check_event(options, current_event)
66
75
  options[:event_types].any? { |event| event == current_event }
67
76
  end
68
77
 
69
78
  # Manages the actual formatting and sending of messages. By default messages are sent in
70
79
  # sync mode. To override this, provide dispatch_method as :async
71
- def send_message(options)
80
+ def send_message(options, current_event)
72
81
  Pheromone::Messaging::MessageDispatcher.new(
73
82
  message_parameters: {
74
83
  topic: options[:topic],
75
84
  blob: message_blob(options),
76
- metadata: message_meta_data,
85
+ metadata: message_meta_data(current_event),
77
86
  producer_options: options[:producer_options]
78
87
  },
79
88
  dispatch_method: options[:dispatch_method] || :sync
80
89
  ).dispatch
81
90
  end
82
91
 
83
- def message_meta_data
92
+ def message_meta_data(current_event)
84
93
  {
85
94
  event: current_event,
86
95
  entity: self.class.name
87
96
  }
88
97
  end
89
98
 
90
- def current_event
91
- id_previously_changed? ? :create : :update
92
- end
93
-
94
99
  def message_blob(options)
95
100
  message = options[:message]
96
101
  return call_proc_or_instance_method(message) if message
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Pheromone
3
- VERSION = '0.3.2'.freeze
3
+ VERSION = '0.3.3'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pheromone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ankita Gupta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-08 00:00:00.000000000 Z
11
+ date: 2017-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers