mblox 0.2.1 → 0.2.2

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
- NTE2NzFlOTIxYjBiYjA5YWJhNjEyYzk1ZjcwYzQxZDY3NDVhOTFiNw==
4
+ OWEwYTcwMzU3ODdiNGNhOWQ3MmUxODcwMDMxMjU0ZjNlM2FlNTA1MA==
5
5
  data.tar.gz: !binary |-
6
- ZDZmNDc0YmVlMzdjM2M4ZGRmNjA5OTFlNzc3YjViNGIzZDRhNGZhNA==
6
+ YzhjMDQ3MWI2Zjk0YTJjMjg2MGQ2ZWUyMGU4MDlkZTY2ODg4YzI1Yg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YjdjZDA1YWNjZjg4MDZjN2Y4YmI0NzkwOTk4ODM1Y2ZkNjNlN2FjODliZWQ1
10
- MTliNzIyN2VhMGRkZGY0M2JhYWM0YjU1OTU4ZWM4ZTIzODEzYTQ0MzgzMjYw
11
- N2NlMmM2Zjc0ZDE5ZDVhZDIwM2EwODY5MjU3ODU4ZWQ2NTAxNWI=
9
+ MDU5YTVhMmNkOGY4ZWFjMTZjMTQxNTdjNzNjNDgxNWFkNTM2ZGMyZjI1ODNl
10
+ ZWMwMzJmZmNiNzY2NmFmZTIyZmQxNzMxMDY1Mzg2NDFlODBmYTNmYjg5YzRk
11
+ NDNlNmU4ZjEzZjcwNWU1MDdiZGIxZmM1YmRmZDNiYWQ2OTFkNGI=
12
12
  data.tar.gz: !binary |-
13
- OWEzYmNjOTU0MjBkYTZiYmRiODBiNTAxMmQyNjlhNzFlOGY3MjRiNmQ3ZTYw
14
- MWFlYTEyYWQ4ZmJiYjQ2Y2QzZGY2ZmIxNjNmZDNkNTVhYmQ3ZDk3OGRiMDA3
15
- MmQ0NDNjMGUyNmFiZWYyNmJiMzJmZjc5MmFjNTU5NGJmNDBjNjk=
13
+ OGEwZDk5NDQ0ODk2MjI5M2UxZDA0MGJjZjg2YzE1MDE1MDAzMTU5NmQ0ODU0
14
+ MTJmMmQ1NmY2NGIwMzA2NDAyOWVlMzVjNWVlNzczNTkxZjVmYmQwOWVkOWEz
15
+ NjBlMjQwNWM1MGRhZjI1M2ZiNmExZWYzOGIzNWRjNmViOTVkNzc=
@@ -3,6 +3,7 @@ require "mblox/sms"
3
3
  require "mblox/version"
4
4
 
5
5
  module Mblox
6
+ MAX_BATCH_ID = (10**8)-1
6
7
  class << self
7
8
  def log *args
8
9
  self.config.logger.__send__(self.config.log_level, *args) if self.config.logger
@@ -9,6 +9,7 @@ module Mblox
9
9
  class Sms
10
10
  class InvalidPhoneNumberError < ::ArgumentError; end
11
11
  class InvalidMessageError < ::ArgumentError; end
12
+ class BatchIdOutOfRangeError < ::ArgumentError; end
12
13
  MAX_LENGTH = 160
13
14
  MAX_SECTION_LENGTH = MAX_LENGTH - "(MSG XXX/XXX): ".size
14
15
  ILLEGAL_CHARACTERS = /([^a-zA-Z0-9!"#$\%&'\(\)*+,-.\/:;<=>?@_£¤¥§¿i¡ÄÅÆÇÉÑÖØÜßáäåæèéìñòöøùü\n\r\tí ])/
@@ -31,6 +32,7 @@ module Mblox
31
32
  Mblox.log "WARNING: Some characters may be lost because the message must be broken into at least 1000 sections" if message.size > (999 * MAX_SECTION_LENGTH)
32
33
  @message = (message.size > MAX_LENGTH) ? ON_MESSAGE_TOO_LONG_HANDLER[Mblox.config.on_message_too_long].call(message) : [message.dup]
33
34
  @phone = "1#{phone}"
35
+ raise BatchIdOutOfRangeError, "batch_id must be in the range 1 to #{MAX_BATCH_ID}. The batch_id specified (#{batch_id}) is out of range." if batch_id && (MAX_BATCH_ID < batch_id.to_i)
34
36
  @batch_id = batch_id.to_i unless batch_id.blank?
35
37
  end
36
38
 
@@ -1,3 +1,3 @@
1
1
  module Mblox
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -163,5 +163,13 @@ describe Mblox::Sms do
163
163
  content = Hash.from_xml(sms.build_for_test(the_message))
164
164
  content['NotificationRequest']['NotificationList']['BatchID'].should eq('1')
165
165
  end
166
+
167
+ it "can be 99999999" do
168
+ expect{Mblox::Sms.new(LANDLINE,the_message, 99999999)}.to_not raise_error
169
+ end
170
+
171
+ it "cannot be 100000000" do
172
+ expect{Mblox::Sms.new(LANDLINE,the_message, 100000000)}.to raise_error(Mblox::Sms::BatchIdOutOfRangeError, 'batch_id must be in the range 1 to 99999999. The batch_id specified (100000000) is out of range.')
173
+ end
166
174
  end
167
175
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mblox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Isaac Betesh