mblox 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
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