Class: CircuitRails::DeliveryMethod
- Inherits:
-
Object
- Object
- CircuitRails::DeliveryMethod
- Defined in:
- lib/circuit_rails/delivery_method.rb
Defined Under Namespace
Classes: MissingParameter
Constant Summary collapse
- DEFAULTS =
{ host: 'eu.yourcircuit.com', client_id: nil, client_secret: nil, auth_scope: 'ALL', default_conversation: nil }
Instance Attribute Summary collapse
-
#settings ⇒ Object
Returns the value of attribute settings.
Instance Method Summary collapse
- #client ⇒ Object
- #deliver!(mail) ⇒ Object
-
#initialize(values) ⇒ DeliveryMethod
constructor
A new instance of DeliveryMethod.
Constructor Details
#initialize(values) ⇒ DeliveryMethod
17 18 19 |
# File 'lib/circuit_rails/delivery_method.rb', line 17 def initialize(values) self.settings = DEFAULTS.merge(values) end |
Instance Attribute Details
#settings ⇒ Object
Returns the value of attribute settings.
7 8 9 |
# File 'lib/circuit_rails/delivery_method.rb', line 7 def settings @settings end |
Instance Method Details
#client ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/circuit_rails/delivery_method.rb', line 21 def client @client ||= CircuitClient::Client.new do |c| c.host = settings[:host] c.client_id = settings[:client_id] c.client_secret = settings[:client_secret] c.auth_scope = settings[:auth_scope] end end |
#deliver!(mail) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/circuit_rails/delivery_method.rb', line 30 def deliver!(mail) conv = mail.conversation || settings[:default_conversation] raise MissingParameter, 'a conversation or default_conversation is required for circuit delivery!' if conv.nil? body = mail.multipart? ? mail.text_part.body.decoded : mail.body.decoded = {} [:subject] = mail.subject unless mail.subject.nil? client.(conv, body, **) end |