sms160 0.0.1 → 1.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b57490205bf183b33800307918d3cab00acb0702
4
- data.tar.gz: c41529c0161b11ae9f5964ba4c4bf83fb87505b2
3
+ metadata.gz: c9f115929a833454f3192db2153416d3349b8227
4
+ data.tar.gz: 1f60e86361f7f518c08efa1efc6c4555a0fb029e
5
5
  SHA512:
6
- metadata.gz: d0c4b443d5634ba09a2d2280f0fd58eabc820ebf622e51563106c4e167fd676eaa61ed0b07b0c35d5e380339c25b34e41160a08b3a8306af93a19cc2ad1e0fb6
7
- data.tar.gz: 08a58f34ad280171bcc0c7e38cc1da590b3f0e16df67d8219abb7bb4b1e616a81e949bbba2ffbeae1c922e15a416855f5725c6e93b29c6f79a1727fec75ded41
6
+ metadata.gz: 5cc37c65250d6992a7c6fb0c0b2aba934083fd65bd3a33878946169efce04877a1f514575f57e92d2f55dfc477894e925c953625a582e3264f5b1a7c122a3e51
7
+ data.tar.gz: 00619be27f32164a672839efac2bcae8326a6459090892d870b37f6517b4fe05fca9d98eac9fe296f8dcdd4eedc10621c648abfd5fe4aed8e941b944f5ef7a53
data/lib/sms160.rb CHANGED
@@ -1,68 +1,16 @@
1
1
  require "sms160/version"
2
2
  require "sms160/constants"
3
- require "active_support/core_ext"
4
- require "open-uri"
5
- require "rest_client"
3
+ require "sms160/configuration"
4
+ require "sms160/message"
6
5
 
7
6
  module Sms160
8
- class Message
9
- attr_accessor :to, :body, :reply_to
10
- attr_accessor :username, :password
11
7
 
12
- def initialize(attr = {})
13
- attr.each do |k, v|
14
- self.send("#{k}=", v)
15
- end
16
- end
17
-
18
- def credit_balance
19
- response = RestClient.get(BALANCE_ENDPOINT, params: fetch_credentials)
20
- Hash.from_xml(response)["string"]
21
- end
22
-
23
- def send_message
24
- raise "Incomplete Parameters ERROR" unless to and body and reply_to
25
-
26
- options = fetch_credentials.merge!(mobileNumber: to, messageText: body, sms2way: reply_to)
27
- response = RestClient.post(SEND_MESSAGE_ENDPOINT, options)
28
-
29
- if response.code.to_i == 200
30
- response = Hash.from_xml(response)["string"]
31
-
32
- if response.include?("ERR") or API_ERROR.include?(response)
33
- false
34
- else
35
- response
36
- end
37
- else
38
- false
39
- end
40
- end
41
-
42
- def bulk_send!
43
- raise "Incomplete PARAMETERS errors" unless to and body and reply_to
44
-
45
- options = fetch_credentials.merge!(messageText: body, sms2way: reply_to)
46
-
47
- to.each do |recipient|
48
- options.merge!("mobileNumber[#{recipient.object_id}]" => recipient)
49
- end
50
-
51
- response = RestClient.post(SEND_MESSAGE_ENDPOINT, options)
52
- result = Hash.from_xml(response)["string"]["result"]["status"] rescue nil
53
-
54
- result
55
- end
56
-
57
- def message_status(message_id)
58
- response = RestClient.get(MESSAGE_STATUS_ENDPOINT, params: fetch_credentials.merge!(messageId: message_id))
59
- Hash.from_xml(response)["string"]
60
- end
61
-
62
- private
8
+ def self.configuration
9
+ @configuration ||= Configuration.new
10
+ end
63
11
 
64
- def fetch_credentials
65
- { username: username, password: password }
66
- end
12
+ def self.configure
13
+ yield configuration
67
14
  end
15
+
68
16
  end
