actionmessage 0.0.11 → 0.0.12

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: 42357eef800261fa0c18309e5b38be909f30fee5
4
- data.tar.gz: d9738068be505c14c21b415faac5a100df7bfab1
3
+ metadata.gz: 240081935ff8db8aa9f48415da974a088afd2888
4
+ data.tar.gz: d5dc250192ff286a4181abb8602e6f6ade11f0d3
5
5
  SHA512:
6
- metadata.gz: a9abd30a248ca8438fd50ba3c55c4cafefc19418ea8d79a9c221c45e09c1d620a1aeac5d13f872e6f90d5d588c92144d65b12d68cfc4d523ba37adc4f0be191f
7
- data.tar.gz: 0fa6acbab9243bd7fafe5db55594feb1cb8702ff6718a8053963f0955fad03edb4f29e6db9af444ee03b1bb559dd26b25868b613f3dd736c7a184b22d5d237d2
6
+ metadata.gz: f993a661c89c72745337d194c2f16705b15366354e27c921b21843a2bee638e4f9f842250dec03c810a42a0900900468069111f851542025af1080c1af298b47
7
+ data.tar.gz: 69fc7546f24538cd834564908d8e75218db970442c40b4e4acab9ac8b9d83bd9af66c15e66b9b66a5f86f32b3faca33f1feb942ac2143819467716dc145e9f8b
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_dependency 'actionpack', '>= 4.0.0'
23
23
  spec.add_dependency 'actionview', '>= 4.0.0'
24
+ spec.add_dependency 'activejob', '>= 4.0.0'
24
25
  spec.add_dependency 'twilio-ruby', '>= 5.0.0.rc17'
25
26
 
26
27
  spec.add_development_dependency 'bundler', '~> 1.11'
@@ -2,6 +2,7 @@ require 'abstract_controller'
2
2
 
3
3
  require 'action_message/adapters'
4
4
  require 'action_message/base'
5
+ require 'action_message/delivery_job'
5
6
  require 'action_message/message'
6
7
  require 'action_message/message_delivery'
7
8
  require 'action_message/version'
@@ -0,0 +1,28 @@
1
+ require 'active_job'
2
+
3
+ module ActionMessage
4
+ class DeliveryJob < ActiveJob::Base
5
+ queue_as { :messages }
6
+
7
+ rescue_from StandardError, with: :handle_exception_with_message_class
8
+
9
+ def perform(message, message_method, delivery_method, *args) #:nodoc:
10
+ message.constantize.public_send(message_method, *args).send(delivery_method)
11
+ end
12
+
13
+ private
14
+ def message_class
15
+ if message = Array(@serialized_arguments).first || Array(arguments).first
16
+ message.constantize
17
+ end
18
+ end
19
+
20
+ def handle_exception_with_message_class(exception)
21
+ if klass = message_class
22
+ klass.handle_exception exception
23
+ else
24
+ raise exception
25
+ end
26
+ end
27
+ end
28
+ end
@@ -10,6 +10,10 @@ module ActionMessage
10
10
  processed_sms.send(action, *args).deliver
11
11
  end
12
12
 
13
+ def deliver_later(options = {})
14
+ enqueue_delivery :deliver_now, options
15
+ end
16
+
13
17
  protected
14
18
  def processed_sms
15
19
  @processed_sms ||= @message_class.new.tap do |message|
@@ -17,5 +21,10 @@ module ActionMessage
17
21
  message.template_name = action.to_s
18
22
  end
19
23
  end
24
+
25
+ def enqueue_delivery(delivery_method, options={})
26
+ args = @message_class.name, @action.to_s, delivery_method.to_s, *@args
27
+ ::ActionMessage::DeliveryJob.set(options).perform_later(*args)
28
+ end
20
29
  end
21
30
  end
@@ -1,3 +1,3 @@
1
1
  module ActionMessage
2
- VERSION = '0.0.11'.freeze
2
+ VERSION = '0.0.12'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionmessage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego Ballona
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-25 00:00:00.000000000 Z
11
+ date: 2017-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: activejob
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 4.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 4.0.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: twilio-ruby
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -145,6 +159,7 @@ files:
145
159
  - lib/action_message/adapters/test.rb
146
160
  - lib/action_message/adapters/twilio.rb
147
161
  - lib/action_message/base.rb
162
+ - lib/action_message/delivery_job.rb
148
163
  - lib/action_message/message.rb
149
164
  - lib/action_message/message_delivery.rb
150
165
  - lib/action_message/railtie.rb