sms_manager 0.2.1 → 0.3.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: e4c603afa0deded30e5cb06376e840fc8abbb893
4
- data.tar.gz: ac12ef1fa59399065cc9ed33bf65f6a5ab284779
3
+ metadata.gz: 1b6c5f47ed9565f01fe97dfc14ad5129298f6407
4
+ data.tar.gz: 7e2c65f5610918bc51f85815342e046477d64600
5
5
  SHA512:
6
- metadata.gz: 5e2c4942edc14ad882abb5a7373de45e7e984c062683250de7c554ec79d19ce674bc4c6057dc88a1a7938cccd32b18116a76a981b983c8d829ea3c093c78cfa7
7
- data.tar.gz: 693bce49dc61dd1cb1342be6b8f4620340f4e06ad2d833bd6708a28977737956b78c74c940bfe1d4fb6a3e4943bd6e0f4194199062e1cf1bf675325f053614af
6
+ metadata.gz: 88c16b92bd4bec98173b533e9f03a0b6ab706933c382144c159832b738dce0cd5d295363f8b9d96e727f5239662e5dce98df0119ecbefbdf3c1879c4cddc2bc0
7
+ data.tar.gz: 40b3f4c3291493aa76b9832f697265ee1c01fc0ce34ab1e8e40b1d6d000e5a833cd2f85c3f73a61e0cb417456509db49309023360a751e50254696bcfebc2786
@@ -7,7 +7,19 @@
7
7
  * backward incompatible change: renamed `send_message` to `send`
8
8
  * code refactor
9
9
 
10
-
11
10
  0.2.1
12
11
  -----
13
12
  * Add `send_message` back to keep backward compatibility
13
+
14
+ 0.3.0
15
+ -----
16
+ * remove `code` attribute from `SmsManager::SendingError`
17
+ * Made changes so that you don't need to rescue `HTTPClient` exceptions. Rescue only `SmsManager::SendingError`
18
+
19
+ ```ruby
20
+ begin
21
+ SmsManager.send number: '+420123456789', message: 'Hello!'
22
+ rescue SmsManager::Error => e
23
+ puts e.message # => Neplatný parametr gateway
24
+ end
25
+ ```
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sms_manager (0.2.1)
4
+ sms_manager (0.3.0)
5
5
  httpclient (~> 2.7.0)
6
6
 
7
7
  GEM
@@ -17,8 +17,12 @@ module SmsManager
17
17
  number: options[:number],
18
18
  message: options[:message]
19
19
  }
20
- body = HTTPClient.get('http://http-api.smsmanager.cz/Send', options).body
21
- raise SendingError.new(options, body) unless body =~ /^OK/
20
+ begin
21
+ body = HTTPClient.get('http://http-api.smsmanager.cz/Send', options).body
22
+ rescue StandardError => e
23
+ raise Error.new(e.message)
24
+ end
25
+ raise SendingError.new(body) unless body =~ /^OK/
22
26
  end
23
27
 
24
28
  def send_message(options = {})
@@ -0,0 +1,3 @@
1
+ module SmsManager
2
+ class Error < StandardError; end
3
+ end
@@ -1,13 +1,15 @@
1
- module SmsManager
2
- class SendingError < StandardError
3
- attr_reader :options, :code
1
+ require 'sms_manager/error/error'
4
2
 
5
- def initialize(options, body)
6
- @code = body.split('|').last.to_i
7
- @options = options
3
+ module SmsManager
4
+ class SendingError < Error
5
+ def initialize(body)
6
+ code = body.split('|').last.to_i
7
+ super code_to_message(code)
8
8
  end
9
9
 
10
- def message
10
+ private
11
+
12
+ def code_to_message(code)
11
13
  if code >= 900 && code <= 999
12
14
  CODE_9XX
13
15
  elsif CODES[code]
@@ -17,8 +19,6 @@ module SmsManager
17
19
  end
18
20
  end
19
21
 