@@ -0,0 +1,5 @@
1
+ module Sms160
2
+ class Configuration
3
+ attr_accessor :username, :password
4
+ end
5
+ end
@@ -0,0 +1,65 @@
1
+ require "active_support/core_ext"
2
+ require "open-uri"
3
+ require "rest_client"
4
+
5
+ module Sms160
6
+ class Message
7
+ attr_accessor :to, :body, :reply_to
8
+
9
+ def initialize(attr = {})
10
+ attr.each do |k, v|
11
+ self.send("#{k}=", v)
12
+ end
13
+ end
14
+
15
+ def credit_balance
16
+ response = RestClient.get(BALANCE_ENDPOINT, params: fetch_credentials)
17
+ Hash.from_xml(response)["string"]
18
+ end
19
+
20
+ def send_message
21
+ raise "Incomplete Parameters ERROR" unless to and body and reply_to
22
+
23
+ options = fetch_credentials.merge!(mobileNumber: to, messageText: body, sms2way: reply_to)
24
+ response = RestClient.post(SEND_MESSAGE_ENDPOINT, options)
25
+
26
+ if response.code.to_i == 200
27
+ response = Hash.from_xml(response)["string"]
28
+
29
+ if response.include?("ERR") or API_ERROR.include?(response)
30
+ false
31
+ else
32
+ response
33
+ end
34
+ else
35
+ false
36
+ end
37
+ end
38
+
39
+ def bulk_send!
40
+ raise "Incomplete PARAMETERS errors" unless to and body and reply_to
41
+
42
+ options = fetch_credentials.merge!(messageText: body, sms2way: reply_to)
43
+
44
+ to.each do |recipient|
45
+ options.merge!("mobileNumber[#{recipient.object_id}]" => recipient)
46
+ end
47
+
48
+ response = RestClient.post(SEND_MESSAGE_ENDPOINT, options)
49
+ result = Hash.from_xml(response)["string"]["result"]["status"] rescue nil
50
+
51
+ result
52
+ end
53
+
54
+ def message_status(message_id)
55
+ response = RestClient.get(MESSAGE_STATUS_ENDPOINT, params: fetch_credentials.merge!(messageId: message_id))
56
+ Hash.from_xml(response)["string"]
57
+ end
58
+
59
+ private
60
+
61
+ def fetch_credentials
62
+ { username: Sms160.configuration.username, password: Sms160.configuration.password }
63
+ end
64
+ end
65
+ end
@@ -1,3 +1,3 @@
1
1
  module Sms160
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -17,19 +17,22 @@ describe Sms160 do
17
17
  sms = Sms160::Message.new(reply_to: "+639182390239")
18
18
  expect(sms.reply_to).to eq "+639182390239"
19
19
  end
20
+ end
20
21
 
21
- it "can set the username and password" do
22
- sms = Sms160::Message.new(username: "mark", password: "12345")
23
- expect(sms.username).to eq "mark"
24
- expect(sms.password).to eq "12345"
22
+ describe "configuration block" do
23
+ before(:each) do
24
+ Sms160.configure do |config|
25
+ config.username = "username"
26
+ config.password = "password"
27
+ end
25
28
  end
26
- end
27
29
 
28
- it "gets the credit balance" do
29
- stub_request(:get, "#{Sms160::BALANCE_ENDPOINT}?username=username&password=password").
30
- to_return(:status => 200, :body => "<?xml version='1.0' encoding='utf-8'?><string xmlns='www.160.com.au/api'>4621.00</string>", :headers => {})
31
-
32
- sms = Sms160::Message.new(username: "username", password: "password")
33
- expect(sms.credit_balance).to eq "4621.00"
30
+ it "gets the credit balance" do
31
+ stub_request(:get, "#{Sms160::BALANCE_ENDPOINT}?username=username&password=password").
32
+ to_return(:status => 200, :body => "<?xml version='1.0' encoding='utf-8'?><string xmlns='www.160.com.au/api'>4621.00</string>", :headers => {})
33
+
34
+ sms = Sms160::Message.new
35
+ expect(sms.credit_balance).to eq "4621.00"
36
+ end
34
37
  end
35
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sms160
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Chavez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-30 00:00:00.000000000 Z
11
+ date: 2014-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -110,7 +110,9 @@ files:
110
110
  - Rakefile
111
111
  - bin/sms160
112
112
  - lib/sms160.rb
113
+ - lib/sms160/configuration.rb
113
114
  - lib/sms160/constants.rb
115
+ - lib/sms160/message.rb
114
116
  - lib/sms160/version.rb
115
117
  - sms160.gemspec
116
118
  - spec/lib/sms160_spec.rb