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.

Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -0
  3. data/.pubnub.yml +168 -117
  4. data/.travis.yml +13 -9
  5. data/CHANGELOG.md +31 -8
  6. data/Gemfile.lock +67 -64
  7. data/README.md +56 -17
  8. data/VERSION +1 -1
  9. data/fixtures/vcr_cassettes/examples/add_channels_to_push/001.yml +45 -0
  10. data/fixtures/vcr_cassettes/examples/add_channels_to_push/002.yml +45 -0
  11. data/fixtures/vcr_cassettes/examples/add_channels_to_push/003.yml +45 -0
  12. data/fixtures/vcr_cassettes/examples/add_channels_to_push/004.yml +45 -0
  13. data/fixtures/vcr_cassettes/examples/grant/1913.yml +1 -1
  14. data/fixtures/vcr_cassettes/examples/grant/1944.yml +8 -9
  15. data/fixtures/vcr_cassettes/examples/grant/1945.yml +359 -9
  16. data/fixtures/vcr_cassettes/examples/grant/1946.yml +8 -9
  17. data/fixtures/vcr_cassettes/examples/grant/1947.yml +8 -9
  18. data/fixtures/vcr_cassettes/examples/grant/1948.yml +8 -9
  19. data/fixtures/vcr_cassettes/examples/history/100.yml +46 -0
  20. data/fixtures/vcr_cassettes/examples/history/include_meta__encrypted.yml +46 -0
  21. data/fixtures/vcr_cassettes/examples/history/include_token__encrypted.yml +45 -0
  22. data/fixtures/vcr_cassettes/examples/history/no_includes__encrypted.yml +45 -0
  23. data/fixtures/vcr_cassettes/examples/list_push_provisions/001.yml +46 -0
  24. data/fixtures/vcr_cassettes/examples/list_push_provisions/002.yml +45 -0
  25. data/fixtures/vcr_cassettes/examples/list_push_provisions/003.yml +45 -0
  26. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/001.yml +45 -0
  27. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/002.yml +45 -0
  28. data/fixtures/vcr_cassettes/examples/remove_channels_from_push/003.yml +45 -0
  29. data/fixtures/vcr_cassettes/examples/remove_device_from_push/001.yml +45 -0
  30. data/fixtures/vcr_cassettes/examples/remove_device_from_push/002.yml +45 -0
  31. data/fixtures/vcr_cassettes/examples/remove_device_from_push/003.yml +45 -0
  32. data/fixtures/vcr_cassettes/lib/events/get_all_channels_metadata.yml +39 -0
  33. data/fixtures/vcr_cassettes/lib/events/get_all_uuid_metadata.yml +76 -0
  34. data/fixtures/vcr_cassettes/lib/events/get_channel_members.yml +37 -0
  35. data/fixtures/vcr_cassettes/lib/events/get_channel_metadata.yml +37 -0
  36. data/fixtures/vcr_cassettes/lib/events/get_memberships1.yml +37 -0
  37. data/fixtures/vcr_cassettes/lib/events/get_memberships2.yml +37 -0
  38. data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata1.yml +76 -0
  39. data/fixtures/vcr_cassettes/lib/events/get_uuid_metadata2.yml +76 -0
  40. data/fixtures/vcr_cassettes/lib/events/grant-error.yml +2 -2
  41. data/fixtures/vcr_cassettes/lib/events/grant.yml +10 -11
  42. data/fixtures/vcr_cassettes/lib/events/remove_channel_members.yml +78 -0
  43. data/fixtures/vcr_cassettes/lib/events/{delete_space.yml → remove_channel_metadata.yml} +5 -6
  44. data/fixtures/vcr_cassettes/lib/events/{manage_memberships_remove.yml → remove_memberships1.yml} +8 -9
  45. data/fixtures/vcr_cassettes/lib/events/{manage_members_add.yml → remove_memberships2.yml} +8 -9
  46. data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata1.yml +76 -0
  47. data/fixtures/vcr_cassettes/lib/events/remove_uuid_metadata2.yml +76 -0
  48. data/fixtures/vcr_cassettes/lib/events/set_channel_members.yml +39 -0
  49. data/fixtures/vcr_cassettes/lib/events/set_channel_metadata.yml +39 -0
  50. data/fixtures/vcr_cassettes/lib/events/{manage_memberships_add.yml → set_memberships1.yml} +8 -9
  51. data/fixtures/vcr_cassettes/lib/events/set_memberships2.yml +39 -0
  52. data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata1.yml +78 -0
  53. data/fixtures/vcr_cassettes/lib/events/set_uuid_metadata2.yml +78 -0
  54. data/fixtures/vcr_cassettes/lib/events/{subscribe-space-delete-async.yml → subscribe-channel-metadata-remove-sync.yml} +12 -14
  55. data/fixtures/vcr_cassettes/lib/events/subscribe-channel-metadata-set-async.yml +75 -0
  56. data/fixtures/vcr_cassettes/lib/events/{subscribe-member-remove-async.yml → subscribe-member-remove-sync.yml} +12 -14
  57. data/fixtures/vcr_cassettes/lib/events/subscribe-member-set-async.yml +75 -0
  58. data/fixtures/vcr_cassettes/lib/events/subscribe-membership-remove-async.yml +12 -14
  59. data/fixtures/vcr_cassettes/lib/events/{subscribe-user-update-async.yml → subscribe-membership-set-async.yml} +12 -14
  60. data/fixtures/vcr_cassettes/lib/events/{subscribe-user-delete-async.yml → subscribe-uuid-metadata-remove-sync.yml} +12 -14
  61. data/fixtures/vcr_cassettes/lib/events/subscribe-uuid-metadata-set-async.yml +75 -0
  62. data/lib/pubnub/client.rb +18 -15
  63. data/lib/pubnub/client/events.rb +4 -2
  64. data/lib/pubnub/client/paged_history.rb +1 -1
  65. data/lib/pubnub/constants.rb +19 -18
  66. data/lib/pubnub/event.rb +32 -16
  67. data/lib/pubnub/event/formatter.rb +4 -0
  68. data/lib/pubnub/event/signature.rb +22 -7
  69. data/lib/pubnub/events/add_channels_to_push.rb +29 -13
  70. data/lib/pubnub/events/get_all_channels_metadata.rb +104 -0
  71. data/lib/pubnub/events/get_all_uuid_metadata.rb +104 -0
  72. data/lib/pubnub/events/get_channel_members.rb +120 -0
  73. data/lib/pubnub/events/{update_space.rb → get_channel_metadata.rb} +27 -27
  74. data/lib/pubnub/events/get_memberships.rb +120 -0
  75. data/lib/pubnub/events/{create_space.rb → get_uuid_metadata.rb} +27 -25
  76. data/lib/pubnub/events/grant.rb +10 -1
  77. data/lib/pubnub/events/history.rb +17 -2
  78. data/lib/pubnub/events/list_push_provisions.rb +29 -12
  79. data/lib/pubnub/events/remove_channel_members.rb +137 -0
  80. data/lib/pubnub/events/{delete_space.rb → remove_channel_metadata.rb} +12 -12
  81. data/lib/pubnub/events/remove_channels_from_push.rb +29 -13
  82. data/lib/pubnub/events/remove_device_from_push.rb +30 -14
  83. data/lib/pubnub/events/remove_memberships.rb +137 -0
  84. data/lib/pubnub/events/{delete_user.rb → remove_uuid_metadata.rb} +12 -12
  85. data/lib/pubnub/events/set_channel_members.rb +140 -0
  86. data/lib/pubnub/events/{manage_members.rb → set_channel_metadata.rb} +32 -38
  87. data/lib/pubnub/events/set_memberships.rb +140 -0
  88. data/lib/pubnub/events/{create_user.rb → set_uuid_metadata.rb} +33 -17
  89. data/lib/pubnub/formatter.rb +30 -3
  90. data/lib/pubnub/pam.rb +2 -11
  91. data/lib/pubnub/subscribe_callback.rb +1 -3
  92. data/lib/pubnub/subscribe_event/formatter.rb +26 -17
  93. data/lib/pubnub/subscriber.rb +5 -6
  94. data/lib/pubnub/validators/add_channels_to_push.rb +52 -0
  95. data/lib/pubnub/validators/get_all_channels_metadata.rb +29 -0
  96. data/lib/pubnub/validators/get_all_uuid_metadata.rb +29 -0
  97. data/lib/pubnub/validators/get_channel_members.rb +39 -0
  98. data/lib/pubnub/validators/get_channel_metadata.rb +39 -0
  99. data/lib/pubnub/validators/get_memberships.rb +39 -0
  100. data/lib/pubnub/validators/get_uuid_metadata.rb +39 -0
  101. data/lib/pubnub/validators/grant.rb +37 -2
  102. data/lib/pubnub/validators/list_push_provisions.rb +43 -0
  103. data/lib/pubnub/validators/remove_channel_members.rb +52 -0
  104. data/lib/pubnub/validators/remove_channel_metadata.rb +39 -0
  105. data/lib/pubnub/validators/remove_channels_from_push.rb +52 -0
  106. data/lib/pubnub/validators/remove_device_from_push.rb +43 -0
  107. data/lib/pubnub/validators/remove_memberships.rb +52 -0
  108. data/lib/pubnub/validators/remove_uuid_metadata.rb +39 -0
  109. data/lib/pubnub/validators/set_channel_members.rb +78 -0
  110. data/lib/pubnub/validators/set_channel_metadata.rb +62 -0
  111. data/lib/pubnub/validators/set_memberships.rb +78 -0
  112. data/lib/pubnub/validators/set_uuid_metadata.rb +62 -0
  113. data/lib/pubnub/version.rb +1 -1
  114. data/pubnub.gemspec +1 -1
  115. data/spec/examples/add_channels_to_push_spec.rb +178 -0
  116. data/spec/examples/{grant_examples_spec.rb → grant_examples_1_spec.rb} +0 -8973
  117. data/spec/examples/grant_examples_2_spec.rb +9107 -0
  118. data/spec/examples/history_examples_spec.rb +85 -0
  119. data/spec/examples/list_push_provisions_spec.rb +164 -0
  120. data/spec/examples/presence_examples_spec.rb +222 -186
  121. data/spec/examples/remove_channels_from_push_spec.rb +164 -0
  122. data/spec/examples/remove_device_from_push_spec.rb +164 -0
  123. data/spec/examples/revoke_examples_1_spec.rb +27013 -0
  124. data/spec/examples/revoke_examples_2_spec.rb +27012 -0
  125. data/spec/examples/revoke_examples_3_spec.rb +17967 -0
  126. data/spec/examples/status_request_message_count_exceeded_spec.rb +4 -1
  127. data/spec/examples/subscribe_examples_1_spec.rb +26972 -0
  128. data/spec/examples/subscribe_examples_2_spec.rb +19575 -0
  129. data/spec/lib/connection_callback_spec.rb +4 -3
  130. data/spec/lib/event/formatter_spec.rb +22 -0
  131. data/spec/lib/events/channel_metadata_spec.rb +58 -0
  132. data/spec/lib/events/grant_spec.rb +3 -2
  133. data/spec/lib/events/membership_spec.rb +51 -21
  134. data/spec/lib/events/presence_delta_spec.rb +9 -6
  135. data/spec/lib/events/presence_spec.rb +13 -7
  136. data/spec/lib/events/subscribe_spec.rb +102 -65
  137. data/spec/lib/events/uuid_metadata_spec.rb +86 -0
  138. data/spec/lib/subscribe_event/formatter_spec.rb +22 -0
  139. data/spec/lib/super_admin_spec.rb +8 -4
  140. data/spec/spec_helper.rb +24 -8
  141. metadata +124 -79
  142. data/fixtures/vcr_cassettes/lib/events/create_space.yml +0 -40
  143. data/fixtures/vcr_cassettes/lib/events/create_user.yml +0 -40
  144. data/fixtures/vcr_cassettes/lib/events/delete_user.yml +0 -38
  145. data/fixtures/vcr_cassettes/lib/events/get_members.yml +0 -38
  146. data/fixtures/vcr_cassettes/lib/events/get_space.yml +0 -38
  147. data/fixtures/vcr_cassettes/lib/events/get_space_memberships.yml +0 -38
  148. data/fixtures/vcr_cassettes/lib/events/get_spaces.yml +0 -40
  149. data/fixtures/vcr_cassettes/lib/events/get_user.yml +0 -38
  150. data/fixtures/vcr_cassettes/lib/events/get_users.yml +0 -40
  151. data/fixtures/vcr_cassettes/lib/events/manage_members_remove.yml +0 -83
  152. data/fixtures/vcr_cassettes/lib/events/subscribe-member-add-async.yml +0 -77
  153. data/fixtures/vcr_cassettes/lib/events/subscribe-membership-add-async.yml +0 -77
  154. data/fixtures/vcr_cassettes/lib/events/subscribe-space-update-async.yml +0 -77
  155. data/fixtures/vcr_cassettes/lib/events/update_space.yml +0 -40
  156. data/fixtures/vcr_cassettes/lib/events/update_user.yml +0 -40
  157. data/lib/pubnub/events/get_members.rb +0 -93
  158. data/lib/pubnub/events/get_space.rb +0 -74
  159. data/lib/pubnub/events/get_space_memberships.rb +0 -93
  160. data/lib/pubnub/events/get_spaces.rb +0 -90
  161. data/lib/pubnub/events/get_user.rb +0 -74
  162. data/lib/pubnub/events/get_users.rb +0 -90
  163. data/lib/pubnub/events/manage_memberships.rb +0 -105
  164. data/lib/pubnub/events/update_user.rb +0 -86
  165. data/lib/pubnub/validators/create_space.rb +0 -44
  166. data/lib/pubnub/validators/create_user.rb +0 -44
  167. data/lib/pubnub/validators/delete_space.rb +0 -32
  168. data/lib/pubnub/validators/delete_user.rb +0 -32
  169. data/lib/pubnub/validators/get_members.rb +0 -32
  170. data/lib/pubnub/validators/get_space.rb +0 -32
  171. data/lib/pubnub/validators/get_space_memberships.rb +0 -32
  172. data/lib/pubnub/validators/get_spaces.rb +0 -16
  173. data/lib/pubnub/validators/get_user.rb +0 -32
  174. data/lib/pubnub/validators/get_users.rb +0 -16
  175. data/lib/pubnub/validators/manage_members.rb +0 -45
  176. data/lib/pubnub/validators/manage_memberships.rb +0 -45
  177. data/lib/pubnub/validators/push.rb +0 -43
  178. data/lib/pubnub/validators/update_space.rb +0 -45
  179. data/lib/pubnub/validators/update_user.rb +0 -45
  180. data/spec/examples/revoke_examples_spec.rb +0 -71950
  181. data/spec/examples/subscribe_examples_spec.rb +0 -45184
  182. data/spec/lib/events/space_spec.rb +0 -75
  183. data/spec/lib/events/user_spec.rb +0 -75
