mblox 0.2.1 → 0.2.2

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
- 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