exetel_sms 1.02 → 1.03
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +2 -0
- data/Manifest +1 -0
- data/README +29 -13
- data/README.textile +31 -11
- data/exetel_sms.gemspec +4 -4
- data/lib/class_methods.rb +6 -1
- data/lib/client.rb +1 -1
- data/lib/deleter.rb +1 -1
- data/lib/exetel_sms.rb +1 -1
- data/lib/receiver.rb +1 -1
- data/lib/retriever.rb +38 -0
- data/lib/sender.rb +2 -2
- metadata +5 -6
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
data/README
CHANGED
|
@@ -2,30 +2,46 @@
|
|
|
2
2
|
exetel_sms: Send and receive messages via Exetel's SMS API
|
|
3
3
|
-----------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
gem install 'exetel_sms'
|
|
6
|
+
|
|
7
7
|
|
|
8
8
|
Send a message:
|
|
9
9
|
--------------
|
|
10
|
-
|
|
10
|
+
require 'exetel_sms'
|
|
11
11
|
config = ExetelSms::Config.new('username', 'password')
|
|
12
12
|
sender = ExetelSms::Sender.new(config)
|
|
13
13
|
result = sender.send(
|
|
14
|
-
|
|
15
|
-
message,
|
|
16
|
-
|
|
17
|
-
sender.class.new_reference_number(
|
|
14
|
+
'destination mobile number',
|
|
15
|
+
'message',
|
|
16
|
+
'from string',
|
|
17
|
+
sender.class.new_reference_number('application_identifier')
|
|
18
18
|
)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
puts "Message sent successfully!"
|
|
19
|
+
if result.success?
|
|
20
|
+
puts "Message sent successfully!"
|
|
22
21
|
else
|
|
23
|
-
|
|
22
|
+
puts "Error sending message: #{result[:notes]}"
|
|
24
23
|
end
|
|
25
24
|
|
|
26
25
|
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
|
|
27
|
+
Was it really sent?
|
|
28
|
+
-------------------
|
|
29
|
+
retriever = ExetelSms::Retriever.new(config)
|
|
30
|
+
result = retriever.check_sent('reference_number')
|
|
31
|
+
result[:message_status]
|
|
32
|
+
=> 'Sent'
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
Receiving messages from a Virtual Mobile Number
|
|
36
|
+
-----------------------------------------------
|
|
37
|
+
receiver = ExetelSms::Receiver.new(config)
|
|
38
|
+
if result = receiver.receive('my virtual mobile number')
|
|
39
|
+
puts "Received from #{result[:from_mobile_number]}: #{result[:message]}"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
Contact the author
|
|
44
|
+
------------------
|
|
29
45
|
|
|
30
46
|
Andrew Snow <andrew@modulus.org>
|
|
31
47
|
Andys^ on irc.freenode.net
|
data/README.textile
CHANGED
|
@@ -1,27 +1,47 @@
|
|
|
1
1
|
|
|
2
2
|
h2. exetel_sms: Send and receive messages via Exetel's SMS API
|
|
3
3
|
|
|
4
|
-
bc.
|
|
5
|
-
|
|
4
|
+
bc. gem install 'exetel_sms'
|
|
5
|
+
|
|
6
6
|
|
|
7
7
|
h3. Send a message:
|
|
8
8
|
|
|
9
|
-
bc.
|
|
9
|
+
bc. require 'exetel_sms'
|
|
10
|
+
config = ExetelSms::Config.new('username', 'password')
|
|
10
11
|
sender = ExetelSms::Sender.new(config)
|
|
11
12
|
result = sender.send(
|
|
12
|
-
|
|
13
|
-
message,
|
|
14
|
-
|
|
15
|
-
sender.class.new_reference_number(
|
|
13
|
+
'destination mobile number',
|
|
14
|
+
'message',
|
|
15
|
+
'from string',
|
|
16
|
+
sender.class.new_reference_number('application_identifier')
|
|
16
17
|
)
|
|
17
|
-
if result
|
|
18
|
-
|
|
18
|
+
if result.success?
|
|
19
|
+
puts "Message sent successfully!"
|
|
19
20
|
else
|
|
20
|
-
|
|
21
|
+
puts "Error sending message: #{result[:notes]}"
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
|
|
26
|
+
h3. Was it really sent?
|
|
27
|
+
|
|
28
|
+
bc. retriever = ExetelSms::Retriever.new(config)
|
|
29
|
+
result = retriever.check_sent('reference_number')
|
|
30
|
+
result[:message_status]
|
|
31
|
+
#=> 'Sent' / 'Delivered' / 'Queued' / 'Failed'
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
h3. Receiving messages from a Virtual Mobile Number
|
|
35
|
+
|
|
36
|
+
bc. receiver = ExetelSms::Receiver.new(config)
|
|
37
|
+
if result = receiver.receive('my virtual mobile number')
|
|
38
|
+
puts "Received from #{result[:from_mobile_number]}: #{result[:message]}"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
h3. Contact the author
|
|
25
45
|
|
|
26
46
|
Andrew Snow <andrew@modulus.org>
|
|
27
47
|
Andys^ on irc.freenode.net
|
data/exetel_sms.gemspec
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = %q{exetel_sms}
|
|
5
|
-
s.version = "1.
|
|
5
|
+
s.version = "1.03"
|
|
6
6
|
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
|
8
8
|
s.authors = ["Andrew Snow"]
|
|
9
|
-
s.date = %q{
|
|
9
|
+
s.date = %q{2011-01-28}
|
|
10
10
|
s.description = %q{Ruby gem to send and receive SMS via Exetel's API}
|
|
11
11
|
s.email = %q{andrew@modulus.org}
|
|
12
|
-
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "README.textile", "lib/class_methods.rb", "lib/client.rb", "lib/config.rb", "lib/deleter.rb", "lib/exetel_sms.rb", "lib/receiver.rb", "lib/sender.rb"]
|
|
13
|
-
s.files = ["CHANGELOG", "LICENSE", "README", "README.textile", "Rakefile", "lib/class_methods.rb", "lib/client.rb", "lib/config.rb", "lib/deleter.rb", "lib/exetel_sms.rb", "lib/receiver.rb", "lib/sender.rb", "Manifest", "exetel_sms.gemspec"]
|
|
12
|
+
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "README.textile", "lib/class_methods.rb", "lib/client.rb", "lib/config.rb", "lib/deleter.rb", "lib/exetel_sms.rb", "lib/receiver.rb", "lib/retriever.rb", "lib/sender.rb"]
|
|
13
|
+
s.files = ["CHANGELOG", "LICENSE", "README", "README.textile", "Rakefile", "lib/class_methods.rb", "lib/client.rb", "lib/config.rb", "lib/deleter.rb", "lib/exetel_sms.rb", "lib/receiver.rb", "lib/retriever.rb", "lib/sender.rb", "Manifest", "exetel_sms.gemspec"]
|
|
14
14
|
s.homepage = %q{}
|
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Exetel_sms", "--main", "README"]
|
|
16
16
|
s.require_paths = ["lib"]
|
data/lib/class_methods.rb
CHANGED
|
@@ -21,10 +21,15 @@ module ExetelSms
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def response_to_hash(fields)
|
|
24
|
-
raise
|
|
24
|
+
raise "Missing fields in response body? Expected #{response_fields.map(&:to_s).join(',')}, got #{fields.inspect}" unless fields.length >= response_fields.length
|
|
25
25
|
ret = {}
|
|
26
26
|
response_fields.each {|field| ret[field] = fields.shift }
|
|
27
27
|
ret[:other] = fields
|
|
28
|
+
class << ret
|
|
29
|
+
def success?
|
|
30
|
+
self[:status] == '1'
|
|
31
|
+
end
|
|
32
|
+
end
|
|
28
33
|
ret
|
|
29
34
|
end
|
|
30
35
|
|
data/lib/client.rb
CHANGED
data/lib/deleter.rb
CHANGED
data/lib/exetel_sms.rb
CHANGED
data/lib/receiver.rb
CHANGED
data/lib/retriever.rb
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
|
|
2
|
+
module ExetelSms
|
|
3
|
+
|
|
4
|
+
class Retriever
|
|
5
|
+
extend ExetelSms::ClassMethods
|
|
6
|
+
|
|
7
|
+
attr_reader :config
|
|
8
|
+
def initialize(config)
|
|
9
|
+
@config = config
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def check_sent(reference_number)
|
|
13
|
+
url = self.class.build_url(
|
|
14
|
+
:username => @config.username,
|
|
15
|
+
:password => @config.password,
|
|
16
|
+
:referencenumber => reference_number
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
self.class.response_to_hash(ExetelSms::Client.request(url))
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class << self
|
|
23
|
+
|
|
24
|
+
def response_fields
|
|
25
|
+
[:status, :exetel_id, :reference_number, :sender, :to_mobile_number, :received_at, :message_status, :charge, :notes]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def request_fields
|
|
29
|
+
[:username, :password, :referencenumber]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def exetel_url
|
|
33
|
+
'https://smsgw.exetel.com.au/sendsms/api_sms_detail.php?'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
data/lib/sender.rb
CHANGED
|
@@ -22,7 +22,7 @@ module ExetelSms
|
|
|
22
22
|
|
|
23
23
|
self.class.response_to_hash(ExetelSms::Client.request(url))
|
|
24
24
|
end
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
class << self
|
|
27
27
|
|
|
28
28
|
def response_fields
|
|
@@ -34,7 +34,7 @@ module ExetelSms
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def exetel_url
|
|
37
|
-
'https://
|
|
37
|
+
'https://smsgw.exetel.com.au/sendsms/api_sms.php?'
|
|
38
38
|
#username=xxxxxxxx&password=xxxxxxxx&mobilenumber=xxxxxxxx&message=xxxxxxxx&sender=xxxxxxxxx&messagetype=Text&referencenumber=xxxxxx'
|
|
39
39
|
end
|
|
40
40
|
|
metadata
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: exetel_sms
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash: 11
|
|
5
4
|
prerelease: false
|
|
6
5
|
segments:
|
|
7
6
|
- 1
|
|
8
|
-
-
|
|
9
|
-
version: "1.
|
|
7
|
+
- 3
|
|
8
|
+
version: "1.03"
|
|
10
9
|
platform: ruby
|
|
11
10
|
authors:
|
|
12
11
|
- Andrew Snow
|
|
@@ -14,7 +13,7 @@ autorequire:
|
|
|
14
13
|
bindir: bin
|
|
15
14
|
cert_chain: []
|
|
16
15
|
|
|
17
|
-
date:
|
|
16
|
+
date: 2011-01-28 00:00:00 +11:00
|
|
18
17
|
default_executable:
|
|
19
18
|
dependencies: []
|
|
20
19
|
|
|
@@ -35,6 +34,7 @@ extra_rdoc_files:
|
|
|
35
34
|
- lib/deleter.rb
|
|
36
35
|
- lib/exetel_sms.rb
|
|
37
36
|
- lib/receiver.rb
|
|
37
|
+
- lib/retriever.rb
|
|
38
38
|
- lib/sender.rb
|
|
39
39
|
files:
|
|
40
40
|
- CHANGELOG
|
|
@@ -48,6 +48,7 @@ files:
|
|
|
48
48
|
- lib/deleter.rb
|
|
49
49
|
- lib/exetel_sms.rb
|
|
50
50
|
- lib/receiver.rb
|
|
51
|
+
- lib/retriever.rb
|
|
51
52
|
- lib/sender.rb
|
|
52
53
|
- Manifest
|
|
53
54
|
- exetel_sms.gemspec
|
|
@@ -70,7 +71,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
70
71
|
requirements:
|
|
71
72
|
- - ">="
|
|
72
73
|
- !ruby/object:Gem::Version
|
|
73
|
-
hash: 3
|
|
74
74
|
segments:
|
|
75
75
|
- 0
|
|
76
76
|
version: "0"
|
|
@@ -79,7 +79,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
79
79
|
requirements:
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
hash: 11
|
|
83
82
|
segments:
|
|
84
83
|
- 1
|
|
85
84
|
- 2
|