Module: ActionTexter
- Defined in:
- lib/action_texter/version.rb,
lib/action_texter/action_texter.rb
Overview
Copyright © 2014, 2015, Carousel Apps
Defined Under Namespace
Classes: Client, Message, NexmoClient, NexmoResponse, Response, TestClient, TestResponse, TwilioClient, TwilioResponse
Constant Summary collapse
- VERSION =
"0.2.0"
- @@delivery_observers =
[]
- @@delivery_interceptors =
[]
Class Method Summary collapse
-
.inform_interceptors(message) ⇒ Object
Inform all the interceptors about the SMS being sent.
-
.inform_observers(message, response) ⇒ Object
Inform all the observers about the SMS being sent.
-
.register_interceptor(interceptor) ⇒ Object
You can register an object to be given every Message object that will be sent, before it is sent.
-
.register_observer(observer) ⇒ Object
You can register an object to be informed of every SMS that is sent, after it is sent Your object needs to respond to a single method #delivered_sms(message, response) message will be of type ActionTexter::Message response will be of type ActionTexter::Response.
-
.unregister_interceptor(interceptor) ⇒ Object
Unregister the given interceptor.
-
.unregister_observer(observer) ⇒ Object
Unregister the given observer.
Class Method Details
.inform_interceptors(message) ⇒ Object
Inform all the interceptors about the SMS being sent. Any interceptor can modify the message or cancel it
67 68 69 70 71 72 73 |
# File 'lib/action_texter/action_texter.rb', line 67 def self.inform_interceptors() @@delivery_interceptors.each do |interceptor| = interceptor.delivering_sms() break if .blank? end end |
.inform_observers(message, response) ⇒ Object
Inform all the observers about the SMS being sent
58 59 60 |
# File 'lib/action_texter/action_texter.rb', line 58 def self.inform_observers(, response) @@delivery_observers.each { |observer| observer.delivered_sms(, response) } end |
.register_interceptor(interceptor) ⇒ Object
You can register an object to be given every Message object that will be sent, before it is sent. This allows you to modify the contents of the message, or even stop it by returning false or nil.
Your object needs to respond to a single method #delivering_sms(message) It must return the modified object to be sent instead, or nil
39 40 41 42 43 44 |
# File 'lib/action_texter/action_texter.rb', line 39 def self.register_interceptor(interceptor) unless @@delivery_interceptors.include?(interceptor) @@delivery_interceptors << interceptor end interceptor end |
.register_observer(observer) ⇒ Object
You can register an object to be informed of every SMS that is sent, after it is sent Your object needs to respond to a single method #delivered_sms(message, response)
will be of type ActionTexter::Message
response will be of type ActionTexter::Response
16 17 18 19 20 21 |
# File 'lib/action_texter/action_texter.rb', line 16 def self.register_observer(observer) unless @@delivery_observers.include?(observer) @@delivery_observers << observer end observer end |
.unregister_interceptor(interceptor) ⇒ Object
Unregister the given interceptor
50 51 52 |
# File 'lib/action_texter/action_texter.rb', line 50 def self.unregister_interceptor(interceptor) @@delivery_interceptors.delete(interceptor) end |
.unregister_observer(observer) ⇒ Object
Unregister the given observer
27 28 29 |
# File 'lib/action_texter/action_texter.rb', line 27 def self.unregister_observer(observer) @@delivery_observers.delete(observer) end |