@@ -17,18 +17,22 @@ stages:
17
17
  jobs:
18
18
  include:
19
19
  - stage: "test"
20
- name: 'Ruby 2.4.4'
21
- rvm: '2.4.4'
20
+ name: 'Ruby 2.4.10'
21
+ rvm: '2.4.10'
22
22
  script: bundle exec rspec
23
- - name: 'Ruby 2.5.1'
24
- rvm: '2.5.1'
23
+ - name: 'Ruby 2.5.8'
24
+ rvm: '2.5.8'
25
25
  script: bundle exec rspec
26
- - name: 'Ruby 2.6.3'
27
- rvm: '2.6.3'
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-Xms1500m -J-Xmx1500m -J-XX:+UseConcMarkSweepGC -J-XX:-UseGCOverheadLimit -J-XX:+CMSClassUnloadingEnabled"
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: bundle exec rspec
34
-
36
+ script:
37
+ - jruby -S rspec ./spec/examples/
38
+ - jruby -S rspec ./spec/lib/
@@ -1,15 +1,38 @@
1
- ##### v4.2.5
1
+ ##### v4.5.0
2
2
 
3
- - Updated Subscribe endpoint tests to use an unsorted channels list.
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.2.4
5
+ ##### v4.4.0
7
6
 
8
- - Update Grant, Revoke and Audit PAM tests to use v2 paths instead of v1.
9
- - 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).
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
 
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pubnub (4.2.5)
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.6.0)
16
- public_suffix (>= 2.0.2, < 4.0)
17
- ast (2.4.0)
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.0)
22
+ codacy-coverage (2.2.1)
22
23
  simplecov