20
- private
21
-
22
22
  CODES = {
23
23
  101 => 'Neexistující data požadavku (chybí XMLDATA parametr u XML API)',
24
24
  102 => 'Metoda neexistuje',
@@ -1,8 +1,8 @@
1
1
  module SmsManager
2
2
  class Version
3
3
  MAJOR = 0
4
- MINOR = 2
5
- PATCH = 1
4
+ MINOR = 3
5
+ PATCH = 0
6
6
 
7
7
  class << self
8
8
  def to_s
@@ -6,12 +6,13 @@ require 'sms_manager/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "sms_manager"
8
8
  gem.version = SmsManager::Version
9
- gem.date = '2016-01-16'
9
+ gem.date = '2016-01-18'
10
10
  gem.authors = ["David Hrachovy"]
11
11
  gem.email = ["david.hrachovy@gmail.com"]
12
12
  gem.description = %q{Ruby SDK for smsmanager.cz API}
13
13
  gem.summary = %q{SmsManager is a Ruby library for sending SMS messages by smsmanager.cz provider}
14
- gem.homepage = "https://github.com/dayweek/sms_manager"
14
+ gem.homepage = "https://github.com/PrimeHammer/sms_manager"
15
+ gem.required_ruby_version = '>= 2.0'
15
16
  gem.add_dependency "httpclient", "~> 2.7.0"
16
17
  gem.add_development_dependency "bundler"
17
18
  gem.files = `git ls-files`.split($/)
@@ -30,14 +30,22 @@ describe SmsManager do
30
30
  stub_send.to_return body: 'ERROR|103'
31
31
 
32
32
  expect { SmsManager.send number: '+420123456789', message: 'Hello!' }.to \
33
- raise_error(SmsManager::SendingError) do |e|
34
- expect(e.code).to eq(103)
33
+ raise_error(SmsManager::Error) do |e|
35
34
  expect(e.message).to eq('Neplatné uživatelské jméno nebo heslo')
36
35
  end
37
36
  end
37
+
38
+ it 'raises SmsManager error if HTTP request fails' do
39
+ expect(HTTPClient).to receive(:get).and_raise HTTPClient::ConnectTimeoutError.new('oops')
40
+
41
+ expect { SmsManager.send number: '+420123456789', message: 'Hello!' }.to \
42
+ raise_error(SmsManager::Error) do |e|
43
+ expect(e.message).to eq('oops')
44
+ end
45
+ end
38
46
  end
39
47
 
40
- describe 'send' do
48
+ describe 'send message' do
41
49
  before do
42
50
  SmsManager.configure do |config|
43
51
  config.username = 'david@example.com'
@@ -56,11 +64,19 @@ describe SmsManager do
56
64
  stub_send.to_return body: 'ERROR|103'
57
65
 
58
66
  expect { SmsManager.send_message number: '+420123456789', message: 'Hello!' }.to \
59
- raise_error(SmsManager::SendingError) do |e|
60
- expect(e.code).to eq(103)
67
+ raise_error(SmsManager::Error) do |e|
61
68
  expect(e.message).to eq('Neplatné uživatelské jméno nebo heslo')
62
69
  end
63
70
  end
71
+
72
+ it 'raises SmsManager error if HTTP request fails' do
73
+ expect(HTTPClient).to receive(:get).and_raise HTTPClient::ConnectTimeoutError.new('oops')
74
+
75
+ expect { SmsManager.send_message number: '+420123456789', message: 'Hello!' }.to \
76
+ raise_error(SmsManager::Error) do |e|
77
+ expect(e.message).to eq('oops')
78
+ end
79
+ end
64
80
  end
65
81
 
66
82
  def stub_send
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sms_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Hrachovy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-16 00:00:00.000000000 Z
11
+ date: 2016-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -55,12 +55,13 @@ files:
55
55
  - README.md
56
56
  - Rakefile
57
57
  - lib/sms_manager.rb
58
+ - lib/sms_manager/error/error.rb
58
59
  - lib/sms_manager/error/sending_error.rb
59
60
  - lib/sms_manager/version.rb
60
61
  - sms_manager.gemspec
61
62
  - spec/sms_manager_spec.rb
62
63
  - spec/spec_helper.rb
63
- homepage: https://github.com/dayweek/sms_manager
64
+ homepage: https://github.com/PrimeHammer/sms_manager
64
65
  licenses:
65
66
  - MIT
66
67
  metadata: {}
@@ -72,7 +73,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
73
  requirements:
73
74
  - - ">="
74
75
  - !ruby/object:Gem::Version
75
- version: '0'
76
+ version: '2.0'
76
77
  required_rubygems_version: !ruby/object:Gem::Requirement
77
78
  requirements:
78
79
  - - ">="