Module: PigeonFu::Sms::ClassMethods

Defined in:
lib/pigeon_fu/sms.rb

Instance Method Summary collapse

Instance Method Details

#encoded_message_from(content) ⇒ Object



22
23
24
# File 'lib/pigeon_fu/sms.rb', line 22

def encoded_message_from(content)
  Base64.encode64(content.strip).gsub('+', '%2B').gsub('&','%26').gsub("\n","") # CGI.escape
end

#fetch_receivers_from(given_receivers) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/pigeon_fu/sms.rb', line 26

def fetch_receivers_from(given_receivers)
  receiver_phone_numbers = []
  if given_receivers.is_a?(String)
    receivers = given_receivers.include?(',') ? given_receivers.split(',') : [given_receivers]
  end
  receivers.each do |receiver|
    if receiver.is_a_phone_number?
      receiver_phone_numbers << receiver
    else
      raise ArgumentError, "#{receiver} haven't or isn't a valid phone number"
    end
  end
  receiver_phone_numbers
end

#fetch_sender_from(given_sender = nil) ⇒ Object



41
42
43
44
45
46
# File 'lib/pigeon_fu/sms.rb', line 41

def fetch_sender_from(given_sender = nil)
  unless given_sender.nil?
    raise ArgumentError, "#{sender} is not a valid phone number." unless sender.is_a_phone_number?
  end
  given_sender
end

#send_message(options = {}) ⇒ Object

include PigeonFu::Base::InstanceMethods

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
14
15
16
# File 'lib/pigeon_fu/sms.rb', line 7

def send_message(options={})
  raise ArgumentError, "You must pass the :to argument to specify the receiver." unless options[:to]
  raise ArgumentError, "You must pass the :say argument to specify the short message." unless options[:say]
  @sms = PigeonFu::Sms.new
  @sms.auth = PigeonFu::Authenticate.new(PigeonFu::SMS_INTERFACE_CODE)
  @sms.content = encoded_message_from(options[:say])
  @sms.receivers = fetch_receivers_from(options[:to])
  @sms.sender = fetch_sender_from(options[:from])
  @sms.send_phone_text_message
end

#send_message_to_me(text_content) ⇒ Object



18
19
20
# File 'lib/pigeon_fu/sms.rb', line 18

def send_message_to_me(text_content)
  send_message :to => default_contact, :say => text_content, :from => default_ims
end