@rails/actioncable 6.0.4 → 6.1.1

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,239 +1,45 @@
1
- ## Rails 6.0.4 (June 15, 2021) ##
1
+ ## Rails 6.1.1 (January 07, 2021) ##
2
2
 
3
3
  * No changes.
4
4
 
5
5
 
6
- ## Rails 6.0.3.7 (May 05, 2021) ##
7
-
8
- * No changes.
9
-
10
-
11
- ## Rails 6.0.3.6 (May 04, 2021) ##
12
-
13
- * No changes.
14
-
15
-
16
- ## Rails 6.0.3.6 (March 26, 2021) ##
17
-
18
- * No changes.
19
-
20
-
21
- ## Rails 6.0.3.5 (February 10, 2021) ##
22
-
23
- * No changes.
24
-
25
-
26
- ## Rails 6.0.3.4 (October 07, 2020) ##
27
-
28
- * No changes.
29
-
30
-
31
- ## Rails 6.0.3.3 (September 09, 2020) ##
32
-
33
- * No changes.
34
-
35
-
36
- ## Rails 6.0.3.2 (June 17, 2020) ##
37
-
38
- * No changes.
39
-
40
-
41
- ## Rails 6.0.3.1 (May 18, 2020) ##
42
-
43
- * No changes.
44
-
45
-
46
- ## Rails 6.0.3 (May 06, 2020) ##
47
-
48
- * No changes.
49
-
50
-
51
- ## Rails 6.0.2.2 (March 19, 2020) ##
52
-
53
- * No changes.
54
-
55
-
56
- ## Rails 6.0.2.1 (December 18, 2019) ##
57
-
58
- * No changes.
59
-
60
-
61
- ## Rails 6.0.2 (December 13, 2019) ##
62
-
63
- * No changes.
64
-
65
-
66
- ## Rails 6.0.1 (November 5, 2019) ##
67
-
68
- * No changes.
69
-
70
-
71
- ## Rails 6.0.0 (August 16, 2019) ##
72
-
73
- * No changes.
6
+ ## Rails 6.1.0 (December 09, 2020) ##
74
7
 
8
+ * `ActionCable::Connection::Base` now allows intercepting unhandled exceptions
9
+ with `rescue_from` before they are logged, which is useful for error reporting
10
+ tools and other integrations.
75
11
 
76
- ## Rails 6.0.0.rc2 (July 22, 2019) ##
12
+ *Justin Talbott*
77
13
 
78
- * No changes.
79
-
80
-
81
- ## Rails 6.0.0.rc1 (April 24, 2019) ##
82
-
83
- * No changes.
84
-
85
-
86
- ## Rails 6.0.0.beta3 (March 11, 2019) ##
87
-
88
- * No changes.
89
-
90
-
91
- ## Rails 6.0.0.beta2 (February 25, 2019) ##
92
-
93
- * PostgreSQL subscription adapters now support `channel_prefix` option in cable.yml
94
-
95
- Avoids channel name collisions when multiple apps use the same database for Action Cable.
96
-
97
- *Vladimir Dementyev*
98
-
99
- * Allow passing custom configuration to `ActionCable::Server::Base`.
100
-
101
- You can now create a standalone Action Cable server with a custom configuration
102
- (e.g. to run it in isolation from the default one):
103
-
104
- ```ruby
105
- config = ActionCable::Server::Configuration.new
106
- config.cable = { adapter: "redis", channel_prefix: "custom_" }
107
-
108
- CUSTOM_CABLE = ActionCable::Server::Base.new(config: config)
109
- ```
110
-
111
- Then you can mount it in the `routes.rb` file:
112
-
113
- ```ruby
114
- Rails.application.routes.draw do
115
- mount CUSTOM_CABLE => "/custom_cable"
116
- # ...
117
- end
118
- ```
119
-
120
- *Vladimir Dementyev*
121
-
122
- * Add `:action_cable_connection` and `:action_cable_channel` load hooks.
123
-
124
- You can use them to extend `ActionCable::Connection::Base` and `ActionCable::Channel::Base`
125
- functionality:
126
-
127
- ```ruby
128
- ActiveSupport.on_load(:action_cable_channel) do
129
- # do something in the context of ActionCable::Channel::Base
130
- end
131
- ```
14
+ * Add `ActionCable::Channel#stream_or_reject_for` to stream if record is present, otherwise reject the connection
132
15
 