23
- coderay (1.1.2)
24
- concurrent-ruby (1.1.5)
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.3)
31
+ diff-lcs (1.4.4)
31
32
  docile (1.3.2)
32
- dry-configurable (0.9.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.2)
43
- dry-logic (1.0.5)
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.4.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.2)
55
- dry-types (1.2.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.2, >= 0.2.2)
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.1)
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.0, >= 1.3.1)
69
- ffi (1.11.1-java)
70
- hashdiff (1.0.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
- jaro_winkler (1.5.3)
74
- jaro_winkler (1.5.3-java)
75
- json (2.2.0)
76
- json (2.2.0-java)
77
- method_source (0.9.2)
78
- parallel (1.17.0)
79
- parser (2.6.3.0)
80
- ast (~> 2.4.0)
81
- pry (0.12.2)
82
- coderay (~> 1.1.0)
83
- method_source (~> 0.9.0)
84
- pry (0.12.2-java)
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.0)
88
+ pry-rescue (1.5.2)
89
89
  interception (>= 0.5)
90
90
  pry (>= 0.12.0)
91
- pry-stack_explorer (0.4.9.3)
92
- binding_of_caller (>= 0.7)
93
- pry (>= 0.9.11)
94
- public_suffix (3.1.1)
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.8.0)
98
- rspec-core (~> 3.8.0)
99
- rspec-expectations (~> 3.8.0)
100
- rspec-mocks (~> 3.8.0)
101
- rspec-core (3.8.2)
102
- rspec-support (~> 3.8.0)
103
- rspec-expectations (3.8.4)
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.8.0)
106
- rspec-mocks (3.8.1)
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.8.0)
109
- rspec-retry (0.6.1)
110
+ rspec-support (~> 3.9.0)
111
+ rspec-retry (0.6.2)
110
112
  rspec-core (> 3.3)
