pubnub 4.2.5 → 4.5.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of pubnub might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +1 -0
- data/.pubnub.yml +168 -117
- data/.travis.yml +13 -9
- data/CHANGELOG.md +31 -8
- data/Gemfile.lock +67 -64
- data/README.md +56 -17
- data/VERSION +1 -1
- data/fixtures/vcr_cassettes/examples/add_channels_to_push/001.yml +45 -0
- data/fixtures/vcr_cassettes/examples/add_channels_to_push/002.yml +45 -0
- data/fixtures/vcr_cassettes/examples/add_channels_to_push/003.yml +45 -0
- data/fixtures/vcr_cassettes/examples/add_channels_to_push/004.yml +45 -0
- data/fixtures/vcr_cassettes/examples/grant/1913.yml +1 -1
- data/fixtures/vcr_cassettes/examples/grant/1944.yml +8 -9
- data/fixtures/vcr_cassettes/examples/grant/1945.yml +359 -9
- data/fixtures/vcr_cassettes/examples/grant/1946.yml +8 -9
- data/fixtures/vcr_cassettes/examples/grant/1947.yml +8 -9
- data/fixtures/vcr_cassettes/examples/grant/1948.yml +8 -9
- data/fixtures/vcr_cassettes/examples/history/100.yml +46 -0
- data/fixtures/vcr_cassettes/examples/history/include_meta__encrypted.yml +46 -0
- data/fixtures/vcr_cassettes/examples/history/include_token__encrypted.yml +45 -0
- data/fixtures/vcr_cassettes/examples/history/no_includes__encrypted.yml +45 -0
- data/fixtures/vcr_cassettes/examples/list_push_provisions/001.yml +46 -0
- data/fixtures/vcr_cassettes/examples/list_push_provisions/002.yml +45 -0
- data/fixtures/vcr_cassettes/examples/list_push_provisions/003.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_channels_from_push/001.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_channels_from_push/002.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_channels_from_push/003.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_device_from_push/001.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_device_from_push/002.yml +45 -0
- data/fixtures/vcr_cassettes/examples/remove_device_from_push/003.yml +45 -0
- data/fixtures/vcr_cassettes/lib/events/get_all_channels_metadata.yml +39 -0
- data/fixtures/vcr_cassettes/lib/events/get_all_uuid_metadata.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/get_channel_members.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/get_channel_metadata.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/get_memberships1.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/get_memberships2.yml +37 -0
- data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata1.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata2.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/grant-error.yml +2 -2
- data/fixtures/vcr_cassettes/lib/events/grant.yml +10 -11
- data/fixtures/vcr_cassettes/lib/events/remove_channel_members.yml +78 -0
- data/fixtures/vcr_cassettes/lib/events/{delete_space.yml → remove_channel_metadata.yml} +5 -6
- data/fixtures/vcr_cassettes/lib/events/{manage_memberships_remove.yml → remove_memberships1.yml} +8 -9
- data/fixtures/vcr_cassettes/lib/events/{manage_members_add.yml → remove_memberships2.yml} +8 -9
- data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata1.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata2.yml +76 -0
- data/fixtures/vcr_cassettes/lib/events/set_channel_members.yml +39 -0
- data/fixtures/vcr_cassettes/lib/events/set_channel_metadata.yml +39 -0
- data/fixtures/vcr_cassettes/lib/events/{manage_memberships_add.yml → set_memberships1.yml} +8 -9
- data/fixtures/vcr_cassettes/lib/events/set_memberships2.yml +39 -0
- data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata1.yml +78 -0
- data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata2.yml +78 -0
- data/fixtures/vcr_cassettes/lib/events/{subscribe-space-delete-async.yml → subscribe-channel-metadata-remove-sync.yml} +12 -14
- data/fixtures/vcr_cassettes/lib/events/subscribe-channel-metadata-set-async.yml +75 -0
- data/fixtures/vcr_cassettes/lib/events/{subscribe-member-remove-async.yml → subscribe-member-remove-sync.yml} +12 -14
- data/fixtures/vcr_cassettes/lib/events/subscribe-member-set-async.yml +75 -0
- data/fixtures/vcr_cassettes/lib/events/subscribe-membership-remove-async.yml +12 -14
- data/fixtures/vcr_cassettes/lib/events/{subscribe-user-update-async.yml → subscribe-membership-set-async.yml} +12 -14
- data/fixtures/vcr_cassettes/lib/events/{subscribe-user-delete-async.yml → subscribe-uuid-metadata-remove-sync.yml} +12 -14
- data/fixtures/vcr_cassettes/lib/events/subscribe-uuid-metadata-set-async.yml +75 -0
- data/lib/pubnub/client.rb +18 -15
- data/lib/pubnub/client/events.rb +4 -2
- data/lib/pubnub/client/paged_history.rb +1 -1
- data/lib/pubnub/constants.rb +19 -18
- data/lib/pubnub/event.rb +32 -16
- data/lib/pubnub/event/formatter.rb +4 -0
- data/lib/pubnub/event/signature.rb +22 -7
- data/lib/pubnub/events/add_channels_to_push.rb +29 -13
- data/lib/pubnub/events/get_all_channels_metadata.rb +104 -0
- data/lib/pubnub/events/get_all_uuid_metadata.rb +104 -0
- data/lib/pubnub/events/get_channel_members.rb +120 -0
- data/lib/pubnub/events/{update_space.rb → get_channel_metadata.rb} +27 -27
- data/lib/pubnub/events/get_memberships.rb +120 -0
- data/lib/pubnub/events/{create_space.rb → get_uuid_metadata.rb} +27 -25
- data/lib/pubnub/events/grant.rb +10 -1
- data/lib/pubnub/events/history.rb +17 -2
- data/lib/pubnub/events/list_push_provisions.rb +29 -12
- data/lib/pubnub/events/remove_channel_members.rb +137 -0
- data/lib/pubnub/events/{delete_space.rb → remove_channel_metadata.rb} +12 -12
- data/lib/pubnub/events/remove_channels_from_push.rb +29 -13
- data/lib/pubnub/events/remove_device_from_push.rb +30 -14
- data/lib/pubnub/events/remove_memberships.rb +137 -0
- data/lib/pubnub/events/{delete_user.rb → remove_uuid_metadata.rb} +12 -12
- data/lib/pubnub/events/set_channel_members.rb +140 -0
- data/lib/pubnub/events/{manage_members.rb → set_channel_metadata.rb} +32 -38
- data/lib/pubnub/events/set_memberships.rb +140 -0
- data/lib/pubnub/events/{create_user.rb → set_uuid_metadata.rb} +33 -17
- data/lib/pubnub/formatter.rb +30 -3
- data/lib/pubnub/pam.rb +2 -11
- data/lib/pubnub/subscribe_callback.rb +1 -3
- data/lib/pubnub/subscribe_event/formatter.rb +26 -17
- data/lib/pubnub/subscriber.rb +5 -6
- data/lib/pubnub/validators/add_channels_to_push.rb +52 -0
- data/lib/pubnub/validators/get_all_channels_metadata.rb +29 -0
- data/lib/pubnub/validators/get_all_uuid_metadata.rb +29 -0
- data/lib/pubnub/validators/get_channel_members.rb +39 -0
- data/lib/pubnub/validators/get_channel_metadata.rb +39 -0
- data/lib/pubnub/validators/get_memberships.rb +39 -0
- data/lib/pubnub/validators/get_uuid_metadata.rb +39 -0
- data/lib/pubnub/validators/grant.rb +37 -2
- data/lib/pubnub/validators/list_push_provisions.rb +43 -0
- data/lib/pubnub/validators/remove_channel_members.rb +52 -0
- data/lib/pubnub/validators/remove_channel_metadata.rb +39 -0
- data/lib/pubnub/validators/remove_channels_from_push.rb +52 -0
- data/lib/pubnub/validators/remove_device_from_push.rb +43 -0
- data/lib/pubnub/validators/remove_memberships.rb +52 -0
- data/lib/pubnub/validators/remove_uuid_metadata.rb +39 -0
- data/lib/pubnub/validators/set_channel_members.rb +78 -0
- data/lib/pubnub/validators/set_channel_metadata.rb +62 -0
- data/lib/pubnub/validators/set_memberships.rb +78 -0
- data/lib/pubnub/validators/set_uuid_metadata.rb +62 -0
- data/lib/pubnub/version.rb +1 -1
- data/pubnub.gemspec +1 -1
- data/spec/examples/add_channels_to_push_spec.rb +178 -0
- data/spec/examples/{grant_examples_spec.rb → grant_examples_1_spec.rb} +0 -8973
- data/spec/examples/grant_examples_2_spec.rb +9107 -0
- data/spec/examples/history_examples_spec.rb +85 -0
- data/spec/examples/list_push_provisions_spec.rb +164 -0
- data/spec/examples/presence_examples_spec.rb +222 -186
- data/spec/examples/remove_channels_from_push_spec.rb +164 -0
- data/spec/examples/remove_device_from_push_spec.rb +164 -0
- data/spec/examples/revoke_examples_1_spec.rb +27013 -0
- data/spec/examples/revoke_examples_2_spec.rb +27012 -0
- data/spec/examples/revoke_examples_3_spec.rb +17967 -0
- data/spec/examples/status_request_message_count_exceeded_spec.rb +4 -1
- data/spec/examples/subscribe_examples_1_spec.rb +26972 -0
- data/spec/examples/subscribe_examples_2_spec.rb +19575 -0
- data/spec/lib/connection_callback_spec.rb +4 -3
- data/spec/lib/event/formatter_spec.rb +22 -0
- data/spec/lib/events/channel_metadata_spec.rb +58 -0
- data/spec/lib/events/grant_spec.rb +3 -2
- data/spec/lib/events/membership_spec.rb +51 -21
- data/spec/lib/events/presence_delta_spec.rb +9 -6
- data/spec/lib/events/presence_spec.rb +13 -7
- data/spec/lib/events/subscribe_spec.rb +102 -65
- data/spec/lib/events/uuid_metadata_spec.rb +86 -0
- data/spec/lib/subscribe_event/formatter_spec.rb +22 -0
- data/spec/lib/super_admin_spec.rb +8 -4
- data/spec/spec_helper.rb +24 -8
- metadata +124 -79
- data/fixtures/vcr_cassettes/lib/events/create_space.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/create_user.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/delete_user.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_members.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_space.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_space_memberships.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_spaces.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/get_user.yml +0 -38
- data/fixtures/vcr_cassettes/lib/events/get_users.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/manage_members_remove.yml +0 -83
- data/fixtures/vcr_cassettes/lib/events/subscribe-member-add-async.yml +0 -77
- data/fixtures/vcr_cassettes/lib/events/subscribe-membership-add-async.yml +0 -77
- data/fixtures/vcr_cassettes/lib/events/subscribe-space-update-async.yml +0 -77
- data/fixtures/vcr_cassettes/lib/events/update_space.yml +0 -40
- data/fixtures/vcr_cassettes/lib/events/update_user.yml +0 -40
- data/lib/pubnub/events/get_members.rb +0 -93
- data/lib/pubnub/events/get_space.rb +0 -74
- data/lib/pubnub/events/get_space_memberships.rb +0 -93
- data/lib/pubnub/events/get_spaces.rb +0 -90
- data/lib/pubnub/events/get_user.rb +0 -74
- data/lib/pubnub/events/get_users.rb +0 -90
- data/lib/pubnub/events/manage_memberships.rb +0 -105
- data/lib/pubnub/events/update_user.rb +0 -86
- data/lib/pubnub/validators/create_space.rb +0 -44
- data/lib/pubnub/validators/create_user.rb +0 -44
- data/lib/pubnub/validators/delete_space.rb +0 -32
- data/lib/pubnub/validators/delete_user.rb +0 -32
- data/lib/pubnub/validators/get_members.rb +0 -32
- data/lib/pubnub/validators/get_space.rb +0 -32
- data/lib/pubnub/validators/get_space_memberships.rb +0 -32
- data/lib/pubnub/validators/get_spaces.rb +0 -16
- data/lib/pubnub/validators/get_user.rb +0 -32
- data/lib/pubnub/validators/get_users.rb +0 -16
- data/lib/pubnub/validators/manage_members.rb +0 -45
- data/lib/pubnub/validators/manage_memberships.rb +0 -45
- data/lib/pubnub/validators/push.rb +0 -43
- data/lib/pubnub/validators/update_space.rb +0 -45
- data/lib/pubnub/validators/update_user.rb +0 -45
- data/spec/examples/revoke_examples_spec.rb +0 -71950
- data/spec/examples/subscribe_examples_spec.rb +0 -45184
- data/spec/lib/events/space_spec.rb +0 -75
- data/spec/lib/events/user_spec.rb +0 -75
data/.travis.yml
CHANGED
@@ -17,18 +17,22 @@ stages:
|
|
17
17
|
jobs:
|
18
18
|
include:
|
19
19
|
- stage: "test"
|
20
|
-
name: 'Ruby 2.4.
|
21
|
-
rvm: '2.4.
|
20
|
+
name: 'Ruby 2.4.10'
|
21
|
+
rvm: '2.4.10'
|
22
22
|
script: bundle exec rspec
|
23
|
-
- name: 'Ruby 2.5.
|
24
|
-
rvm: '2.5.
|
23
|
+
- name: 'Ruby 2.5.8'
|
24
|
+
rvm: '2.5.8'
|
25
25
|
script: bundle exec rspec
|
26
|
-
- name: 'Ruby 2.6.
|
27
|
-
rvm: '2.6.
|
26
|
+
- name: 'Ruby 2.6.6'
|
27
|
+
rvm: '2.6.6'
|
28
|
+
script: bundle exec rspec
|
29
|
+
- name: 'Ruby 2.7.1'
|
30
|
+
rvm: '2.7.1'
|
28
31
|
script: bundle exec rspec
|
29
32
|
- name: 'Ruby JRuby'
|
30
33
|
rvm: 'jruby-head'
|
31
|
-
env: JRUBY_OPTS="--server -J-
|
34
|
+
env: JRUBY_TEST=true NO_COVERAGE=true JRUBY_OPTS="--server -J-Xms2048m -J-Xmx2048m -J-XX:-UseGCOverheadLimit -J-XX:+CMSClassUnloadingEnabled"
|
32
35
|
jdk: oraclejdk11
|
33
|
-
script:
|
34
|
-
|
36
|
+
script:
|
37
|
+
- jruby -S rspec ./spec/examples/
|
38
|
+
- jruby -S rspec ./spec/lib/
|
data/CHANGELOG.md
CHANGED
@@ -1,15 +1,38 @@
|
|
1
|
-
##### v4.
|
1
|
+
##### v4.5.0
|
2
2
|
|
3
|
-
-
|
4
|
-
- Fixed Message Counts channel timetokens by disabling alphabetic sorting of the channels list.
|
3
|
+
- Add support for APNS2 device/channel management.
|
5
4
|
|
6
|
-
##### v4.
|
5
|
+
##### v4.4.0
|
7
6
|
|
8
|
-
-
|
9
|
-
-
|
10
|
-
- Change paths for PAM endpoints from v1 to v2.
|
11
|
-
- Update PAM signature generator to correctly sort the query string parameters based on key instead of combined key and value.
|
7
|
+
- Add simplified Objects API support with UUID and Channel metadata / membership management.
|
8
|
+
- Add uuid and parameter to Grant API along with new Objects permissions: `get`, `update` and `join`.
|
12
9
|
|
10
|
+
##### v4.3.0
|
11
|
+
|
12
|
+
- Add `delete` permission for `channel` to Grant.
|
13
|
+
|
14
|
+
##### v4.2.7
|
15
|
+
|
16
|
+
- Don't suppress runtime errors.
|
17
|
+
|
18
|
+
##### v4.2.6
|
19
|
+
|
20
|
+
- History can now respond with message meta information.
|
21
|
+
- Added official support for Ruby 2.7.X
|
22
|
+
- History properly decrypts messages when using the "include_token" parameter.
|
23
|
+
|
24
|
+
##### v4.2.5
|
25
|
+
|
26
|
+
- Updated Subscribe endpoint tests to use an unsorted channels list.
|
27
|
+
- Fixed Message Counts channel timetokens by disabling alphabetic sorting of the channels list.
|
28
|
+
|
29
|
+
##### v4.2.4
|
30
|
+
|
31
|
+
- Update Grant, Revoke and Audit PAM tests to use v2 paths instead of v1.
|
32
|
+
- Replace event name with full endpoint path in PAM signatures, for compatibility with PAM v2 signatures. Addresses the following PRs from [@stefan-qsd](https://github.com/stefan-qsd): [#112](https://github.com/pubnub/ruby/pull/112).
|
33
|
+
- Change paths for PAM endpoints from v1 to v2.
|
34
|
+
- Update PAM signature generator to correctly sort the query string parameters based on key instead of combined key and value.
|
35
|
+
|
13
36
|
##### 4.2.3
|
14
37
|
* Resolved issue with subscribe loop where the connection was reinitiated after receiving a 4xx error code from the server
|
15
38
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pubnub (4.
|
4
|
+
pubnub (4.5.0)
|
5
|
+
addressable (>= 2.0.0)
|
5
6
|
concurrent-ruby (~> 1.1.5)
|
6
7
|
concurrent-ruby-edge (~> 0.5.0)
|
7
8
|
dry-validation (~> 1.0)
|
@@ -12,26 +13,27 @@ PATH
|
|
12
13
|
GEM
|
13
14
|
remote: https://rubygems.org/
|
14
15
|
specs:
|
15
|
-
addressable (2.
|
16
|
-
public_suffix (>= 2.0.2, <
|
17
|
-
ast (2.4.
|
16
|
+
addressable (2.7.0)
|
17
|
+
public_suffix (>= 2.0.2, < 5.0)
|
18
|
+
ast (2.4.1)
|
18
19
|
awesome_print (1.8.0)
|
19
20
|
binding_of_caller (0.8.0)
|
20
21
|
debug_inspector (>= 0.0.1)
|
21
|
-
codacy-coverage (2.1
|
22
|
+
codacy-coverage (2.2.1)
|
22
23
|
simplecov
|
23
|
-
coderay (1.1.
|
24
|
-
concurrent-ruby (1.1.
|
24
|
+
coderay (1.1.3)
|
25
|
+
concurrent-ruby (1.1.6)
|
25
26
|
concurrent-ruby-edge (0.5.0)
|
26
27
|
concurrent-ruby (~> 1.1.5)
|
27
28
|
crack (0.4.3)
|
28
29
|
safe_yaml (~> 1.0.0)
|
29
30
|
debug_inspector (0.0.3)
|
30
|
-
diff-lcs (1.
|
31
|
+
diff-lcs (1.4.4)
|
31
32
|
docile (1.3.2)
|
32
|
-
dry-configurable (0.
|
33
|
+
dry-configurable (0.11.6)
|
33
34
|
concurrent-ruby (~> 1.0)
|
34
35
|
dry-core (~> 0.4, >= 0.4.7)
|
36
|
+
dry-equalizer (~> 0.2)
|
35
37
|
dry-container (0.7.2)
|
36
38
|
concurrent-ruby (~> 1.0)
|
37
39
|
dry-configurable (~> 0.1, >= 0.1.3)
|
@@ -39,96 +41,99 @@ GEM
|
|
39
41
|
concurrent-ruby (~> 1.0)
|
40
42
|
dry-equalizer (0.3.0)
|
41
43
|
dry-inflector (0.2.0)
|
42
|
-
dry-initializer (3.0.
|
43
|
-
dry-logic (1.0.
|
44
|
+
dry-initializer (3.0.3)
|
45
|
+
dry-logic (1.0.6)
|
44
46
|
concurrent-ruby (~> 1.0)
|
45
47
|
dry-core (~> 0.2)
|
46
48
|
dry-equalizer (~> 0.2)
|
47
|
-
dry-schema (1.
|
49
|
+
dry-schema (1.5.2)
|
48
50
|
concurrent-ruby (~> 1.0)
|
49
51
|
dry-configurable (~> 0.8, >= 0.8.3)
|
50
52
|
dry-core (~> 0.4)
|
51
53
|
dry-equalizer (~> 0.2)
|
52
54
|
dry-initializer (~> 3.0)
|
53
55
|
dry-logic (~> 1.0)
|
54
|
-
dry-types (~> 1.
|
55
|
-
dry-types (1.
|
56
|
+
dry-types (~> 1.4)
|
57
|
+
dry-types (1.4.0)
|
56
58
|
concurrent-ruby (~> 1.0)
|
57
59
|
dry-container (~> 0.3)
|
58
60
|
dry-core (~> 0.4, >= 0.4.4)
|
59
|
-
dry-equalizer (~> 0.
|
61
|
+
dry-equalizer (~> 0.3)
|
60
62
|
dry-inflector (~> 0.1, >= 0.1.2)
|
61
63
|
dry-logic (~> 1.0, >= 1.0.2)
|
62
|
-
dry-validation (1.3
|
64
|
+
dry-validation (1.5.3)
|
63
65
|
concurrent-ruby (~> 1.0)
|
64
66
|
dry-container (~> 0.7, >= 0.7.1)
|
65
67
|
dry-core (~> 0.4)
|
66
68
|
dry-equalizer (~> 0.2)
|
67
69
|
dry-initializer (~> 3.0)
|
68
|
-
dry-schema (~> 1.
|
69
|
-
ffi (1.
|
70
|
-
hashdiff (1.0.
|
70
|
+
dry-schema (~> 1.5)
|
71
|
+
ffi (1.13.1-java)
|
72
|
+
hashdiff (1.0.1)
|
71
73
|
httpclient (2.8.3)
|
72
74
|
interception (0.5)
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
coderay (~> 1.1.0)
|
86
|
-
method_source (~> 0.9.0)
|
75
|
+
json (2.3.1)
|
76
|
+
json (2.3.1-java)
|
77
|
+
method_source (1.0.0)
|
78
|
+
parallel (1.19.2)
|
79
|
+
parser (2.7.1.4)
|
80
|
+
ast (~> 2.4.1)
|
81
|
+
pry (0.13.1)
|
82
|
+
coderay (~> 1.1)
|
83
|
+
method_source (~> 1.0)
|
84
|
+
pry (0.13.1-java)
|
85
|
+
coderay (~> 1.1)
|
86
|
+
method_source (~> 1.0)
|
87
87
|
spoon (~> 0.0)
|
88
|
-
pry-rescue (1.5.
|
88
|
+
pry-rescue (1.5.2)
|
89
89
|
interception (>= 0.5)
|
90
90
|
pry (>= 0.12.0)
|
91
|
-
pry-stack_explorer (0.4.
|
92
|
-
binding_of_caller (
|
93
|
-
pry (
|
94
|
-
public_suffix (
|
91
|
+
pry-stack_explorer (0.4.11)
|
92
|
+
binding_of_caller (~> 0.7)
|
93
|
+
pry (~> 0.13)
|
94
|
+
public_suffix (4.0.5)
|
95
95
|
rainbow (3.0.0)
|
96
|
+
regexp_parser (1.7.1)
|
97
|
+
rexml (3.2.4)
|
96
98
|
rr (1.2.1)
|
97
|
-
rspec (3.
|
98
|
-
rspec-core (~> 3.
|
99
|
-
rspec-expectations (~> 3.
|
100
|
-
rspec-mocks (~> 3.
|
101
|
-
rspec-core (3.
|
102
|
-
rspec-support (~> 3.
|
103
|
-
rspec-expectations (3.
|
99
|
+
rspec (3.9.0)
|
100
|
+
rspec-core (~> 3.9.0)
|
101
|
+
rspec-expectations (~> 3.9.0)
|
102
|
+
rspec-mocks (~> 3.9.0)
|
103
|
+
rspec-core (3.9.2)
|
104
|
+
rspec-support (~> 3.9.3)
|
105
|
+
rspec-expectations (3.9.2)
|
104
106
|
diff-lcs (>= 1.2.0, < 2.0)
|
105
|
-
rspec-support (~> 3.
|
106
|
-
rspec-mocks (3.
|
107
|
+
rspec-support (~> 3.9.0)
|
108
|
+
rspec-mocks (3.9.1)
|
107
109
|
diff-lcs (>= 1.2.0, < 2.0)
|
108
|
-
rspec-support (~> 3.
|
109
|
-
rspec-retry (0.6.
|
110
|
+
rspec-support (~> 3.9.0)
|
111
|
+
rspec-retry (0.6.2)
|
110
112
|
rspec-core (> 3.3)
|
111
|
-
rspec-support (3.
|
112
|
-
rubocop (0.
|
113
|
-
jaro_winkler (~> 1.5.1)
|
113
|
+
rspec-support (3.9.3)
|
114
|
+
rubocop (0.89.0)
|
114
115
|
parallel (~> 1.10)
|
115
|
-
parser (>= 2.
|
116
|
+
parser (>= 2.7.1.1)
|
116
117
|
rainbow (>= 2.2.2, < 4.0)
|
118
|
+
regexp_parser (>= 1.7)
|
119
|
+
rexml
|
120
|
+
rubocop-ast (>= 0.1.0, < 1.0)
|
117
121
|
ruby-progressbar (~> 1.7)
|
118
|
-
unicode-display_width (>= 1.4.0, <
|
122
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
123
|
+
rubocop-ast (0.3.0)
|
124
|
+
parser (>= 2.7.1.4)
|
119
125
|
ruby-progressbar (1.10.1)
|
120
126
|
safe_yaml (1.0.5)
|
121
|
-
simplecov (0.
|
127
|
+
simplecov (0.18.5)
|
122
128
|
docile (~> 1.1)
|
123
|
-
|
124
|
-
|
125
|
-
simplecov-html (0.10.2)
|
129
|
+
simplecov-html (~> 0.11)
|
130
|
+
simplecov-html (0.12.2)
|
126
131
|
spoon (0.0.6)
|
127
132
|
ffi
|
128
133
|
timers (4.3.0)
|
129
|
-
unicode-display_width (1.
|
130
|
-
vcr (
|
131
|
-
webmock (3.
|
134
|
+
unicode-display_width (1.7.0)
|
135
|
+
vcr (6.0.0)
|
136
|
+
webmock (3.8.3)
|
132
137
|
addressable (>= 2.3.6)
|
133
138
|
crack (>= 0.3.2)
|
134
139
|
hashdiff (>= 0.4.0, < 2.0.0)
|
@@ -136,11 +141,9 @@ GEM
|
|
136
141
|
PLATFORMS
|
137
142
|
java
|
138
143
|
ruby
|
139
|
-
x64-mingw32
|
140
144
|
|
141
145
|
DEPENDENCIES
|
142
146
|
awesome_print
|
143
|
-
bundler (~> 1.7)
|
144
147
|
codacy-coverage
|
145
148
|
pry
|
146
149
|
pry-rescue
|
@@ -155,4 +158,4 @@ DEPENDENCIES
|
|
155
158
|
webmock
|
156
159
|
|
157
160
|
BUNDLED WITH
|
158
|
-
2.
|
161
|
+
2.1.4
|
data/README.md
CHANGED
@@ -1,34 +1,73 @@
|
|
1
|
+
# PubNub Ruby SDK
|
2
|
+
|
1
3
|
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/b744287bb0324e2883f95525b12cf19f)](https://www.codacy.com/app/blazeroot/ruby?utm_source=github.com&utm_medium=referral&utm_content=pubnub/ruby&utm_campaign=badger)
|
2
4
|
[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/b744287bb0324e2883f95525b12cf19f)](https://www.codacy.com/app/blazeroot/ruby?utm_source=github.com&utm_medium=referral&utm_content=pubnub/ruby&utm_campaign=Badge_Coverage)
|
3
5
|
[![Build Status](https://travis-ci.org/pubnub/ruby.svg?branch=master)](https://travis-ci.org/pubnub/ruby)
|
4
6
|
|
5
|
-
|
7
|
+
This is the official PubNub Ruby SDK repository.
|
8
|
+
|
9
|
+
PubNub takes care of the infrastructure and APIs needed for the realtime communication layer of your application. Work on your app's logic and let PubNub handle sending and receiving data across the world in less than 100ms.
|
10
|
+
|
11
|
+
## Get keys
|
12
|
+
|
13
|
+
You will need the publish and subscribe keys to authenticate your app. Get your keys from the [Admin Portal](https://dashboard.pubnub.com/).
|
14
|
+
|
15
|
+
## Configure PubNub
|
16
|
+
|
17
|
+
1. Integrate PubNub into your project using RubyGems:
|
18
|
+
|
19
|
+
```bash
|
20
|
+
gem install pubnub
|
21
|
+
```
|
6
22
|
|
7
|
-
|
8
|
-
Available at https://www.pubnub.com/docs/ruby/pubnub-ruby-sdk-v4 **v4.x**
|
23
|
+
1. Create a new `App.rb` file and add the following code.
|
9
24
|
|
10
|
-
|
25
|
+
```ruby
|
26
|
+
require 'pubnub'
|
11
27
|
|
12
|
-
|
13
|
-
|
28
|
+
pubnub = Pubnub.new(
|
29
|
+
subscribe_key: :mySubscribeKey,
|
30
|
+
publish_key: :myPublishKey,
|
31
|
+
uuid: :myUniqueUUID
|
32
|
+
)
|
33
|
+
```
|
14
34
|
|
15
|
-
|
35
|
+
This is the minimum configuration you need to send and receive messages with PubNub.
|
16
36
|
|
37
|
+
## Add event listeners
|
17
38
|
|
18
|
-
|
39
|
+
```ruby
|
40
|
+
callback = Pubnub::SubscribeCallback.new(
|
41
|
+
message: ->(envelope) {
|
42
|
+
puts "MESSAGE: # {puts envelope.result[:data][:message]['msg']}"
|
43
|
+
},
|
44
|
+
presence: ->(envelope) {
|
45
|
+
puts "PRESENCE: #{envelope.result[:data]}"
|
46
|
+
}
|
47
|
+
)
|
48
|
+
pubnub.add_listener(callback: callback)
|
49
|
+
```
|
19
50
|
|
20
|
-
|
51
|
+
## Publish and subscribe
|
21
52
|
|
22
|
-
|
23
|
-
|
53
|
+
```ruby
|
54
|
+
pubnub.subscribe(
|
55
|
+
channels: ['my_channel'],
|
56
|
+
with_presence: true
|
57
|
+
)
|
24
58
|
|
25
|
-
|
59
|
+
pubnub.publish(
|
60
|
+
channel: 'my_channel',
|
61
|
+
message: { text: 'Hello world' }
|
62
|
+
) do |envelope|
|
63
|
+
puts envelope.status
|
64
|
+
end
|
65
|
+
```
|
26
66
|
|
27
|
-
|
67
|
+
## Documentation
|
28
68
|
|
29
|
-
|
69
|
+
[API reference for Ruby](https://www.pubnub.com/docs/ruby/pubnub-ruby-sdk)
|
30
70
|
|
31
|
-
|
32
|
-
PubNub 3.7.3 is NOT compatible with earlier than 3.4 versions of Pubnub Ruby Client.
|
71
|
+
## Support
|
33
72
|
|
34
|
-
|
73
|
+
If you **need help** or have a **general question**, contact <support@pubnub.com>.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.
|
1
|
+
4.5.0
|
@@ -0,0 +1,45 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://ps.pndsn.com/v1/push/sub-key/sub-a-mock-key/devices/815ee724ccb0a6a84dc303be8ccbaa00d1c84dde6bcae6721b08f92100951113?add=demo1,demo2&auth=ruby-test-auth-client-one&pnsdk=PubNub-Ruby/4.4.0&type=apns&uuid=ruby-test-uuid-client-one
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- HTTPClient/1.0 (2.8.3, ruby 2.6.6 (2020-03-31))
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
Date:
|
15
|
+
- Tue, 17 Nov 2020 14:50:57 GMT
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Tue, 17 Nov 2020 14:50:57 GMT
|
23
|
+
Content-Type:
|
24
|
+
- text/javascript; charset="UTF-8"
|
25
|
+
Content-Length:
|
26
|
+
- '24'
|
27
|
+
Connection:
|
28
|
+
- keep-alive
|
29
|
+
Cache-Control:
|
30
|
+
- no-cache
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- "*"
|
33
|
+
Access-Control-Allow-Methods:
|
34
|
+
- GET, POST, DELETE, OPTIONS
|
35
|
+
Accept-Ranges:
|
36
|
+
- bytes
|
37
|
+
Age:
|
38
|
+
- '0'
|
39
|
+
Server:
|
40
|
+
- Pubnub
|
41
|
+
body:
|
42
|
+
encoding: UTF-8
|
43
|
+
string: '[1, "Modified Channels"]'
|
44
|
+
recorded_at: Tue, 17 Nov 2020 17:46:16 GMT
|
45
|
+
recorded_with: VCR 6.0.0
|
@@ -0,0 +1,45 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://ps.pndsn.com/v2/push/sub-key/sub-a-mock-key/devices-apns2/815ee724ccb0a6a84dc303be8ccbaa00d1c84dde6bcae6721b08f92100951113?add=demo1,demo2&auth=ruby-test-auth-client-one&environment=development&pnsdk=PubNub-Ruby/4.4.0&topic=ruby_test&uuid=ruby-test-uuid-client-one
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- HTTPClient/1.0 (2.8.3, ruby 2.6.6 (2020-03-31))
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
Date:
|
15
|
+
- Tue, 17 Nov 2020 19:01:25 GMT
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Tue, 17 Nov 2020 19:01:25 GMT
|
23
|
+
Content-Type:
|
24
|
+
- text/javascript; charset="UTF-8"
|
25
|
+
Content-Length:
|
26
|
+
- '24'
|
27
|
+
Connection:
|
28
|
+
- keep-alive
|
29
|
+
Cache-Control:
|
30
|
+
- no-cache
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- "*"
|
33
|
+
Access-Control-Allow-Methods:
|
34
|
+
- GET, POST, DELETE, OPTIONS
|
35
|
+
Accept-Ranges:
|
36
|
+
- bytes
|
37
|
+
Age:
|
38
|
+
- '0'
|
39
|
+
Server:
|
40
|
+
- Pubnub
|
41
|
+
body:
|
42
|
+
encoding: UTF-8
|
43
|
+
string: '[1, "Modified Channels"]'
|
44
|
+
recorded_at: Tue, 17 Nov 2020 19:01:25 GMT
|
45
|
+
recorded_with: VCR 6.0.0
|