actioncable 5.2.7.1 → 6.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -47
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +3 -546
  5. data/app/assets/javascripts/action_cable.js +574 -0
  6. data/lib/action_cable/channel/base.rb +10 -4
  7. data/lib/action_cable/channel/broadcasting.rb +18 -8
  8. data/lib/action_cable/channel/naming.rb +1 -1
  9. data/lib/action_cable/channel/streams.rb +30 -4
  10. data/lib/action_cable/channel/test_case.rb +310 -0
  11. data/lib/action_cable/channel.rb +1 -0
  12. data/lib/action_cable/connection/authorization.rb +1 -1
  13. data/lib/action_cable/connection/base.rb +13 -7
  14. data/lib/action_cable/connection/message_buffer.rb +1 -4
  15. data/lib/action_cable/connection/stream.rb +4 -2
  16. data/lib/action_cable/connection/subscriptions.rb +2 -5
  17. data/lib/action_cable/connection/test_case.rb +234 -0
  18. data/lib/action_cable/connection/web_socket.rb +1 -3
  19. data/lib/action_cable/connection.rb +1 -0
  20. data/lib/action_cable/engine.rb +1 -1
  21. data/lib/action_cable/gem_version.rb +4 -4
  22. data/lib/action_cable/helpers/action_cable_helper.rb +3 -3
  23. data/lib/action_cable/remote_connections.rb +1 -1
  24. data/lib/action_cable/server/base.rb +9 -4
  25. data/lib/action_cable/server/broadcasting.rb +1 -1
  26. data/lib/action_cable/server/worker.rb +6 -8
  27. data/lib/action_cable/server.rb +0 -1
  28. data/lib/action_cable/subscription_adapter/base.rb +4 -0
  29. data/lib/action_cable/subscription_adapter/postgresql.rb +28 -9
  30. data/lib/action_cable/subscription_adapter/redis.rb +4 -2
  31. data/lib/action_cable/subscription_adapter/test.rb +40 -0
  32. data/lib/action_cable/subscription_adapter.rb +1 -0
  33. data/lib/action_cable/test_case.rb +11 -0
  34. data/lib/action_cable/test_helper.rb +133 -0
  35. data/lib/action_cable.rb +15 -7
  36. data/lib/rails/generators/channel/USAGE +5 -6
  37. data/lib/rails/generators/channel/channel_generator.rb +6 -3
  38. data/lib/rails/generators/channel/templates/{assets → javascript}/channel.js.tt +6 -4
  39. data/lib/rails/generators/channel/templates/javascript/consumer.js.tt +6 -0
  40. data/lib/rails/generators/channel/templates/javascript/index.js.tt +5 -0
  41. data/lib/rails/generators/test_unit/channel_generator.rb +20 -0
  42. data/lib/rails/generators/test_unit/templates/channel_test.rb.tt +8 -0
  43. metadata +41 -16
  44. data/lib/assets/compiled/action_cable.js +0 -601
  45. data/lib/rails/generators/channel/templates/assets/cable.js.tt +0 -13
  46. data/lib/rails/generators/channel/templates/assets/channel.coffee.tt +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae09dfe2c594b47a07e3e0bac7829e849cf3bea6365be43c2c54db50134471d6
4
- data.tar.gz: cc6d4b4fea3f042649847079475b257fcafda6942a3ca56b265b1a04e97fdad9
3
+ metadata.gz: f05b8e42e5c0e16cd0ad063f88977f57aea0db19c1b218eeb9ae7a692dd0ca90
4
+ data.tar.gz: e08f6031d387fe50556814c79f5b3192ad7f399bd628184f938e02cd03a92039
5
5
  SHA512:
