Class: Telesms::Outgoing

Inherits:
Object
  • Object
show all
Extended by:
Base
Defined in:
lib/telesms/outgoing.rb

Overview

This class represents an outgoing message.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Base

gateways

Constructor Details

#initialize(from, to, provider, message) ⇒ Outgoing

This method creates a new outgoing message.

Parameters:

  • from (String)

    The FROM address.

  • to (String)

    The TO address.

  • provider (String)

    The provider name.

  • message (String)

    The message being sent.



56
57
58
59
60
61
# File 'lib/telesms/outgoing.rb', line 56

def initialize(from, to, provider, message)
  @from     = from
  @to       = to
  @provider = provider
  @message  = message
end

Instance Attribute Details

#fromString

The FROM address.

Returns:

  • (String)


8
9
10
# File 'lib/telesms/outgoing.rb', line 8

def from
  @from
end

#messageString

The message body being sent.

Returns:

  • (String)


20
21
22
# File 'lib/telesms/outgoing.rb', line 20

def message
  @message
end

#providerString

The provider for the number.

Returns:

  • (String)


16
17
18
# File 'lib/telesms/outgoing.rb', line 16

def provider
  @provider
end

#toString

The TO address (will be concatinated with a provider).

Returns:

  • (String)


12
13
14
# File 'lib/telesms/outgoing.rb', line 12

def to
  @to
end

Class Method Details

.deliver(from, to, provider, message) ⇒ Mail

This method creates a new outgoing message and sends it.

Parameters:

  • from (String)

    The FROM address.

  • to (String)

    The TO address.

  • provider (String)

    The provider name.

  • message (String)

    The message being sent.

Returns:

  • (Mail)


37
38
39
# File 'lib/telesms/outgoing.rb', line 37

def self.deliver(from, to, provider, message)
  self.new(from, to, provider, message).deliver
end

Instance Method Details

#deliverMail

This method sends an email message disguised as an SMS message.

Returns:

  • (Mail)


66
67
68
# File 'lib/telesms/outgoing.rb', line 66

def deliver
  Mail.new(from: from, to: formatted_to, body: sanitized_message).deliver!
end

#formatted_toString

This method formats the TO address to include the provider.

Returns:

  • (String)


73
74
75
# File 'lib/telesms/outgoing.rb', line 73

def formatted_to
  "#{to}@#{Base.gateways[@provider][:sms]}" rescue raise "Invalid provider"
end

#sanitized_messageString

This method sanitizes the message body.

Returns:

  • (String)


80
81
82
# File 'lib/telesms/outgoing.rb', line 80

def sanitized_message
  message.to_s[0,140]
end