Skip to content

Commit 3aa4f3b

Browse files
authored
Make uuid mandatory (#127)
1 parent b382302 commit 3aa4f3b

20 files changed

+107
-67
lines changed

.pubnub.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
---
2-
version: "4.8.0"
2+
version: "5.0.0"
33
changelog:
4+
- date: 2022-01-13
5+
version: v5.0.0
6+
changes:
7+
- type: improvement
8+
text: "BREAKING CHANGES: uuid is required parameter to create PubNub instance."
49
- date: 2021-12-16
510
version: v4.8.0
611
changes:
@@ -621,7 +626,7 @@ sdks:
621626
- x86-64
622627
- distribution-type: package
623628
distribution-repository: RubyGems
624-
package-name: pubnub-4.8.0.gem
629+
package-name: pubnub-5.0.0.gem
625630
location: https://rubygems.org/gems/pubnub
626631
requires:
627632
- name: addressable
@@ -726,8 +731,8 @@ sdks:
726731
- x86-64
727732
- distribution-type: library
728733
distribution-repository: GitHub release
729-
package-name: pubnub-4.8.0.gem
730-
location: https://github.com/pubnub/ruby/releases/download/v4.8.0/pubnub-4.8.0.gem
734+
package-name: pubnub-5.0.0.gem
735+
location: https://github.com/pubnub/ruby/releases/download/v5.0.0/pubnub-5.0.0.gem
731736
requires:
732737
- name: addressable
733738
min-version: 2.0.0

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## v5.0.0
2+
January 13 2022
3+
4+
#### Modified
5+
- BREAKING CHANGES: uuid is required parameter to create PubNub instance.
6+
17
## v4.8.0
28
December 16 2021
39

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
pubnub (4.8.0)
4+
pubnub (5.0.0)
55
addressable (>= 2.0.0)
66
concurrent-ruby (~> 1.1.5)
77
concurrent-ruby-edge (~> 0.5.0)

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.8.0
1+
5.0.0

features/step_definitions/access_steps.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
logger = Logger.new(STDOUT)
1313
logger.level = Logger::DEBUG
1414
@pn_configuration['logger'] = logger
15+
@pn_configuration['uuid'] = Pubnub::UUID.generate
1516

1617
@pubnub = Pubnub.new(@pn_configuration)
1718
end
@@ -24,6 +25,7 @@
2425
logger = Logger.new(STDOUT)
2526
logger.level = Logger::DEBUG
2627
@pn_configuration['logger'] = logger
28+
@pn_configuration['uuid'] = Pubnub::UUID.generate
2729

2830
@pubnub = Pubnub.new(@pn_configuration)
2931
end

lib/pubnub.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
require 'pubnub/version'
1717
require 'pubnub/client'
18+
require 'pubnub/uuid'
1819

1920
# Adding blank? and present? methods to Object.
2021
class Object

lib/pubnub/client.rb

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -384,14 +384,9 @@ def setup_app(options)
384384

385385
def prepare_env
386386
assign_defaults
387-
generate_uuid if @env[:uuid].blank?
388387
setup_pools
389388
end
390389

391-
def generate_uuid
392-
@env[:uuid] = UUID.generate
393-
end
394-
395390
def assign_defaults
396391
@env[:origin] = @env[:origins_pool].first if @env[:origins_pool]
397392
default_values.each do |k, v|

lib/pubnub/client/getters_setters.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
require 'pubnub/validators/common_validator'
2+
13
# Toplevel Pubnub module.
24
module Pubnub
35
# Pubnub client Class
46
class Client
57
# Module that holds some getters and setters
68
module GettersSetters
9+
710
def sdk_version
811
"PubNub-Ruby/#{Pubnub::VERSION}"
912
end
@@ -25,6 +28,8 @@ def sdk_version
2528
def change_uuid(uuid)
2629
Pubnub.logger.debug('Pubnub::Client') { 'Changing uuid' }
2730
raise('Cannot change UUID while subscribed.') if subscribed?
31+
Validator::Client.validate_uuid uuid
32+
2833
@env[:uuid] = uuid
2934
end
3035

lib/pubnub/validators/client.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ def validate!(parameters)
1111
validate_origin parameters[:origin], true
1212
validate_subscribe_key parameters[:subscribe_key], true
1313
validate_publish_key parameters[:publish_key]
14+
validate_uuid parameters[:uuid]
1415
end
1516
end
1617
end

lib/pubnub/validators/common_validator.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,23 @@ def validate_publish_key(publish_key, required = false)
5252
)
5353
end
5454
end
55+
56+
# Validates given uuid
57+
def validate_uuid(uuid)
58+
if !uuid || uuid.blank?
59+
raise(
60+
InitializationError.new,
61+
'Missing required :uuid parameter.'
62+
)
63+
elsif !([String, Symbol].include?(uuid.class) ||
64+
uuid.blank?)
65+
raise(
66+
InitializationError.new,
67+
'UUID parameter is not valid. \
68+
Should be type of String or Symbol.'
69+
)
70+
end
71+
end
5572
end
5673
end
5774
end

0 commit comments

Comments
 (0)