133
- *Vladimir Dementyev*
16
+ *Atul Bhosale*
134
17
 
135
- * Add `Channel::Base#broadcast_to`.
18
+ * Add `ActionCable::Channel#stop_stream_from` and `#stop_stream_for` to unsubscribe from a specific stream.
136
19
 
137
- You can now call `broadcast_to` within a channel action, which equals to
138
- the `self.class.broadcast_to`.
20
+ *Zhang Kang*
139
21
 
140
- *Vladimir Dementyev*
22
+ * Add PostgreSQL subscription connection identificator.
141
23
 
142
- * Make `Channel::Base.broadcasting_for` a public API.
24
+ Now you can distinguish Action Cable PostgreSQL subscription connections among others.
25
+ Also, you can set custom `id` in `cable.yml` configuration.
143
26
 
144
- You can use `.broadcasting_for` to generate a unique stream identifier within
145
- a channel for the specified target (e.g. Active Record model):
146
-
147
- ```ruby
148
- ChatChannel.broadcasting_for(model) # => "chat:<model.to_gid_param>"
149
- ```
150
-
151
- *Vladimir Dementyev*
152
-
153
-
154
- ## Rails 6.0.0.beta1 (January 18, 2019) ##
155
-
156
- * [Rename npm package](https://github.com/rails/rails/pull/34905) from
157
- [`actioncable`](https://www.npmjs.com/package/actioncable) to
158
- [`@rails/actioncable`](https://www.npmjs.com/package/@rails/actioncable).
159
-
160
- *Javan Makhmali*
161
-
162
- * Merge [`action-cable-testing`](https://github.com/palkan/action-cable-testing) to Rails.
163
-
164
- *Vladimir Dementyev*
165
-
166
- * The JavaScript WebSocket client will no longer try to reconnect
167
- when you call `reject_unauthorized_connection` on the connection.
168
-
169
- *Mick Staugaard*
170
-
171
- * `ActionCable.Connection#getState` now references the configurable
172
- `ActionCable.adapters.WebSocket` property rather than the `WebSocket` global
173
- variable, matching the behavior of `ActionCable.Connection#open`.
174
-
175
- *Richard Macklin*
176
-
177
- * The ActionCable javascript package has been converted from CoffeeScript
178
- to ES2015, and we now publish the source code in the npm distribution.
179
-
180
- This allows ActionCable users to depend on the javascript source code
181
- rather than the compiled code, which can produce smaller javascript bundles.
182
-
183
- This change includes some breaking changes to optional parts of the
184
- ActionCable javascript API:
185
-
186
- - Configuration of the WebSocket adapter and logger adapter have been moved
187
- from properties of `ActionCable` to properties of `ActionCable.adapters`.
188
- If you are currently configuring these adapters you will need to make
189
- these changes when upgrading:
190
-
191
- ```diff
192
- - ActionCable.WebSocket = MyWebSocket
193
- + ActionCable.adapters.WebSocket = MyWebSocket
194
- ```
195
- ```diff
196
- - ActionCable.logger = myLogger
197
- + ActionCable.adapters.logger = myLogger
198
- ```
199
-
200
- - The `ActionCable.startDebugging()` and `ActionCable.stopDebugging()`
201
- methods have been removed and replaced with the property
202
- `ActionCable.logger.enabled`. If you are currently using these methods you
203
- will need to make these changes when upgrading:
204
-
205
- ```diff
206
- - ActionCable.startDebugging()
207
- + ActionCable.logger.enabled = true
208
- ```
209
- ```diff
210
- - ActionCable.stopDebugging()
211
- + ActionCable.logger.enabled = false
212
- ```
213
-
214
- *Richard Macklin*
215
-
216
- * Add `id` option to redis adapter so now you can distinguish
217
- ActionCable's redis connections among others. Also, you can set
218
- custom id in options.
219
-
220
- Before:
221
- ```
222
- $ redis-cli client list
223
- id=669 addr=127.0.0.1:46442 fd=8 name= age=18 ...
224
- ```
225
-
226
- After:
227
- ```
228
- $ redis-cli client list
229
- id=673 addr=127.0.0.1:46516 fd=8 name=ActionCable-PID-19413 age=2 ...
27
+ ```sql
28
+ SELECT application_name FROM pg_stat_activity;
29
+ /*
30
+ application_name
31
+ ------------------------
32
+ psql
33
+ ActionCable-PID-42
34
+ (2 rows)
35
+ */
230
36
  ```
231
37
 
232
- *Ilia Kasianenko*
38
+ *Sergey Ponomarev*
233
39
 
234
- * Rails 6 requires Ruby 2.5.0 or newer.
40
+ * Subscription confirmations and rejections are now logged at the `DEBUG` level instead of `INFO`.
235
41
 
236
- *Jeremy Daer*, *Kasper Timm Hansen*
42
+ *DHH*
237
43
 
238
44
 
239
- Please check [5-2-stable](https://github.com/rails/rails/blob/5-2-stable/actioncable/CHANGELOG.md) for previous changes.
45
+ Please check [6-0-stable](https://github.com/rails/rails/blob/6-0-stable/actioncable/CHANGELOG.md) for previous changes.
@@ -135,7 +135,7 @@
135
135
  if (document.visibilityState === "visible") {
136
136
  setTimeout(function() {
137
137
  if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {
138
- logger.log("ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = " + document.visibilityState);
138
+ logger.log("ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = " + document.visibilityState);
139
139
  _this2.connection.reopen();
140
140
  }
141
141
  }, 200);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rails/actioncable",
3
- "version": "6.0.4",
3
+ "version": "6.1.1",
4
4
  "description": "WebSocket framework for Ruby on Rails.",
5
5
  "main": "app/assets/javascripts/action_cable.js",
6
6
  "files": [
@@ -21,7 +21,7 @@
21
21
  "bugs": {
22
22
  "url": "https://github.com/rails/rails/issues"
23
23
  },
24
- "homepage": "http://rubyonrails.org/",
24
+ "homepage": "https://rubyonrails.org/",
25
25
  "devDependencies": {
26
26
  "babel-core": "^6.25.0",
27
27
  "babel-plugin-external-helpers": "^6.22.0",
@@ -105,7 +105,7 @@ class ConnectionMonitor {
105
105
  if (document.visibilityState === "visible") {
106
106
  setTimeout(() => {
107
107
  if (this.connectionIsStale() || !this.connection.isOpen()) {
108
- logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = ${document.visibilityState}`)
108
+ logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)
109
109
  this.connection.reopen()
110
110
  }
111
111
  }
