mblox 0.2.5 → 0.2.6
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 +8 -8
- data/lib/mblox.rb +0 -1
- data/lib/mblox/from_xml.rb +16 -0
- data/lib/mblox/sms_receipt.rb +3 -3
- data/lib/mblox/sms_response.rb +4 -5
- data/lib/mblox/version.rb +1 -1
- data/spec/sms_receipt_spec.rb +4 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTUwMDM4OWViYzk1MGU1MDA2ZmVmNDA0Y2Y5YzZlYjg3MzdkYmI3Yw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZWFlMjI4MzBlNGQ2NGU5Y2U0NjM0NTkwZDkyZTg1M2ViMTFiYmZkNQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzUxYTJhZGFiZmI0OGY2OTM3YTU0YjlhOWY3NmQzOTBkMzM5NWNjMWFmOWVi
|
10
|
+
YmQ1ZjU0ZmRmZjM0MTJiZmUyNjVjYTA5Y2MwMjA0YjFhYzA2NmVjNDFjN2Rl
|
11
|
+
ZTM5YzZmYWI5YzQ5NDQwZjkxYTA2NzA5N2RmMTYxMTM0OThmYWI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
M2U2ZWU5YzI2N2U4Njc1ZTJkYWU1M2VjMTkxODdiM2I0YWI3MjBmZDAwZjJj
|
14
|
+
NzE5YjQ1NjEzYWRlNGVlZmU0Zjg1NzcxZWVjYTAzN2U4NWMzZjhiOWEzOTQz
|
15
|
+
ZGRkMzUxYjYxNmI5NjU5NjY3ODIzMjUxMWQ1NjhjNzZhMWU5ZDM=
|
data/lib/mblox.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'active_model/serialization'
|
2
|
+
require 'active_model/serializers/xml.rb'
|
3
|
+
|
4
|
+
module Mblox
|
5
|
+
class MissingExpectedXmlContentError < StandardError; end
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def from_xml(xml)
|
9
|
+
begin
|
10
|
+
Hash.from_xml(xml)
|
11
|
+
rescue REXML::ParseException
|
12
|
+
raise MissingExpectedXmlContentError, "'#{xml}' is not parseable as XML"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/mblox/sms_receipt.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require '
|
2
|
-
|
1
|
+
require 'mblox/from_xml'
|
2
|
+
|
3
3
|
module Mblox
|
4
4
|
class SmsReceipt
|
5
5
|
attr_reader :batch_id, :subscriber_number, :timestamp, :msg_reference, :status, :reason
|
6
6
|
def initialize(xml)
|
7
|
-
data =
|
7
|
+
data = Mblox.from_xml(xml)['NotificationService']
|
8
8
|
raise MissingExpectedXmlContentError, "Xml should have contained a 'NotificationService' node, but was #{xml}" if data.blank?
|
9
9
|
|
10
10
|
data = data['NotificationList']
|
data/lib/mblox/sms_response.rb
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
require 'active_model/serialization'
|
2
|
-
require 'active_model/serializers/xml.rb'
|
3
|
-
|
4
1
|
require 'active_model/callbacks'
|
5
2
|
require 'active_model/validator'
|
6
3
|
require 'active_model/naming'
|
@@ -8,6 +5,8 @@ require 'active_model/translation'
|
|
8
5
|
require 'active_model/validations'
|
9
6
|
require 'active_model/errors'
|
10
7
|
|
8
|
+
require 'mblox/from_xml'
|
9
|
+
|
11
10
|
module Mblox
|
12
11
|
class SmsResponse
|
13
12
|
class Result
|
@@ -34,8 +33,8 @@ module Mblox
|
|
34
33
|
|
35
34
|
attr_reader :request, :result, :subscriber_result
|
36
35
|
def initialize(xml)
|
37
|
-
data =
|
38
|
-
|
36
|
+
data = Mblox.from_xml(xml)['NotificationRequestResult']
|
37
|
+
|
39
38
|
raise MissingExpectedXmlContentError, "Xml should have contained a 'NotificationRequestResult' node, but was #{xml}" if data.blank?
|
40
39
|
header = data['NotificationResultHeader']
|
41
40
|
raise MissingExpectedXmlContentError, "Xml should have contained a 'NotificationRequestResult' -> 'NotificationResultHeader' node, but was #{xml}" if header.blank?
|
data/lib/mblox/version.rb
CHANGED
data/spec/sms_receipt_spec.rb
CHANGED
@@ -107,6 +107,10 @@ describe Mblox::SmsReceipt do
|
|
107
107
|
target.reason.should == reason
|
108
108
|
end
|
109
109
|
|
110
|
+
it "should raise error when missing root node" do
|
111
|
+
expect{described_class.new('Abcdefg')}.to raise_error(Mblox::MissingExpectedXmlContentError, "'Abcdefg' is not parseable as XML")
|
112
|
+
end
|
113
|
+
|
110
114
|
it "should raise error when missing notification service node" do
|
111
115
|
expect{described_class.new(missing_notification_service)}.to raise_error(Mblox::MissingExpectedXmlContentError, "Xml should have contained a 'NotificationService' node, but was #{missing_notification_service}")
|
112
116
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mblox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Isaac Betesh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- config.yml.example
|
125
125
|
- lib/mblox.rb
|
126
126
|
- lib/mblox/configuration.rb
|
127
|
+
- lib/mblox/from_xml.rb
|
127
128
|
- lib/mblox/sms.rb
|
128
129
|
- lib/mblox/sms_receipt.rb
|
129
130
|
- lib/mblox/sms_response.rb
|