6
- metadata.gz: f732e46186947fcc837af1a345ec83848d3d24681030c3708e10a6f4d1fb7c0084d3556794fe189d4e597465fb8544415ddeeae824a68af538184097f931400c
7
- data.tar.gz: e899cbdfa0be0c5589dd08e27453ef50c3470ad8ab49302d00c215c8e737bcdda20f6baab6524194e2f30b498e8fc32e1ffe8b8f6c1c342d03e59392ffabecdb
6
+ metadata.gz: 18e6ae12a5c20473486763269dc7289f49a27bf1d6b4dfbb5cfabd1eb45dc72a2774cf8b46e028868c119668544778b4a339f3d4ac236ff73836fa6bfe22bb1d
7
+ data.tar.gz: a7f6e6ef179b3b375dc37c4a4c13c552281d5364acab5585705072f9b3a22de5aff9ee32d3f0a2c1fe5258b5f1d03b0cef808c096139656f358d629ae7284677
data/CHANGELOG.md CHANGED
@@ -1,124 +1,130 @@
1
- ## Rails 5.2.7.1 (April 26, 2022) ##
1
+ ## Rails 6.1.5 (March 09, 2022) ##
2
2
 
3
- * No changes.
4
-
5
-
6
- ## Rails 5.2.7 (March 10, 2022) ##
3
+ * The Action Cable client now ensures successful channel subscriptions:
7
4
 
8
- * No changes.
5
+ * The client maintains a set of pending subscriptions until either
6
+ the server confirms the subscription or the channel is torn down.
7
+ * Rectifies the race condition where an unsubscribe is rapidly followed
8
+ by a subscribe (on the same channel identifier) and the requests are
9
+ handled out of order by the ActionCable server, thereby ignoring the
10
+ subscribe command.
9
11
 
12
+ *Daniel Spinosa*
10
13
 
11
- ## Rails 5.2.6.3 (March 08, 2022) ##
14
+ * Truncate broadcast logging messages.
12
15
 
13
- * No changes.
16
+ *J Smith*
14
17
 
15
18
 
16
- ## Rails 5.2.6.2 (February 11, 2022) ##
19
+ ## Rails 6.1.4.7 (March 08, 2022) ##
17
20
 
18
21
  * No changes.
19
22
 
20
23
 
21
- ## Rails 5.2.6.1 (February 11, 2022) ##
24
+ ## Rails 6.1.4.6 (February 11, 2022) ##
22
25
 
23
26
  * No changes.
24
27
 
25
28
 
26
- ## Rails 5.2.6 (May 05, 2021) ##
29
+ ## Rails 6.1.4.5 (February 11, 2022) ##
27
30
 
28
31
  * No changes.
29
32
 
30
33
 
31
- ## Rails 5.2.5 (March 26, 2021) ##
34
+ ## Rails 6.1.4.4 (December 15, 2021) ##
32
35
 
33
36
  * No changes.
34
37
 
35
38
 
36
- ## Rails 5.2.4.6 (May 05, 2021) ##
39
+ ## Rails 6.1.4.3 (December 14, 2021) ##
37
40
 
38
41
  * No changes.
39
42
 
40
43
 
41
- ## Rails 5.2.4.5 (February 10, 2021) ##
44
+ ## Rails 6.1.4.2 (December 14, 2021) ##
42
45
 
43
46
  * No changes.
44
47
 
45
48
 
46
- ## Rails 5.2.4.4 (September 09, 2020) ##
49
+ ## Rails 6.1.4.1 (August 19, 2021) ##
47
50
 
48
51
  * No changes.
49
52
 
50
53
 
51
- ## Rails 5.2.4.3 (May 18, 2020) ##
54
+ ## Rails 6.1.4 (June 24, 2021) ##
52
55
 
53
- * No changes.
56
+ * Fix `ArgumentError` with ruby 3.0 on `RemoteConnection#disconnect`.
54
57
 
58
+ *Vladislav*
55
59
 
56
- ## Rails 5.2.4.2 (March 19, 2020) ##
57
60
 
58
- * No changes.
59
-
60
-
61
- ## Rails 5.2.4.1 (December 18, 2019) ##
61
+ ## Rails 6.1.3.2 (May 05, 2021) ##
62
62
 
63
63
  * No changes.
64
64
 
65
65
 
66
- ## Rails 5.2.4 (November 27, 2019) ##
66
+ ## Rails 6.1.3.1 (March 26, 2021) ##
67
67
 