package/src/consumer.js CHANGED
@@ -6,7 +6,7 @@ import Subscriptions from "./subscriptions"
6
6
  // The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription
7
7
  // method.
8
8
  //
9
- // The following example shows how this can be setup:
9
+ // The following example shows how this can be set up:
10
10
  //
11
11
  // App = {}
12
12
  // App.cable = ActionCable.createConsumer("ws://example.com/accounts/1")
package/src/logger.js CHANGED
@@ -1,5 +1,17 @@
1
1
  import adapters from "./adapters"
2
2
 
3
+ // The logger is disabled by default. You can enable it with:
4
+ //
5
+ // ActionCable.logger.enabled = true
6
+ //
7
+ // Example:
8
+ //
9
+ // import * as ActionCable from '@rails/actioncable'
10
+ //
11
+ // ActionCable.logger.enabled = true
12
+ // ActionCable.logger.log('Connection Established.')
13
+ //
14
+
3
15
  export default {
4
16
  log(...messages) {
5
17
  if (this.enabled) {
@@ -1,7 +1,8 @@
1
1
  import Subscription from "./subscription"
2
2
 
3
- // Collection class for creating (and internally managing) channel subscriptions. The only method intended to be triggered by the user
4
- // us ActionCable.Subscriptions#create, and it should be called through the consumer like so:
3
+ // Collection class for creating (and internally managing) channel subscriptions.
4
+ // The only method intended to be triggered by the user is ActionCable.Subscriptions#create,
5
+ // and it should be called through the consumer like so:
5
6
  //
6
7
  // App = {}
7
8
  // App.cable = ActionCable.createConsumer("ws://example.com/accounts/1")