Module: Smsinabox
- Defined in:
- lib/smsinabox.rb,
lib/smsinabox/sms.rb,
lib/smsinabox/reply.rb,
lib/smsinabox/message.rb,
lib/smsinabox/exceptions.rb,
lib/smsinabox/sent_message.rb,
lib/smsinabox/configuration.rb,
lib/smsinabox/delivery_report.rb
Defined Under Namespace
Classes: Configuration, DeliveryReport, Message, MessageInvalid, MissingCredentialException, Reply, SMS, SentMessage
Constant Summary collapse
- VERSION =
'0.2.3'
Class Attribute Summary collapse
-
.password ⇒ Object
Password for the SMS in a Box service.
-
.username ⇒ Object
Username for the SMS in a Box service.
Class Method Summary collapse
-
.configure!(config_file = nil) ⇒ Object
Set our username and password from #Smsinabox::Configuration.
-
.credit_remaining ⇒ Object
(also: credits)
Return the number of available credits.
-
.deliver(message) ⇒ Object
Send a #Messages and returns a #DelieryReport.
-
.replies(last_id = 0, &block) ⇒ Object
Fetch replies from the gateway and then return a collection of replies or yield each reply if a block is given.
- .sent(last_id = 0, &block) ⇒ Object
- .uri ⇒ Object
Class Attribute Details
.password ⇒ Object
Password for the SMS in a Box service
31 32 33 |
# File 'lib/smsinabox.rb', line 31 def password @password end |
.username ⇒ Object
Username for the SMS in a Box service
28 29 30 |
# File 'lib/smsinabox.rb', line 28 def username @username end |
Class Method Details
.configure!(config_file = nil) ⇒ Object
Set our username and password from #Smsinabox::Configuration
117 118 119 120 121 122 |
# File 'lib/smsinabox.rb', line 117 def configure!( config_file = nil ) c = Configuration.new( config_file ) @username = c["username"] @password = c["password"] nil end |
.credit_remaining ⇒ Object Also known as: credits
Return the number of available credits
38 39 40 41 42 |
# File 'lib/smsinabox.rb', line 38 def credit_remaining perform_request( 'Type' => 'credits' ) do |xml| xml.xpath('/api_result/data/credits/text()').to_s.to_i end end |
.deliver(message) ⇒ Object
Send a #Messages and returns a #DelieryReport
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/smsinabox.rb', line 46 def deliver( ) raise MessageInvalid unless .valid? perform_request( 'Type' => 'sendparam', 'return_credits' => 'True', 'return_msgs_success_count' => 'True', 'return_msgs_failed_count' => 'True', 'return_entries_success_status' => 'True', 'return_entries_failed_status' => 'True', 'numto' => .recipient, 'data1' => .body ) do |response| DeliveryReport.from_response( response ) end end |
.replies(last_id = 0, &block) ⇒ Object
Fetch replies from the gateway and then return a collection of replies or yield each reply if a block is given
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/smsinabox.rb', line 65 def replies( last_id = 0, &block ) data = [ "<reply>", "<settings>", "<id>#{last_id}</id>", "<max_recs>100</max_recs>", "<cols_returned>eventid,numfrom,receiveddata,received,sentid,sentdata,sentdatetime,sentcustomerid</cols_returned>", "</settings>", "</reply>" ] perform_request( 'Type' => 'replies', 'XMLData' => data.join ) do |response| replies = [] response.xpath('/api_result/data').each do |reply| replies << Smsinabox::Reply.from_response( reply ) end replies.each { |r| yield r } if block_given? replies end end |
.sent(last_id = 0, &block) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/smsinabox.rb', line 90 def sent( last_id = 0, &block ) data = [ "<sent>", "<settings>", "<id>#{last_id}</id>", "<max_recs>100</max_recs>", "<cols_returned>sentid,eventid,smstype,numto,data,flash,customerid,status,statusdate</cols_returned>", "</settings>", "</sent>" ] perform_request( 'Type' => 'sent', 'XMLData' => data.join ) do |response| = [] response.xpath('/api_result/data').each do |msg| << Smsinabox::SentMessage.from_response( msg ) end .each { |m| yield m } if block_given? end end |
.uri ⇒ Object
33 34 35 |
# File 'lib/smsinabox.rb', line 33 def uri @uri ||= URI.parse('http://www.mymobileapi.com/api5/http5.aspx') end |