messagebird 0.1.2 → 0.1.3
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 +4 -4
- data/.travis.yml +0 -16
- data/CHANGES.md +20 -0
- data/Gemfile +12 -6
- data/README.md +3 -3
- data/Rakefile +3 -4
- data/VERSION +1 -1
- data/lib/messagebird/config.rb +1 -1
- data/lib/messagebird/http/sms.rb +26 -4
- data/messagebird.gemspec +9 -9
- data/test/messagebird/http/sms_test.rb +102 -1
- data/test/messagebird/sms_test.rb +3 -0
- metadata +7 -7
- data/Gemfile.1.8.7 +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5884d21d68ea0f75197081e449a185b223de84c
|
4
|
+
data.tar.gz: 08c4d01e03dc0a66ecf52546faa44be8269995d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88c3936162b49a6c835abfa08a5f733e12ed4b95311a364ceec1979fd730851444a8c948921f6922e20400ee8ec96d9d7ffde9ed2a71b64d66800845e6a70ad0
|
7
|
+
data.tar.gz: a03a8b13286a27194aed77f4556d9657caa6cfccc9bf6fe418d79f54bca27619e69a0cc498831ea4c1a7e7d5cf7063ff6d89ac4a7a2df6f8f53f9598e3f0d0a4
|
data/.travis.yml
CHANGED
@@ -8,22 +8,6 @@ rvm:
|
|
8
8
|
- 2.0.0
|
9
9
|
- 2.1.0
|
10
10
|
|
11
|
-
gemfile:
|
12
|
-
- Gemfile
|
13
|
-
- Gemfile.1.8.7
|
14
|
-
|
15
11
|
matrix:
|
16
|
-
fast_finish: true
|
17
|
-
|
18
12
|
allow_failures:
|
19
13
|
- rvm: 2.1.0
|
20
|
-
|
21
|
-
exclude:
|
22
|
-
- rvm: 1.8.7
|
23
|
-
gemfile: Gemfile
|
24
|
-
- rvm: 1.9.3
|
25
|
-
gemfile: Gemfile.1.8.7
|
26
|
-
- rvm: 2.0.0
|
27
|
-
gemfile: Gemfile.1.8.7
|
28
|
-
- rvm: 2.1.0
|
29
|
-
gemfile: Gemfile.1.8.7
|
data/CHANGES.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
0.1.3
|
2
|
+
-----------
|
3
|
+
- Sender_ID is now validated. Valid formats are:
|
4
|
+
- 11 alphanumeric characters
|
5
|
+
- telephone number string consisting of "+" + 11 numbers, e.g. "+31612345678"
|
6
|
+
|
7
|
+
|
8
|
+
0.1.2
|
9
|
+
-----------
|
10
|
+
- Ensure 1.8.7 compatibility
|
11
|
+
|
12
|
+
|
13
|
+
0.1.1
|
14
|
+
-----------
|
15
|
+
- Various small fixes
|
16
|
+
|
17
|
+
|
18
|
+
0.1.0
|
19
|
+
-----------
|
20
|
+
- First release
|
data/Gemfile
CHANGED
@@ -1,13 +1,19 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
group :test do
|
4
|
-
gem 'bundler',
|
4
|
+
gem 'bundler', '~> 1.0'
|
5
5
|
gem 'rake'
|
6
|
-
gem 'minitest',
|
7
|
-
gem 'rr',
|
8
|
-
gem 'coveralls', :require => false
|
6
|
+
gem 'minitest', :require => false
|
7
|
+
gem 'rr', :require => false
|
9
8
|
end
|
10
9
|
|
11
|
-
|
12
|
-
|
10
|
+
platform :ruby_19, :ruby_20, :ruby_21 do
|
11
|
+
group :test do
|
12
|
+
gem 'coveralls', :require => false
|
13
|
+
end
|
14
|
+
|
15
|
+
group :development do
|
16
|
+
gem 'jeweler', '~> 2.0.0', :require => false
|
17
|
+
end
|
13
18
|
end
|
19
|
+
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
[](http://badge.fury.io/rb/messagebird)
|
2
|
-
[](https://codeclimate.com/github/blaet/messagebird-sms-api-ruby)
|
3
|
+
[](https://coveralls.io/r/blaet/messagebird-sms-api-ruby?branch=master)
|
4
|
+
[](https://travis-ci.org/blaet/messagebird-sms-api-ruby)
|
5
5
|
|
6
6
|
# MessageBird SMS API for Ruby
|
7
7
|
Implementation of the MessageBird SMS API for Ruby.
|
data/Rakefile
CHANGED
@@ -17,13 +17,12 @@ require 'rake'
|
|
17
17
|
begin
|
18
18
|
require 'jeweler'
|
19
19
|
Jeweler::Tasks.new do |gem|
|
20
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
21
20
|
gem.name = "messagebird"
|
22
|
-
gem.homepage = "http://github.com/
|
21
|
+
gem.homepage = "http://github.com/blaet/messagebird-sms-api-ruby"
|
23
22
|
gem.license = "MIT"
|
24
23
|
gem.summary = %Q{MessageBird API for Ruby}
|
25
|
-
gem.description = %Q{Implementation of the MessageBird
|
26
|
-
gem.email = "
|
24
|
+
gem.description = %Q{Implementation of the MessageBird SMS API for Ruby}
|
25
|
+
gem.email = "dev@blaet.net"
|
27
26
|
gem.authors = ["Bram de Vries"]
|
28
27
|
# dependencies defined in Gemfile
|
29
28
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/lib/messagebird/config.rb
CHANGED
data/lib/messagebird/http/sms.rb
CHANGED
@@ -2,11 +2,11 @@ module MessageBird::HTTP
|
|
2
2
|
class SMS < MessageBird::Deliverable
|
3
3
|
include MessageBird::Helpers
|
4
4
|
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :sender, :recipients, :message
|
6
6
|
attr_writer :username, :api_url
|
7
7
|
|
8
|
-
def initialize(
|
9
|
-
|
8
|
+
def initialize(sender_name, recipients, message, options = {}, &block)
|
9
|
+
self.sender = sender_name
|
10
10
|
@recipients = format_recipients(recipients)
|
11
11
|
@message = URI.escape(message)
|
12
12
|
@callback = block
|
@@ -27,7 +27,7 @@ module MessageBird::HTTP
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def url
|
30
|
-
@url ||= "#{api_url}?username=#{username}&password=#{password}&sender=#{
|
30
|
+
@url ||= "#{api_url}?username=#{username}&password=#{password}&sender=#{sender}&test=#{test_mode}&destination=#{recipients}&body=#{message}"
|
31
31
|
end
|
32
32
|
|
33
33
|
def username
|
@@ -73,5 +73,27 @@ module MessageBird::HTTP
|
|
73
73
|
@test_mode = bool ? 1 : 0
|
74
74
|
end
|
75
75
|
|
76
|
+
def sender=(str)
|
77
|
+
ensure_valid_sender!(str)
|
78
|
+
@sender = str
|
79
|
+
end
|
80
|
+
|
81
|
+
def ensure_valid_sender!(input)
|
82
|
+
raise SenderInvalid.new(input) unless sender_valid?(input)
|
83
|
+
end
|
84
|
+
|
85
|
+
def sender_valid?(input)
|
86
|
+
sender_telephone_number?(input) || sender_string?(input)
|
87
|
+
end
|
88
|
+
|
89
|
+
def sender_string?(input)
|
90
|
+
input =~ /^[a-zA-Z0-9]{1,11}$/
|
91
|
+
end
|
92
|
+
|
93
|
+
def sender_telephone_number?(input)
|
94
|
+
input =~ /^\+(\d{11})$/
|
95
|
+
end
|
96
|
+
|
97
|
+
class SenderInvalid < ArgumentError; end
|
76
98
|
end
|
77
99
|
end
|
data/messagebird.gemspec
CHANGED
@@ -2,17 +2,18 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: messagebird 0.1.
|
5
|
+
# stub: messagebird 0.1.3 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "messagebird"
|
9
|
-
s.version = "0.1.
|
9
|
+
s.version = "0.1.3"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
12
13
|
s.authors = ["Bram de Vries"]
|
13
|
-
s.date = "2014-01-
|
14
|
-
s.description = "Implementation of the MessageBird
|
15
|
-
s.email = "
|
14
|
+
s.date = "2014-01-30"
|
15
|
+
s.description = "Implementation of the MessageBird SMS API for Ruby"
|
16
|
+
s.email = "dev@blaet.net"
|
16
17
|
s.executables = ["messagebird_test_connection"]
|
17
18
|
s.extra_rdoc_files = [
|
18
19
|
"LICENSE",
|
@@ -20,8 +21,8 @@ Gem::Specification.new do |s|
|
|
20
21
|
]
|
21
22
|
s.files = [
|
22
23
|
".travis.yml",
|
24
|
+
"CHANGES.md",
|
23
25
|
"Gemfile",
|
24
|
-
"Gemfile.1.8.7",
|
25
26
|
"LICENSE",
|
26
27
|
"README.md",
|
27
28
|
"Rakefile",
|
@@ -48,10 +49,9 @@ Gem::Specification.new do |s|
|
|
48
49
|
"test/messagebird/sms_test.rb",
|
49
50
|
"test/messagebird_test.rb"
|
50
51
|
]
|
51
|
-
s.homepage = "http://github.com/
|
52
|
+
s.homepage = "http://github.com/blaet/messagebird-sms-api-ruby"
|
52
53
|
s.licenses = ["MIT"]
|
53
|
-
s.
|
54
|
-
s.rubygems_version = "2.1.11"
|
54
|
+
s.rubygems_version = "2.2.0"
|
55
55
|
s.summary = "MessageBird API for Ruby"
|
56
56
|
|
57
57
|
if s.respond_to? :specification_version then
|
@@ -4,12 +4,31 @@ module MessageBirdHTTPSMSHelper
|
|
4
4
|
def format_recipients(input)
|
5
5
|
subject.send :format_recipients, input
|
6
6
|
end
|
7
|
+
|
8
|
+
def sender_telephone_number?(input)
|
9
|
+
subject.send :sender_telephone_number?, input
|
10
|
+
end
|
11
|
+
|
12
|
+
def sender_string?(input)
|
13
|
+
subject.send :sender_string?, input
|
14
|
+
end
|
7
15
|
end
|
8
16
|
|
9
17
|
describe MessageBird::HTTP::SMS do
|
10
18
|
include MessageBirdHTTPSMSHelper
|
11
19
|
|
12
|
-
|
20
|
+
let(:subject_class){ MessageBird::HTTP::SMS }
|
21
|
+
|
22
|
+
subject{ subject_class.new('sender',3154447100,'message') }
|
23
|
+
|
24
|
+
describe '#initialize' do
|
25
|
+
it 'delegates setting sender to a setter method' do
|
26
|
+
any_instance_of(MessageBird::HTTP::SMS) do |klass|
|
27
|
+
mock.proxy(klass).sender=('footest')
|
28
|
+
end
|
29
|
+
subject_class.new('footest',3154447100,'message')
|
30
|
+
end
|
31
|
+
end
|
13
32
|
|
14
33
|
describe '#api_url' do
|
15
34
|
it 'retrieves the api_url from the Config object' do
|
@@ -31,6 +50,18 @@ describe MessageBird::HTTP::SMS do
|
|
31
50
|
end
|
32
51
|
end
|
33
52
|
|
53
|
+
describe '#ensure_valid_sender!' do
|
54
|
+
it 'works as designed' do
|
55
|
+
stub(subject).sender_valid?{true}
|
56
|
+
subject.send :ensure_valid_sender!, 'test'
|
57
|
+
|
58
|
+
stub(subject).sender_valid?{false}
|
59
|
+
assert_raises(MessageBird::HTTP::SMS::SenderInvalid){
|
60
|
+
subject.send :ensure_valid_sender!, 'test'
|
61
|
+
}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
34
65
|
describe '#format_recipients' do
|
35
66
|
it 'converts an integer to string' do
|
36
67
|
format_recipients(31541471696).must_equal "31541471696"
|
@@ -42,6 +73,76 @@ describe MessageBird::HTTP::SMS do
|
|
42
73
|
end
|
43
74
|
end
|
44
75
|
|
76
|
+
describe '#sender=' do
|
77
|
+
it 'sets the sender when valid' do
|
78
|
+
subject.send :sender=, 'footest'
|
79
|
+
subject.sender.must_equal 'footest'
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'throws an exception if sender not valid' do
|
83
|
+
assert_raises(MessageBird::HTTP::SMS::SenderInvalid){
|
84
|
+
subject.send :sender=, 'garbledeegook'
|
85
|
+
}
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe '#sender_telephone_number?' do
|
90
|
+
it 'detects valid numbers' do
|
91
|
+
assert sender_telephone_number?('+31571000000')
|
92
|
+
assert sender_telephone_number?('+31671000000')
|
93
|
+
assert sender_telephone_number?('+15551234567')
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'detects invalid numbers by length' do
|
97
|
+
refute sender_telephone_number?('+315710000001') # too long
|
98
|
+
refute sender_telephone_number?('+3157100001') # too short
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'detects invalid numbers by spaces' do
|
102
|
+
refute sender_telephone_number?('+31571000 00')
|
103
|
+
refute sender_telephone_number?(' +31571000 0')
|
104
|
+
refute sender_telephone_number?('+3157100000 ')
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe '#sender_string?' do
|
109
|
+
it 'detects valid strings' do
|
110
|
+
assert sender_string?('A')
|
111
|
+
assert sender_string?('MessageBird')
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'detects invalid strings by length' do
|
115
|
+
refute sender_string?('thiswillbreak')
|
116
|
+
refute sender_string?('')
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'detects invalid strings by characters' do
|
120
|
+
refute sender_string?('blaet test')
|
121
|
+
refute sender_string?(' blaet')
|
122
|
+
refute sender_string?('blaet ')
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe '#sender_valid?' do
|
127
|
+
it 'works as designed' do
|
128
|
+
stub(subject).sender_string?{true}
|
129
|
+
stub(subject).sender_telephone_number?{true}
|
130
|
+
assert subject.send(:sender_valid?, 'test')
|
131
|
+
|
132
|
+
stub(subject).sender_string?{false}
|
133
|
+
stub(subject).sender_telephone_number?{true}
|
134
|
+
assert subject.send(:sender_valid?, 'test')
|
135
|
+
|
136
|
+
stub(subject).sender_string?{true}
|
137
|
+
stub(subject).sender_telephone_number?{false}
|
138
|
+
assert subject.send(:sender_valid?, 'test')
|
139
|
+
|
140
|
+
stub(subject).sender_string?{false}
|
141
|
+
stub(subject).sender_telephone_number?{false}
|
142
|
+
refute subject.send(:sender_valid?, 'test')
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
45
146
|
describe '#password' do
|
46
147
|
it 'retrieves the password from the Config object' do
|
47
148
|
mock(MessageBird::Config).password{'test'}
|
@@ -26,6 +26,9 @@ describe MessageBird::SMS do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'returns a new SMS object of the appropriate module' do
|
29
|
+
any_instance_of(MessageBird::HTTP::SMS) do |klass|
|
30
|
+
stub(klass).ensure_valid_sender!
|
31
|
+
end
|
29
32
|
subject.new(1,2,'message',{:module => :http}).class.must_equal MessageBird::HTTP::SMS
|
30
33
|
end
|
31
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: messagebird
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bram de Vries
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jeweler
|
@@ -24,8 +24,8 @@ dependencies:
|
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.0.0
|
27
|
-
description: Implementation of the MessageBird
|
28
|
-
email:
|
27
|
+
description: Implementation of the MessageBird SMS API for Ruby
|
28
|
+
email: dev@blaet.net
|
29
29
|
executables:
|
30
30
|
- messagebird_test_connection
|
31
31
|
extensions: []
|
@@ -34,8 +34,8 @@ extra_rdoc_files:
|
|
34
34
|
- README.md
|
35
35
|
files:
|
36
36
|
- .travis.yml
|
37
|
+
- CHANGES.md
|
37
38
|
- Gemfile
|
38
|
-
- Gemfile.1.8.7
|
39
39
|
- LICENSE
|
40
40
|
- README.md
|
41
41
|
- Rakefile
|
@@ -61,7 +61,7 @@ files:
|
|
61
61
|
- test/messagebird/http/sms_test.rb
|
62
62
|
- test/messagebird/sms_test.rb
|
63
63
|
- test/messagebird_test.rb
|
64
|
-
homepage: http://github.com/
|
64
|
+
homepage: http://github.com/blaet/messagebird-sms-api-ruby
|
65
65
|
licenses:
|
66
66
|
- MIT
|
67
67
|
metadata: {}
|
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
81
|
version: '0'
|
82
82
|
requirements: []
|
83
83
|
rubyforge_project:
|
84
|
-
rubygems_version: 2.
|
84
|
+
rubygems_version: 2.2.0
|
85
85
|
signing_key:
|
86
86
|
specification_version: 4
|
87
87
|
summary: MessageBird API for Ruby
|