68
68
  * No changes.
69
69
 
70
70
 
71
- ## Rails 5.2.3 (March 27, 2019) ##
71
+ ## Rails 6.1.3 (February 17, 2021) ##
72
72
 
73
73
  * No changes.
74
74
 
75
75
 
76
- ## Rails 5.2.2.1 (March 11, 2019) ##
76
+ ## Rails 6.1.2.1 (February 10, 2021) ##
77
77
 
78
78
  * No changes.
79
79
 
80
80
 
81
- ## Rails 5.2.2 (December 04, 2018) ##
81
+ ## Rails 6.1.2 (February 09, 2021) ##
82
82
 
83
83
  * No changes.
84
84
 
85
85
 
86
- ## Rails 5.2.1.1 (November 27, 2018) ##
86
+ ## Rails 6.1.1 (January 07, 2021) ##
87
87
 
88
88
  * No changes.
89
89
 
90
90
 
91
- ## Rails 5.2.1 (August 07, 2018) ##
92
-
93
- * No changes.
91
+ ## Rails 6.1.0 (December 09, 2020) ##
94
92
 
93
+ * `ActionCable::Connection::Base` now allows intercepting unhandled exceptions
94
+ with `rescue_from` before they are logged, which is useful for error reporting
95
+ tools and other integrations.
95
96
 
96
- ## Rails 5.2.0 (April 09, 2018) ##
97
+ *Justin Talbott*
97
98
 
98
- * Removed deprecated evented redis adapter.
99
+ * Add `ActionCable::Channel#stream_or_reject_for` to stream if record is present, otherwise reject the connection
99
100
 
100
- *Rafael Mendonça França*
101
+ *Atul Bhosale*
101
102
 
102
- * Support redis-rb 4.0.
103
+ * Add `ActionCable::Channel#stop_stream_from` and `#stop_stream_for` to unsubscribe from a specific stream.
103
104
 
104
- *Jeremy Daer*
105
+ *Zhang Kang*
105
106
 
106
- * Hash long stream identifiers when using PostgreSQL adapter.
107
+ * Add PostgreSQL subscription connection identificator.
107
108
 
108
- PostgreSQL has a limit on identifiers length (63 chars, [docs](https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS)).
109
- Provided fix minifies identifiers longer than 63 chars by hashing them with SHA1.
109
+ Now you can distinguish Action Cable PostgreSQL subscription connections among others.
110
+ Also, you can set custom `id` in `cable.yml` configuration.
110
111
 
111
- Fixes #28751.
112
+ ```sql
113
+ SELECT application_name FROM pg_stat_activity;
114
+ /*
115
+ application_name
116
+ ------------------------
117
+ psql
118
+ ActionCable-PID-42
119
+ (2 rows)
120
+ */
121
+ ```
112
122
 
113
- *Vladimir Dementyev*
123
+ *Sergey Ponomarev*
114
124
 
115
- * Action Cable's `redis` adapter allows for other common redis-rb options (`host`, `port`, `db`, `password`) in cable.yml.
125
+ * Subscription confirmations and rejections are now logged at the `DEBUG` level instead of `INFO`.
116
126
 
117
- Previously, it accepts only a [redis:// url](https://www.iana.org/assignments/uri-schemes/prov/redis) as an option.
118
- While we can add all of these options to the `url` itself, it is not explicitly documented. This alternative setup
119
- is shown as the first example in the [Redis rubygem](https://github.com/redis/redis-rb#getting-started), which
120
- makes this set of options as sensible as using just the `url`.
127
+ *DHH*
121
128
 
122
- *Marc Rendl Ignacio*
123
129
 
124
- Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/actioncable/CHANGELOG.md) for previous changes.
130
+ Please check [6-0-stable](https://github.com/rails/rails/blob/6-0-stable/actioncable/CHANGELOG.md) for previous changes.
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015-2018 Basecamp, LLC
1
+ Copyright (c) 2015-2022 Basecamp, LLC
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the