111
- rspec-support (3.8.2)
112
- rubocop (0.73.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.6)
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, < 1.7)
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.17.0)
127
+ simplecov (0.18.5)
122
128
  docile (~> 1.1)
123
- json (>= 1.8, < 3)
124
- simplecov-html (~> 0.10.0)
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.6.0)
130
- vcr (5.0.0)
131
- webmock (3.6.0)
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.0.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
- # Please direct all Support Questions and Concerns to Support@PubNub.com
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
- # Complete Documentation
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
- ## PubNub Gem version 4.2.5
25
+ ```ruby
26
+ require 'pubnub'
11
27
 
12
- ##### YOU MUST HAVE A PUBNUB ACCOUNT TO USE THE API.
13
- ##### http://www.pubnub.com/account
28
+ pubnub = Pubnub.new(
29
+ subscribe_key: :mySubscribeKey,
30
+ publish_key: :myPublishKey,
31
+ uuid: :myUniqueUUID
32
+ )
33
+ ```
14
34
 
15
- www.pubnub.com - PubNub Real-time Push Service in the Cloud.
35
+ This is the minimum configuration you need to send and receive messages with PubNub.
16
36
 
37
+ ## Add event listeners
17
38
 
18
- The PubNub Network is a blazingly fast Global Messaging Service for building real-time web and mobile apps. Thousands of apps and developers rely on PubNub for delivering human-perceptive real-time experiences that scale to millions of users worldwide. PubNub delivers the infrastructure needed to build amazing Mobile, MMO games, social apps, business collaborative solutions, and more.
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
- ### Upgrading from PubNub 3.6.x / 3.7.x
51
+ ## Publish and subscribe
21
52
 
