diff --git a/.pubnub.yml b/.pubnub.yml index 379020cb8..7459ee8f3 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -1,6 +1,11 @@ --- -version: "5.6.0" +version: "6.0.0" changelog: + - date: 2025-10-15 + version: v6.0.0 + changes: + - type: feature + text: "BREAKING CHANGES: Add 'limit' and 'offset' parameters for 'here_now' for pagination support." - date: 2025-09-11 version: v5.6.0 changes: @@ -613,7 +618,7 @@ sdks: - x86-64 - distribution-type: package distribution-repository: RubyGems - package-name: pubnub-5.6.0.gem + package-name: pubnub-6.0.0.gem location: https://rubygems.org/gems/pubnub requires: - name: addressable @@ -718,8 +723,8 @@ sdks: - x86-64 - distribution-type: library distribution-repository: GitHub release - package-name: pubnub-5.6.0.gem - location: https://github.com/pubnub/ruby/releases/download/v5.6.0/pubnub-5.6.0.gem + package-name: pubnub-6.0.0.gem + location: https://github.com/pubnub/ruby/releases/download/v6.0.0/pubnub-6.0.0.gem requires: - name: addressable min-version: 2.0.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ede2cdb8..8fcd59103 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## v6.0.0 +October 15 2025 + +#### Added +- BREAKING CHANGES: Add 'limit' and 'offset' parameters for 'here_now' for pagination support. + ## v5.6.0 September 11 2025 diff --git a/Gemfile.lock b/Gemfile.lock index 298e24362..3276ce29f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - pubnub (5.6.0) + pubnub (6.0.0) addressable (>= 2.0.0) concurrent-ruby (~> 1.3.4) concurrent-ruby-edge (~> 0.7.1) diff --git a/VERSION b/VERSION index 1bc788d3b..09b254e90 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.6.0 +6.0.0 diff --git a/fixtures/vcr_cassettes/examples/here_now/0.yml b/fixtures/vcr_cassettes/examples/here_now/0.yml index 51d292797..24998ad6f 100644 --- a/fixtures/vcr_cassettes/examples/here_now/0.yml +++ b/fixtures/vcr_cassettes/examples/here_now/0.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/1.yml b/fixtures/vcr_cassettes/examples/here_now/1.yml index d50b506de..ca987522e 100644 --- a/fixtures/vcr_cassettes/examples/here_now/1.yml +++ b/fixtures/vcr_cassettes/examples/here_now/1.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/10.yml b/fixtures/vcr_cassettes/examples/here_now/10.yml index 8c0bc8923..6f2b53b79 100644 --- a/fixtures/vcr_cassettes/examples/here_now/10.yml +++ b/fixtures/vcr_cassettes/examples/here_now/10.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/11.yml b/fixtures/vcr_cassettes/examples/here_now/11.yml index ecc48c37e..3f4e78267 100644 --- a/fixtures/vcr_cassettes/examples/here_now/11.yml +++ b/fixtures/vcr_cassettes/examples/here_now/11.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/12.yml b/fixtures/vcr_cassettes/examples/here_now/12.yml index fd7de19a4..106ee843a 100644 --- a/fixtures/vcr_cassettes/examples/here_now/12.yml +++ b/fixtures/vcr_cassettes/examples/here_now/12.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/13.yml b/fixtures/vcr_cassettes/examples/here_now/13.yml index 067500e9c..87ac1070b 100644 --- a/fixtures/vcr_cassettes/examples/here_now/13.yml +++ b/fixtures/vcr_cassettes/examples/here_now/13.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/14.yml b/fixtures/vcr_cassettes/examples/here_now/14.yml index 9c5713fbb..ca62cff34 100644 --- a/fixtures/vcr_cassettes/examples/here_now/14.yml +++ b/fixtures/vcr_cassettes/examples/here_now/14.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/15.yml b/fixtures/vcr_cassettes/examples/here_now/15.yml index 7b39e8879..e6e16b961 100644 --- a/fixtures/vcr_cassettes/examples/here_now/15.yml +++ b/fixtures/vcr_cassettes/examples/here_now/15.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/16.yml b/fixtures/vcr_cassettes/examples/here_now/16.yml index b68a70fda..b2c2b4747 100644 --- a/fixtures/vcr_cassettes/examples/here_now/16.yml +++ b/fixtures/vcr_cassettes/examples/here_now/16.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/17.yml b/fixtures/vcr_cassettes/examples/here_now/17.yml index 1cb174605..04061f863 100644 --- a/fixtures/vcr_cassettes/examples/here_now/17.yml +++ b/fixtures/vcr_cassettes/examples/here_now/17.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/18.yml b/fixtures/vcr_cassettes/examples/here_now/18.yml index f97b7dca2..fed583939 100644 --- a/fixtures/vcr_cassettes/examples/here_now/18.yml +++ b/fixtures/vcr_cassettes/examples/here_now/18.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/19.yml b/fixtures/vcr_cassettes/examples/here_now/19.yml index f97b7dca2..fed583939 100644 --- a/fixtures/vcr_cassettes/examples/here_now/19.yml +++ b/fixtures/vcr_cassettes/examples/here_now/19.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/2.yml b/fixtures/vcr_cassettes/examples/here_now/2.yml index 51d292797..24998ad6f 100644 --- a/fixtures/vcr_cassettes/examples/here_now/2.yml +++ b/fixtures/vcr_cassettes/examples/here_now/2.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/20.yml b/fixtures/vcr_cassettes/examples/here_now/20.yml index 1fb3073bc..75772c9ca 100644 --- a/fixtures/vcr_cassettes/examples/here_now/20.yml +++ b/fixtures/vcr_cassettes/examples/here_now/20.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/21.yml b/fixtures/vcr_cassettes/examples/here_now/21.yml index cb55b60b0..530a467dc 100644 --- a/fixtures/vcr_cassettes/examples/here_now/21.yml +++ b/fixtures/vcr_cassettes/examples/here_now/21.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/22.yml b/fixtures/vcr_cassettes/examples/here_now/22.yml index cb55b60b0..530a467dc 100644 --- a/fixtures/vcr_cassettes/examples/here_now/22.yml +++ b/fixtures/vcr_cassettes/examples/here_now/22.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/23.yml b/fixtures/vcr_cassettes/examples/here_now/23.yml index cb55b60b0..530a467dc 100644 --- a/fixtures/vcr_cassettes/examples/here_now/23.yml +++ b/fixtures/vcr_cassettes/examples/here_now/23.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/24.yml b/fixtures/vcr_cassettes/examples/here_now/24.yml index d5d93605f..547fbdb60 100644 --- a/fixtures/vcr_cassettes/examples/here_now/24.yml +++ b/fixtures/vcr_cassettes/examples/here_now/24.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/25.yml b/fixtures/vcr_cassettes/examples/here_now/25.yml index 1edfddee2..b464fa72b 100644 --- a/fixtures/vcr_cassettes/examples/here_now/25.yml +++ b/fixtures/vcr_cassettes/examples/here_now/25.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/26.yml b/fixtures/vcr_cassettes/examples/here_now/26.yml index 97ddbe9a9..7a674cca7 100644 --- a/fixtures/vcr_cassettes/examples/here_now/26.yml +++ b/fixtures/vcr_cassettes/examples/here_now/26.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/27.yml b/fixtures/vcr_cassettes/examples/here_now/27.yml index 9131a19b7..1a31c2f7b 100644 --- a/fixtures/vcr_cassettes/examples/here_now/27.yml +++ b/fixtures/vcr_cassettes/examples/here_now/27.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/28.yml b/fixtures/vcr_cassettes/examples/here_now/28.yml index 2e8157751..43a7704ac 100644 --- a/fixtures/vcr_cassettes/examples/here_now/28.yml +++ b/fixtures/vcr_cassettes/examples/here_now/28.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/29.yml b/fixtures/vcr_cassettes/examples/here_now/29.yml index 9131a19b7..1a31c2f7b 100644 --- a/fixtures/vcr_cassettes/examples/here_now/29.yml +++ b/fixtures/vcr_cassettes/examples/here_now/29.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/3.yml b/fixtures/vcr_cassettes/examples/here_now/3.yml index 26e3498a9..92f6fea72 100644 --- a/fixtures/vcr_cassettes/examples/here_now/3.yml +++ b/fixtures/vcr_cassettes/examples/here_now/3.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/30.yml b/fixtures/vcr_cassettes/examples/here_now/30.yml index 7fed627b3..56123d59f 100644 --- a/fixtures/vcr_cassettes/examples/here_now/30.yml +++ b/fixtures/vcr_cassettes/examples/here_now/30.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/31.yml b/fixtures/vcr_cassettes/examples/here_now/31.yml index 99f575ddd..072809e93 100644 --- a/fixtures/vcr_cassettes/examples/here_now/31.yml +++ b/fixtures/vcr_cassettes/examples/here_now/31.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/32.yml b/fixtures/vcr_cassettes/examples/here_now/32.yml index 4d56f9954..749756792 100644 --- a/fixtures/vcr_cassettes/examples/here_now/32.yml +++ b/fixtures/vcr_cassettes/examples/here_now/32.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/33.yml b/fixtures/vcr_cassettes/examples/here_now/33.yml index 1b5bc30c1..42c1191da 100644 --- a/fixtures/vcr_cassettes/examples/here_now/33.yml +++ b/fixtures/vcr_cassettes/examples/here_now/33.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/34.yml b/fixtures/vcr_cassettes/examples/here_now/34.yml index 4d56f9954..749756792 100644 --- a/fixtures/vcr_cassettes/examples/here_now/34.yml +++ b/fixtures/vcr_cassettes/examples/here_now/34.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/35.yml b/fixtures/vcr_cassettes/examples/here_now/35.yml index 1b5bc30c1..42c1191da 100644 --- a/fixtures/vcr_cassettes/examples/here_now/35.yml +++ b/fixtures/vcr_cassettes/examples/here_now/35.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/36.yml b/fixtures/vcr_cassettes/examples/here_now/36.yml new file mode 100644 index 000000000..8f8df8e8d --- /dev/null +++ b/fixtures/vcr_cassettes/examples/here_now/36.yml @@ -0,0 +1,39 @@ +--- +http_interactions: +- request: + method: get + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/here-now-test-channel?auth=ruby-test-auth-client-one&limit=2&pnsdk=PubNub-Ruby/5.6.0&uuid=ruby-test-uuid-client-one + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - HTTPClient/1.0 (2.8.3, ruby 3.2.2 (2023-03-30)) + Accept: + - "*/*" + Date: + - Fri, 19 Sep 2025 07:18:06 GMT + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 19 Sep 2025 07:18:06 GMT + Content-Type: + - text/javascript; charset="UTF-8" + Content-Length: + - '131' + Connection: + - keep-alive + Access-Control-Allow-Methods: + - OPTIONS, GET, POST + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - "*" + body: + encoding: UTF-8 + string: '{"message":"OK","occupancy":4,"service":"Presence","status":200,"uuids":["ruby-test-auth-client-two","ruby-test-auth-client-four"]}' + recorded_at: Fri, 19 Sep 2025 07:18:06 GMT +recorded_with: VCR 6.3.1 diff --git a/fixtures/vcr_cassettes/examples/here_now/37.yml b/fixtures/vcr_cassettes/examples/here_now/37.yml new file mode 100644 index 000000000..ba984e853 --- /dev/null +++ b/fixtures/vcr_cassettes/examples/here_now/37.yml @@ -0,0 +1,39 @@ +--- +http_interactions: +- request: + method: get + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/here-now-test-channel?auth=ruby-test-auth-client-one&limit=1000&pnsdk=PubNub-Ruby/5.6.0&uuid=ruby-test-uuid-client-one + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - HTTPClient/1.0 (2.8.3, ruby 3.2.2 (2023-03-30)) + Accept: + - "*/*" + Date: + - Fri, 19 Sep 2025 07:18:14 GMT + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 19 Sep 2025 07:18:14 GMT + Content-Type: + - text/javascript; charset="UTF-8" + Content-Length: + - '189' + Connection: + - keep-alive + Access-Control-Allow-Methods: + - OPTIONS, GET, POST + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - "*" + body: + encoding: UTF-8 + string: '{"message":"OK","occupancy":4,"service":"Presence","status":200,"uuids":["ruby-test-auth-client-two","ruby-test-auth-client-four","ruby-test-auth-client-one","ruby-test-auth-client-three"]}' + recorded_at: Fri, 19 Sep 2025 07:18:14 GMT +recorded_with: VCR 6.3.1 diff --git a/fixtures/vcr_cassettes/examples/here_now/38.yml b/fixtures/vcr_cassettes/examples/here_now/38.yml new file mode 100644 index 000000000..d06ac5810 --- /dev/null +++ b/fixtures/vcr_cassettes/examples/here_now/38.yml @@ -0,0 +1,111 @@ +--- +http_interactions: +- request: + method: get + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/test-channel-514,test-channel-56,test-channel-195?auth=ruby-test-auth-client-one&limit=3&pnsdk=PubNub-Ruby/5.6.0&uuid=ruby-test-uuid-client-one + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - HTTPClient/1.0 (2.8.3, ruby 3.2.2 (2023-03-30)) + Accept: + - "*/*" + Date: + - Fri, 03 Oct 2025 12:29:56 GMT + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 03 Oct 2025 12:29:57 GMT + Content-Type: + - text/javascript; charset="UTF-8" + Content-Length: + - '354' + Connection: + - keep-alive + Access-Control-Allow-Methods: + - OPTIONS, GET, POST + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - "*" + body: + encoding: UTF-8 + string: '{"message":"OK","payload":{"channels":{"test-channel-195":{"occupancy":1,"uuids":["web-user-704"]},"test-channel-514":{"occupancy":7,"uuids":["web-user-239","web-user-308","web-user-401"]},"test-channel-56":{"occupancy":4,"uuids":["web-user-281","web-user-849","web-user-771"]}},"total_channels":3,"total_occupancy":12},"service":"Presence","status":200}' + recorded_at: Fri, 03 Oct 2025 12:29:56 GMT +- request: + method: get + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/test-channel-514,test-channel-56,test-channel-195?auth=ruby-test-auth-client-one&l_pres=0.482&limit=3&offset=3&pnsdk=PubNub-Ruby/5.6.0&uuid=ruby-test-uuid-client-one + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - HTTPClient/1.0 (2.8.3, ruby 3.2.2 (2023-03-30)) + Accept: + - "*/*" + Date: + - Fri, 03 Oct 2025 12:29:56 GMT + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 03 Oct 2025 12:29:57 GMT + Content-Type: + - text/javascript; charset="UTF-8" + Content-Length: + - '310' + Connection: + - keep-alive + Access-Control-Allow-Methods: + - OPTIONS, GET, POST + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - "*" + body: + encoding: UTF-8 + string: '{"message":"OK","payload":{"channels":{"test-channel-195":{"occupancy":1,"uuids":[]},"test-channel-514":{"occupancy":7,"uuids":["web-user-322","web-user-605","web-user-598"]},"test-channel-56":{"occupancy":4,"uuids":["web-user-848"]}},"total_channels":3,"total_occupancy":12},"service":"Presence","status":200}' + recorded_at: Fri, 03 Oct 2025 12:29:56 GMT +- request: + method: get + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/test-channel-514,test-channel-56,test-channel-195?auth=ruby-test-auth-client-one&l_pres=0.051&limit=3&offset=6&pnsdk=PubNub-Ruby/5.6.0&uuid=ruby-test-uuid-client-one + body: + encoding: UTF-8 + string: '' + headers: + User-Agent: + - HTTPClient/1.0 (2.8.3, ruby 3.2.2 (2023-03-30)) + Accept: + - "*/*" + Date: + - Fri, 03 Oct 2025 12:29:56 GMT + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 03 Oct 2025 12:29:57 GMT + Content-Type: + - text/javascript; charset="UTF-8" + Content-Length: + - '266' + Connection: + - keep-alive + Access-Control-Allow-Methods: + - OPTIONS, GET, POST + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - "*" + body: + encoding: UTF-8 + string: '{"message":"OK","payload":{"channels":{"test-channel-195":{"occupancy":1,"uuids":[]},"test-channel-514":{"occupancy":7,"uuids":["web-user-360"]},"test-channel-56":{"occupancy":4,"uuids":[]}},"total_channels":3,"total_occupancy":12},"service":"Presence","status":200}' + recorded_at: Fri, 03 Oct 2025 12:29:56 GMT +recorded_with: VCR 6.3.1 diff --git a/fixtures/vcr_cassettes/examples/here_now/4.yml b/fixtures/vcr_cassettes/examples/here_now/4.yml index 26e3498a9..92f6fea72 100644 --- a/fixtures/vcr_cassettes/examples/here_now/4.yml +++ b/fixtures/vcr_cassettes/examples/here_now/4.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/5.yml b/fixtures/vcr_cassettes/examples/here_now/5.yml index 0dd610733..cbda7da4f 100644 --- a/fixtures/vcr_cassettes/examples/here_now/5.yml +++ b/fixtures/vcr_cassettes/examples/here_now/5.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/6.yml b/fixtures/vcr_cassettes/examples/here_now/6.yml index 423db7911..ad16aa6c3 100644 --- a/fixtures/vcr_cassettes/examples/here_now/6.yml +++ b/fixtures/vcr_cassettes/examples/here_now/6.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/7.yml b/fixtures/vcr_cassettes/examples/here_now/7.yml index 630777cf5..9a1254b84 100644 --- a/fixtures/vcr_cassettes/examples/here_now/7.yml +++ b/fixtures/vcr_cassettes/examples/here_now/7.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/8.yml b/fixtures/vcr_cassettes/examples/here_now/8.yml index bb7021771..960bbff0a 100644 --- a/fixtures/vcr_cassettes/examples/here_now/8.yml +++ b/fixtures/vcr_cassettes/examples/here_now/8.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/examples/here_now/9.yml b/fixtures/vcr_cassettes/examples/here_now/9.yml index 20ab3d246..24591bf01 100644 --- a/fixtures/vcr_cassettes/examples/here_now/9.yml +++ b/fixtures/vcr_cassettes/examples/here_now/9.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth-client-one&channel-group=demo&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid-client-one body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/lib/events/here-now-error.yml b/fixtures/vcr_cassettes/lib/events/here-now-error.yml index 444c03cae..72782041d 100644 --- a/fixtures/vcr_cassettes/lib/events/here-now-error.yml +++ b/fixtures/vcr_cassettes/lib/events/here-now-error.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/lib/events/here-now.yml b/fixtures/vcr_cassettes/lib/events/here-now.yml index 4557ea4e8..c930b772c 100644 --- a/fixtures/vcr_cassettes/lib/events/here-now.yml +++ b/fixtures/vcr_cassettes/lib/events/here-now.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?auth=ruby-test-auth&limit=1000&pnsdk=PubNub-Ruby/4.1.0&uuid=ruby-test-uuid body: encoding: UTF-8 string: '' diff --git a/fixtures/vcr_cassettes/lib/signatures/here_now.yml b/fixtures/vcr_cassettes/lib/signatures/here_now.yml index 25e68f6b0..2177a133c 100644 --- a/fixtures/vcr_cassettes/lib/signatures/here_now.yml +++ b/fixtures/vcr_cassettes/lib/signatures/here_now.yml @@ -2,46 +2,38 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/a!@%23$%25%5E&*()%C5%BB%C3%93%C5%81%5B%5D%7B%7D%22%22%3C%3E%3F%3F~%60Z?pnsdk=PubNub-Ruby/4.0.21&signature=TCAR%2BkkCtGwRwBLF6k7jFjXnBBcnFHqo4GQDX7MLVNQ=×tamp=1496401140&uuid=test + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/a!@%23$%25%5E&*()%C5%BB%C3%93%C5%81%5B%5D%7B%7D%22%22%3C%3E%3F%3F~%60Z?limit=1000&pnsdk=PubNub-Ruby/4.0.21&signature=v2.kA0ehBw7JQEFu7g3Mk1polqVqiCSEB8-ZZk1ahElQgs×tamp=1496401140&uuid=test body: encoding: UTF-8 string: '' headers: User-Agent: - - HTTPClient/1.0 (2.8.3, ruby 2.1.10 (2016-04-01)) + - HTTPClient/1.0 (2.8.3, ruby 3.2.2 (2023-03-30)) Accept: - "*/*" Date: - - Fri, 02 Jun 2017 10:59:00 GMT + - Fri, 03 Oct 2025 18:26:23 GMT response: status: code: 200 message: OK headers: Date: - - Fri, 02 Jun 2017 10:59:00 GMT + - Fri, 03 Oct 2025 18:26:24 GMT Content-Type: - text/javascript; charset="UTF-8" Content-Length: - - '84' + - '75' Connection: - keep-alive - Access-Control-Allow-Origin: - - "*" Access-Control-Allow-Methods: - OPTIONS, GET, POST - Cache-Control: - - no-cache - Accept-Ranges: - - bytes - Age: - - '0' - Server: - - Pubnub Presence + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - "*" body: encoding: UTF-8 - string: '{"status": 200, "message": "OK", "occupancy": 0, "uuids": [], "service": - "Presence"}' - http_version: - recorded_at: Fri, 02 Jun 2017 10:59:00 GMT -recorded_with: VCR 3.0.1 + string: '{"message":"OK","occupancy":0,"service":"Presence","status":200,"uuids":[]}' + recorded_at: Fri, 03 Oct 2025 18:26:24 GMT +recorded_with: VCR 6.3.1 diff --git a/fixtures/vcr_cassettes/lib/super_admin/here_now.yml b/fixtures/vcr_cassettes/lib/super_admin/here_now.yml index 7a731c66d..4be63c7e1 100644 --- a/fixtures/vcr_cassettes/lib/super_admin/here_now.yml +++ b/fixtures/vcr_cassettes/lib/super_admin/here_now.yml @@ -2,7 +2,7 @@ http_interactions: - request: method: get - uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?pnsdk=PubNub-Ruby/4.0.10&signature=7aPUXLeMx1NsCGYIcuPbzrzbxbUk8PBGVV4aw86f5I8=×tamp=1477672650&uuid=ruby-test + uri: http://ps.pndsn.com/v2/presence/sub-key/sub-a-mock-key/channel/demo?limit=1000&pnsdk=PubNub-Ruby/4.0.10&signature=7aPUXLeMx1NsCGYIcuPbzrzbxbUk8PBGVV4aw86f5I8=×tamp=1477672650&uuid=ruby-test body: encoding: UTF-8 string: '' diff --git a/lib/pubnub/constants.rb b/lib/pubnub/constants.rb index 3d7c9cd77..dace30ac4 100644 --- a/lib/pubnub/constants.rb +++ b/lib/pubnub/constants.rb @@ -22,6 +22,7 @@ module Constants DEFAULT_USE_RANDOM_IV = true DEFAULT_SSL = false REQUEST_MESSAGE_COUNT_THRESHOLD = 0 + MAXIMUM_HERE_NOW_COUNT = 1000 # Envelope values # Errors diff --git a/lib/pubnub/event.rb b/lib/pubnub/event.rb index 9f684e1f7..6eb72f9d1 100644 --- a/lib/pubnub/event.rb +++ b/lib/pubnub/event.rb @@ -173,7 +173,7 @@ def create_variables_from_options(options) crypto_module secret_key auth_key publish_key subscribe_key timetoken action_timetoken message_timetoken open_timeout read_timeout idle_timeout heartbeat group action read write delete manage ttl presence start end count - limit max reverse presence_callback store skip_validate state channel_group + offset limit max reverse presence_callback store skip_validate state channel_group channel_groups compressed meta customs custom_message_type include_token include_custom_message_type include_message_actions include_message_type replicate with_presence cipher_key_selector include_meta include_uuid join diff --git a/lib/pubnub/events/here_now.rb b/lib/pubnub/events/here_now.rb index 2968c98ca..3f087a7d3 100644 --- a/lib/pubnub/events/here_now.rb +++ b/lib/pubnub/events/here_now.rb @@ -50,6 +50,19 @@ def global_path def parameters(*_args) parameters = super parameters['channel-group'] = @group.join(',') unless @group.blank? + + if current_operation == Pubnub::Constants::OPERATION_HERE_NOW + @limit = if !@limit&.positive? + Pubnub::Constants::MAXIMUM_HERE_NOW_COUNT + else + [Pubnub::Constants::MAXIMUM_HERE_NOW_COUNT, @limit].min + end + @offset = 0 if @offset.nil? + + parameters['limit'] = @limit + parameters['offset'] = @offset if @offset&.positive? + end + parameters end diff --git a/lib/pubnub/version.rb b/lib/pubnub/version.rb index 05d6655b2..8fa650f46 100644 --- a/lib/pubnub/version.rb +++ b/lib/pubnub/version.rb @@ -1,4 +1,4 @@ # Toplevel Pubnub module. module Pubnub - VERSION = '5.6.0'.freeze + VERSION = '6.0.0'.freeze end diff --git a/spec/examples/here_now_examples_spec.rb b/spec/examples/here_now_examples_spec.rb index 0bf6877be..e1244006c 100644 --- a/spec/examples/here_now_examples_spec.rb +++ b/spec/examples/here_now_examples_spec.rb @@ -611,4 +611,135 @@ expect(envelope.result[:data]).to eq({:uuids => ["ruby-test-uuid-client-one"], :occupancy => 1, :total_occupancy => nil, :total_channels => nil, :channels => nil}) end end + + it "__channel__here_now_test_channel___group__nil___limit__2___http_sync__true_" do + VCR.use_cassette("examples/here_now/36", record: :once) do + envelope = @pubnub.here_now(channel: "here-now-test-channel", limit: 2, http_sync: true) + expect(envelope.is_a?(Pubnub::Envelope)).to eq true + expect(envelope.error?).to eq false + + expect(envelope.status[:code]).to eq(200) + expect(envelope.status[:category]).to eq(:ack) + expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", :auth_key => "ruby-test-auth-client-one", :origin => "ps.pndsn.com"}) + expect(envelope.status[:client_request].query).to include("limit=2") + expect(envelope.status[:client_request].query).to_not include("offset=0") + + expect(envelope.result[:code]).to eq(200) + expect(envelope.result[:operation]).to eq(:here_now) + expect(envelope.result[:data]).to eq({ + :occupancy => 4, + :total_occupancy => nil, + :total_channels => nil, + :channels => nil, + :uuids => envelope.result[:data][:uuids] + }) + end + end + + it "__channel__here_now_test_channel___group__nil___limit__10000___http_sync__true_" do + VCR.use_cassette("examples/here_now/37", record: :once) do + envelope = @pubnub.here_now(channel: "here-now-test-channel", limit: 10000, http_sync: true) + expect(envelope.is_a?(Pubnub::Envelope)).to eq true + expect(envelope.error?).to eq false + + expect(envelope.status[:code]).to eq(200) + expect(envelope.status[:category]).to eq(:ack) + expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", :auth_key => "ruby-test-auth-client-one", :origin => "ps.pndsn.com"}) + expect(envelope.status[:client_request].query).to include("limit=1000") + expect(envelope.status[:client_request].query).to_not include("offset=0") + + expect(envelope.result[:code]).to eq(200) + expect(envelope.result[:operation]).to eq(:here_now) + expect(envelope.result[:data]).to eq({ + :occupancy => 4, + :total_occupancy => nil, + :total_channels => nil, + :channels => nil, + :uuids => envelope.result[:data][:uuids] + }) + end + end + + it "__channels_test_channel_514_test_channel_56_test_channel_195___group__nil___limit__3___offset__3_6___http_sync__true_" do + VCR.use_cassette("examples/here_now/38", record: :once) do + channels_list = %w[test-channel-514 test-channel-56 test-channel-195] + # Fetching first page. + envelope = @pubnub.here_now(channels: channels_list, limit: 3, http_sync: true) + expect(envelope.is_a?(Pubnub::Envelope)).to eq true + expect(envelope.error?).to eq false + + expect(envelope.status[:code]).to eq(200) + expect(envelope.status[:category]).to eq(:ack) + expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", :auth_key => "ruby-test-auth-client-one", :origin => "ps.pndsn.com"}) + expect(envelope.status[:client_request].query).to include("limit=3") + expect(envelope.status[:client_request].query).to_not include("offset=0") + + expect(envelope.result[:code]).to eq(200) + expect(envelope.result[:operation]).to eq(:here_now) + expect(envelope.result[:data]).to eq({ + :occupancy => nil, + :total_occupancy => 12, + :total_channels => 3, + :channels => envelope.result[:data][:channels], + :uuids => nil + }) + channels = envelope.result[:data][:channels] + + # Fetching next page + offset = 3 + envelope = @pubnub.here_now(channels: channels_list, limit: 3, offset: offset, http_sync: true) + expect(envelope.is_a?(Pubnub::Envelope)).to eq true + expect(envelope.error?).to eq false + + expect(envelope.status[:code]).to eq(200) + expect(envelope.status[:category]).to eq(:ack) + expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", :auth_key => "ruby-test-auth-client-one", :origin => "ps.pndsn.com"}) + expect(envelope.status[:client_request].query).to include("limit=3") + expect(envelope.status[:client_request].query).to include("offset=#{offset}") + + expect(envelope.result[:code]).to eq(200) + expect(envelope.result[:operation]).to eq(:here_now) + expect(envelope.result[:data]).to eq({ + :occupancy => nil, + :total_occupancy => 12, + :total_channels => 3, + :channels => envelope.result[:data][:channels], + :uuids => nil + }) + channels.each_pair do |channel_name, channel_data| + channel_data['uuids'].each do |uuid| + expect(envelope.result[:data][:channels][channel_name]['uuids']).not_to include(uuid) + end + end + channels = envelope.result[:data][:channels] + + + # Fetching last page + offset = 6 + envelope = @pubnub.here_now(channels: channels_list, limit: 3, offset: offset, http_sync: true) + expect(envelope.is_a?(Pubnub::Envelope)).to eq true + expect(envelope.error?).to eq false + + expect(envelope.status[:code]).to eq(200) + expect(envelope.status[:category]).to eq(:ack) + expect(envelope.status[:config]).to eq({:tls => false, :uuid => "ruby-test-uuid-client-one", :auth_key => "ruby-test-auth-client-one", :origin => "ps.pndsn.com"}) + expect(envelope.status[:client_request].query).to include("limit=3") + expect(envelope.status[:client_request].query).to include("offset=#{offset}") + + expect(envelope.result[:code]).to eq(200) + expect(envelope.result[:operation]).to eq(:here_now) + expect(envelope.result[:data]).to eq({ + :occupancy => nil, + :total_occupancy => 12, + :total_channels => 3, + :channels => envelope.result[:data][:channels], + :uuids => nil + }) + channels.each_pair do |channel_name, channel_data| + channel_data['uuids'].each do |uuid| + expect(envelope.result[:data][:channels][channel_name]['uuids']).not_to include(uuid) + end + end + end + end end