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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjNlOGM0NDk1MjU5MzEzZWVkMTAwYmM2ZjhiZDlmOTk4Y2I3ZGQyZA==
4
+ NTUwMDM4OWViYzk1MGU1MDA2ZmVmNDA0Y2Y5YzZlYjg3MzdkYmI3Yw==
5
5
  data.tar.gz: !binary |-
6
- ZjA3YzY2MGM5ZjhiNGY1NjNmNDVmODliNDIwNmZhNzI3ZjRhYTE0Zg==
6
+ ZWFlMjI4MzBlNGQ2NGU5Y2U0NjM0NTkwZDkyZTg1M2ViMTFiYmZkNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OGNiMDI2ZTExZWM0MzFiN2VlMzQ1YWQ1MzQwZDlmZWIxMmNmNDg4YWIxNGJm
10
- MWNlZGNiMDc0OTJjYjZjMDQyNjU2M2NhYzQ4NjA4YWI0MDVmNGE0MzRjZjRl
11
- ODAxOTVhMTE0ODQzZmQ5YmY2NGJjNTFmYTcwNzBjOTc4YjYxOWE=
9
+ NzUxYTJhZGFiZmI0OGY2OTM3YTU0YjlhOWY3NmQzOTBkMzM5NWNjMWFmOWVi
10
+ YmQ1ZjU0ZmRmZjM0MTJiZmUyNjVjYTA5Y2MwMjA0YjFhYzA2NmVjNDFjN2Rl
11
+ ZTM5YzZmYWI5YzQ5NDQwZjkxYTA2NzA5N2RmMTYxMTM0OThmYWI=
12
12
  data.tar.gz: !binary |-
13
- NDA1ZTAwNGE1NDNjNmNjZmExYmI0NWVkOWY2NGE2MThlMjM3NjU0MjJhNGMz
14
- YjkyZmI1ZjBiZGRiMzhhYmVlYmJmMjMzYTg3ODQ1YmJlOTkxYWM4YjU5YzYy
15
- N2IzYTlmNjJiYTFlNmFkN2E1ODk3YjFmMmRmYmE4MTJhMDE2Yjk=
13
+ M2U2ZWU5YzI2N2U4Njc1ZTJkYWU1M2VjMTkxODdiM2I0YWI3MjBmZDAwZjJj
14
+ NzE5YjQ1NjEzYWRlNGVlZmU0Zjg1NzcxZWVjYTAzN2U4NWMzZjhiOWEzOTQz
15
+ ZGRkMzUxYjYxNmI5NjU5NjY3ODIzMjUxMWQ1NjhjNzZhMWU5ZDM=
data/lib/mblox.rb CHANGED
@@ -10,5 +10,4 @@ module Mblox
10
10
  self.config.logger.__send__(self.config.log_level, *args) if self.config.logger
11
11
  end
12
12
  end
13
- class MissingExpectedXmlContentError < StandardError; end
14
13
  end
@@ -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
@@ -1,10 +1,10 @@
1
- require 'active_model/serialization'
2
- require 'active_model/serializers/xml.rb'
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 = Hash.from_xml(xml)['NotificationService']
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']
@@ -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 = Hash.from_xml(xml)
38
- data = data['NotificationRequestResult']
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
@@ -1,3 +1,3 @@
1
1
  module Mblox
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
@@ -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.5
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 00:00:00.000000000 Z
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