22
- Main change is that we're no longer using EventMachine. Right now Celluloid is used. Public API remain unchanged.
23
- If you encounter any issues while upgrading from EventMachine version, please contact us at support@pubnub.com you can also find eventmachine version in "eventmachine" branch of this repo.
53
+ ```ruby
54
+ pubnub.subscribe(
55
+ channels: ['my_channel'],
56
+ with_presence: true
57
+ )
24
58
 
25
- ### Upgrading from PubNub 3.5.x
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
- We've made the response format compatible across all operations. This may break existing parsing of where_now, leave, state, and PAM responses. So if you are monitoring these operation responses, please be sure to modify your code accordingly.
67
+ ## Documentation
28
68
 
29
- Examples of affected operations can be found [here](3.5_to_3.6_upgrade_notes.md).
69
+ [API reference for Ruby](https://www.pubnub.com/docs/ruby/pubnub-ruby-sdk)
30
70
 
31
- ### Upgrading from PubNub 3.3.x and Earlier
32
- PubNub 3.7.3 is NOT compatible with earlier than 3.4 versions of Pubnub Ruby Client.
71
+ ## Support
33
72
 
34
- # Please direct all Support Questions and Concerns to Support@PubNub.com
73
+ If you **need help** or have a **general question**, contact <support@pubnub.com>.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.2.5
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