actionmessage 0.0.11 → 0.0.12

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: 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