direct_sms 0.0.3 → 1.0.1

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: 48444dde721065342314bd1c75df0e7fa9c05be3
4
- data.tar.gz: e3e216b10101be0217e6243a2c751e0a3ded3bec
3
+ metadata.gz: b0ea31d2818eaeb0b5e8952f94bb8033652efedd
4
+ data.tar.gz: 0cef2c4ab40c89b95a3c05601b7efc88de120ea2
5
5
  SHA512:
6
- metadata.gz: 0d797e9a70867444ba43e4b48380450eb33913c906b48935ce1ae871a57945c313479d33df78c4fcaf495f7468f7702befbb426db22e891f2ab24b99f8a1b245
7
- data.tar.gz: 066ddda4b80b359cd01eaf76cf8bf4f16769924741a828ef368ecae3c8a72b9c619aad01dd373c5b833e30021d840d94282c962bf4f65c97072516b3091231eb
6
+ metadata.gz: a3344e3970028d28fbf1abc6bc2fbcb47eadcc0a41ceb064f462f9e2c809b5e236f4d26615235946945dafbec1029e7add9e1ed4f1d20739fe6ba876d88d0fbd
7
+ data.tar.gz: 50c69ab7b7d3bf8fcef175cd2b016be783b3eda8d9844ba3b74f2c48ac614b58785d5b6eb42b1f2ed29dd8dbf12f8566e68d02247186536e4bece50c8769d0f6
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'direct_sms'
3
3
 
4
- sms = DirectSms::Message.new("username", "password", max_segments: 10, type: "2-way")
5
- sms.to = "+639178574111, +639193963389"
4
+ sms = DirectSms::Message.new(max_segments: 10, type: "2-way")
5
+ sms.to = "+639178574111"
6
6
 
7
- puts sms.balance
7
+ puts sms.credit_balance
@@ -1,42 +1,15 @@
1
1
  require "direct_sms/version"
2
- require "httparty"
2
+ require "direct_sms/configuration"
3
+ require "direct_sms/message"
3
4
 
4
5
  module DirectSms
5
- class Message
6
- include HTTParty
7
6
 
8
- base_uri "api.directsms.com.au"
9
- attr_accessor :message, :to, :max_segments, :type, :message_id
10
- attr_accessor :username, :password
11
-
12
- def initialize(attrs = {})
13
- attrs.each { |k, v| self.send("#{k}=", v) }
14
- end
15
-
16
- def credit_balance
17
- options = { query: fetch_credentials }
18
- response = self.class.get("/s3/http/get_balance", options) # returns credit: 50.0
19
- response = response.split(" ").last
20
-
21
- response
22
- end
23
-
24
- def send_message
25
- options = {
26
- query: fetch_credentials.merge(message: message,
27
- to: to,
28
- max_segments: max_segments,
29
- type: type,
30
- messageid: message_id)
31
- }
32
-
33
- self.class.get("/s3/http/send_message", options)
34
- end
35
-
36
- private
7
+ def self.configuration
8
+ @configuration ||= Configuration.new
9
+ end
37
10
 
38
- def fetch_credentials
39
- { username: username, password: password }
40
- end
11
+ def self.configure
12
+ yield configuration
41
13
  end
14
+
42
15
  end
@@ -0,0 +1,5 @@
1
+ module DirectSms
2
+ class Configuration
3
+ attr_accessor :username, :password
4
+ end
5
+ end
@@ -0,0 +1,43 @@
1
+ require "httparty"
2
+
3
+ module DirectSms
4
+
5
+ class Message
6
+ include HTTParty
7
+
8
+ base_uri "api.directsms.com.au"
9
+
10
+ attr_accessor :message, :to, :max_segments, :type, :message_id
11
+
12
+ def initialize(attrs = {})
13
+ attrs.each { |k, v| self.send("#{k}=", v) }
14
+ end
15
+
16
+ def credit_balance
17
+ options = { query: fetch_credentials }
18
+ response = self.class.get("/s3/http/get_balance", options) # returns credit: 50.0
19
+ response = response.split(" ").last
20
+
21
+ response
22
+ end
23
+
24
+ def send_message
25
+ options = {
26
+ query: fetch_credentials.merge(message: message,
27
+ to: to,
28
+ max_segments: max_segments,
29
+ type: type,
30
+ messageid: message_id)
31
+ }
32
+
33
+ self.class.get("/s3/http/send_message", options)
34
+ end
35
+
36
+ private
37
+
38
+ def fetch_credentials
39
+ { username: DirectSms.configuration.username, password: DirectSms.configuration.password }
40
+ end
41
+ end
42
+
43
+ end
@@ -1,3 +1,3 @@
1
1
  module DirectSms
2
- VERSION = "0.0.3"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -2,22 +2,26 @@ require 'spec_helper'
2
2
  require 'net/http'
3
3
 
4
4
  describe DirectSms do
5
- let!(:username) { "username" }
6
- let!(:password) { "password" }
5
+ before(:each) do
6
+ DirectSms.configure do |config|
7
+ config.username = "username"
8
+ config.password = "password"
9
+ end
10
+ end
7
11
 
8
12
  describe "balance" do
9
13
  it 'returns the remaining balance' do
10
- stub_request(:get, "http://api.directsms.com.au/s3/http/get_balance?password=#{password}&username=#{username}").
14
+ stub_request(:get, "http://api.directsms.com.au/s3/http/get_balance?password=password&username=username").
11
15
  to_return(:status => 200, :body => "credit: 300.00", :headers => {})
12
16
 
13
- sms = DirectSms::Message.new(username: username, password: password)
14
- expect(sms.credit_balance.body).to eq "credit: 300.00"
17
+ sms = DirectSms::Message.new
18
+ expect(sms.credit_balance).to eq "300.00"
15
19
  end
16
20
  end
17
21
 
18
22
  describe "sending sms" do
19
23
  it 'attributes can be set on new' do
20
- sms = DirectSms::Message.new(username: username, password: password, :type => "2-way", :max_segments => 20)
24
+ sms = DirectSms::Message.new(:type => "2-way", :max_segments => 20)
21
25
 
22
26
  expect(sms.max_segments).to eq 20
23
27
  expect(sms.type).to eq "2-way"
@@ -27,7 +31,7 @@ describe DirectSms do
27
31
  stub_request(:get, "http://api.directsms.com.au/s3/http/send_message?max_segments=10&message=This%20is%20a%20test&password=password&to=%2B639178574111&messageid=&type=2-way&username=username").
28
32
  to_return(:status => 200, :body => "id: 1234567890", :headers => {})
29
33
 
30
- sms = DirectSms::Message.new(username: username, password: password, :type => "2-way", :max_segments => 10)
34
+ sms = DirectSms::Message.new(:type => "2-way", :max_segments => 10)
31
35
  sms.message = "This is a test"
32
36
  sms.to = "+639178574111"
33
37
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: direct_sms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.1
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-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -98,6 +98,8 @@ files:
98
98
  - bin/direct_sms
99
99
  - direct_sms.gemspec
100
100
  - lib/direct_sms.rb
101
+ - lib/direct_sms/configuration.rb
102
+ - lib/direct_sms/message.rb
101
103
  - lib/direct_sms/version.rb
102
104
  - spec/lib/direct_sms_spec.rb
103
105
  - spec/spec_helper.rb