actioncable 6.0.3.1 → 6.1.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88b176c84dec71fed7d56612cc816757e36ca2fc3263d9da6c5b1477555b5948
4
- data.tar.gz: 927bfa7cbf4baec98ba5449d3b36252263170035ecc31871c84723b1a6fc9686
3
+ metadata.gz: 9c5e53667b2b0d8d5dec24542c02c79f416c55e6ba73aad4b08edaab1b82eb62
4
+ data.tar.gz: b1ef863700020b57734a97238be7ae792ffed789a0abbc2e17f7935494fe47bd
5
5
  SHA512:
6
- metadata.gz: 2029caefe3c34c9f7951e1cfb8f12e93800d87c5bbdb4c63f398de2440e5f6bbb3932c6af39994160e9877cebfd3e27da528dd4cfe38b7b257b9bdbb4bc60c3a
7
- data.tar.gz: a7e7477f8c4fa0c7e6eeefba4258c15bdac4daf9bda5091523b04567dcbc320c11e4773cb598ef49a3cd9fc5b2357af01605178f27e95e2b66d4ebab1a40a7cf
6
+ metadata.gz: a4a93fe464e25892cc65b9a125019ff255ce16042a054c0edf2c60c5e7c2b8fe0bfddd83fd38b4ae23b0d390e87795a8287605080cacd3b3684360e8d78607a6
7
+ data.tar.gz: f7f5d358e5291c61e29ee946b3e88b3e4c8d5def087a09d0426b0355068d813c056d30b92b8de25be3423aee07e53b3cf35395be31720f8c57b45a1edc05fca7
@@ -1,199 +1,45 @@
1
- ## Rails 6.0.3.1 (May 18, 2020) ##
1
+ ## Rails 6.1.0.rc2 (December 01, 2020) ##
2
2
 
3
3
  * No changes.
4
4
 
5
5
 
6
- ## Rails 6.0.3 (May 06, 2020) ##
6
+ ## Rails 6.1.0.rc1 (November 02, 2020) ##
7
7
 
8
- * No changes.
9
-
10
-
11
- ## Rails 6.0.2.2 (March 19, 2020) ##
12
-
13
- * No changes.
14
-
15
-
16
- ## Rails 6.0.2.1 (December 18, 2019) ##
17
-
18
- * No changes.
19
-
20
-
21
- ## Rails 6.0.2 (December 13, 2019) ##
22
-
23
- * No changes.
24
-
25
-
26
- ## Rails 6.0.1 (November 5, 2019) ##
27
-
28
- * No changes.
29
-
30
-
31
- ## Rails 6.0.0 (August 16, 2019) ##
32
-
33
- * No changes.
34
-
35
-
36
- ## Rails 6.0.0.rc2 (July 22, 2019) ##
37
-
38
- * No changes.
39
-
40
-
41
- ## Rails 6.0.0.rc1 (April 24, 2019) ##
42
-
43
- * No changes.
44
-
45
-
46
- ## Rails 6.0.0.beta3 (March 11, 2019) ##
47
-
48
- * No changes.
49
-
50
-
51
- ## Rails 6.0.0.beta2 (February 25, 2019) ##
52
-
53
- * PostgreSQL subscription adapters now support `channel_prefix` option in cable.yml
54
-
55
- Avoids channel name collisions when multiple apps use the same database for Action Cable.
56
-
57
- *Vladimir Dementyev*
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.
58
11
 
59
- * Allow passing custom configuration to `ActionCable::Server::Base`.
12
+ *Justin Talbott*
60
13
 
61
- You can now create a standalone Action Cable server with a custom configuration
62
- (e.g. to run it in isolation from the default one):
14
+ * Add `ActionCable::Channel#stream_or_reject_for` to stream if record is present, otherwise reject the connection
63
15
 
64
- ```ruby
65
- config = ActionCable::Server::Configuration.new
66
- config.cable = { adapter: "redis", channel_prefix: "custom_" }
67
-
68
- CUSTOM_CABLE = ActionCable::Server::Base.new(config: config)
69
- ```
70
-
71
- Then you can mount it in the `routes.rb` file:
72
-
73
- ```ruby
74
- Rails.application.routes.draw do
75
- mount CUSTOM_CABLE => "/custom_cable"
76
- # ...
77
- end
78
- ```
79
-
80
- *Vladimir Dementyev*
81
-
82
- * Add `:action_cable_connection` and `:action_cable_channel` load hooks.
83
-
84
- You can use them to extend `ActionCable::Connection::Base` and `ActionCable::Channel::Base`
85
- functionality:
86
-
87
- ```ruby
88
- ActiveSupport.on_load(:action_cable_channel) do
89
- # do something in the context of ActionCable::Channel::Base
90
- end
91
- ```
92
-
93
- *Vladimir Dementyev*
94
-
95
- * Add `Channel::Base#broadcast_to`.
96
-
97
- You can now call `broadcast_to` within a channel action, which equals to
98
- the `self.class.broadcast_to`.
99
-
100
- *Vladimir Dementyev*
101
-
102
- * Make `Channel::Base.broadcasting_for` a public API.
103
-
104
- You can use `.broadcasting_for` to generate a unique stream identifier within
105
- a channel for the specified target (e.g. Active Record model):
106
-
107
- ```ruby
108
- ChatChannel.broadcasting_for(model) # => "chat:<model.to_gid_param>"
109
- ```
110
-
111
- *Vladimir Dementyev*
16
+ *Atul Bhosale*
112
17
 
18
+ * Add `ActionCable::Channel#stop_stream_from` and `#stop_stream_for` to unsubscribe from a specific stream.
113
19
 
114
- ## Rails 6.0.0.beta1 (January 18, 2019) ##
20
+ *Zhang Kang*
115
21
 
116
- * [Rename npm package](https://github.com/rails/rails/pull/34905) from
117
- [`actioncable`](https://www.npmjs.com/package/actioncable) to
118
- [`@rails/actioncable`](https://www.npmjs.com/package/@rails/actioncable).
22
+ * Add PostgreSQL subscription connection identificator.
119
23
 
120
- *Javan Makhmali*
24
+ Now you can distinguish Action Cable PostgreSQL subscription connections among others.
25
+ Also, you can set custom `id` in `cable.yml` configuration.
121
26
 
122
- * Merge [`action-cable-testing`](https://github.com/palkan/action-cable-testing) to Rails.
123
-
124
- *Vladimir Dementyev*
125
-
126
- * The JavaScript WebSocket client will no longer try to reconnect
127
- when you call `reject_unauthorized_connection` on the connection.
128
-
129
- *Mick Staugaard*
130
-
131
- * `ActionCable.Connection#getState` now references the configurable
132
- `ActionCable.adapters.WebSocket` property rather than the `WebSocket` global
133
- variable, matching the behavior of `ActionCable.Connection#open`.
134
-
135
- *Richard Macklin*
136
-
137
- * The ActionCable javascript package has been converted from CoffeeScript
138
- to ES2015, and we now publish the source code in the npm distribution.
139
-
140
- This allows ActionCable users to depend on the javascript source code
141
- rather than the compiled code, which can produce smaller javascript bundles.
142
-
143
- This change includes some breaking changes to optional parts of the
144
- ActionCable javascript API:
145
-
146
- - Configuration of the WebSocket adapter and logger adapter have been moved
147
- from properties of `ActionCable` to properties of `ActionCable.adapters`.
148
- If you are currently configuring these adapters you will need to make
149
- these changes when upgrading:
150
-
151
- ```diff
152
- - ActionCable.WebSocket = MyWebSocket
153
- + ActionCable.adapters.WebSocket = MyWebSocket
154
- ```
155
- ```diff
156
- - ActionCable.logger = myLogger
157
- + ActionCable.adapters.logger = myLogger
158
- ```
159
-
160
- - The `ActionCable.startDebugging()` and `ActionCable.stopDebugging()`
161
- methods have been removed and replaced with the property
162
- `ActionCable.logger.enabled`. If you are currently using these methods you
163
- will need to make these changes when upgrading:
164
-
165
- ```diff
166
- - ActionCable.startDebugging()
167
- + ActionCable.logger.enabled = true
168
- ```
169
- ```diff
170
- - ActionCable.stopDebugging()
171
- + ActionCable.logger.enabled = false
172
- ```
173
-
174
- *Richard Macklin*
175
-
176
- * Add `id` option to redis adapter so now you can distinguish
177
- ActionCable's redis connections among others. Also, you can set
178
- custom id in options.
179
-
180
- Before:
181
- ```
182
- $ redis-cli client list
183
- id=669 addr=127.0.0.1:46442 fd=8 name= age=18 ...
184
- ```
185
-
186
- After:
187
- ```
188
- $ redis-cli client list
189
- 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
+ */
190
36
  ```
191
37
 
192
- *Ilia Kasianenko*
38
+ *Sergey Ponomarev*
193
39
 
194
- * Rails 6 requires Ruby 2.5.0 or newer.
40
+ * Subscription confirmations and rejections are now logged at the `DEBUG` level instead of `INFO`.
195
41
 
196
- *Jeremy Daer*, *Kasper Timm Hansen*
42
+ *DHH*
197
43
 
198
44
 
199
- 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.
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015-2019 Basecamp, LLC
1
+ Copyright (c) 2015-2020 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
@@ -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);
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  #--
4
- # Copyright (c) 2015-2019 Basecamp, LLC
4
+ # Copyright (c) 2015-2020 Basecamp, LLC
5
5
  #
6
6
  # Permission is hereby granted, free of charge, to any person obtaining
7
7
  # a copy of this software and associated documentation files (the
@@ -194,7 +194,7 @@ module ActionCable
194
194
  end
195
195
 
196
196
  private
197
- # Called once a consumer has become a subscriber of the channel. Usually the place to setup any streams
197
+ # Called once a consumer has become a subscriber of the channel. Usually the place to set up any streams
198
198
  # you want this channel to be sending to the subscriber.
199
199
  def subscribed # :doc:
200
200
  # Override in subclasses
@@ -283,7 +283,7 @@ module ActionCable
283
283
 
284
284
  def transmit_subscription_confirmation
285
285
  unless subscription_confirmation_sent?
286
- logger.info "#{self.class.name} is transmitting the subscription confirmation"
286
+ logger.debug "#{self.class.name} is transmitting the subscription confirmation"
287
287
 
288
288
  ActiveSupport::Notifications.instrument("transmit_subscription_confirmation.action_cable", channel_class: self.class.name) do
289
289
  connection.transmit identifier: @identifier, type: ActionCable::INTERNAL[:message_types][:confirmation]
@@ -298,7 +298,7 @@ module ActionCable
298
298
  end
299
299
 
300
300
  def transmit_subscription_rejection
301
- logger.info "#{self.class.name} is transmitting the subscription rejection"
301
+ logger.debug "#{self.class.name} is transmitting the subscription rejection"
302
302
 
303
303
  ActiveSupport::Notifications.instrument("transmit_subscription_rejection.action_cable", channel_class: self.class.name) do
304
304
  connection.transmit identifier: @identifier, type: ActionCable::INTERNAL[:message_types][:rejection]
@@ -14,7 +14,7 @@ module ActionCable
14
14
  # Chats::AppearancesChannel.channel_name # => 'chats:appearances'
15
15
  # FooChats::BarAppearancesChannel.channel_name # => 'foo_chats:bar_appearances'
16
16
  def channel_name
17
- @channel_name ||= name.sub(/Channel$/, "").gsub("::", ":").underscore
17
+ @channel_name ||= name.delete_suffix("Channel").gsub("::", ":").underscore
18
18
  end
19
19
  end
20
20
 
@@ -82,7 +82,7 @@ module ActionCable
82
82
  # Build a stream handler by wrapping the user-provided callback with
83
83
  # a decoder or defaulting to a JSON-decoding retransmitter.
84
84
  handler = worker_pool_stream_handler(broadcasting, callback || block, coder: coder)
85
- streams << [ broadcasting, handler ]
85
+ streams[broadcasting] = handler
86
86
 
87
87
  connection.server.event_loop.post do
88
88
  pubsub.subscribe(broadcasting, handler, lambda do
@@ -102,6 +102,20 @@ module ActionCable
102
102
  stream_from(broadcasting_for(model), callback || block, coder: coder)
103
103
  end
104
104
 
105
+ # Unsubscribes streams from the named <tt>broadcasting</tt>.
106
+ def stop_stream_from(broadcasting)
107
+ callback = streams.delete(broadcasting)
108
+ if callback
109
+ pubsub.unsubscribe(broadcasting, callback)
110
+ logger.info "#{self.class.name} stopped streaming from #{broadcasting}"
111
+ end
112
+ end
113
+
114
+ # Unsubscribes streams for the <tt>model</tt>.
115
+ def stop_stream_for(model)
116
+ stop_stream_from(broadcasting_for(model))
117
+ end
118
+
105
119
  # Unsubscribes all streams associated with this channel from the pubsub queue.
106
120
  def stop_all_streams
107
121
  streams.each do |broadcasting, callback|
@@ -110,11 +124,23 @@ module ActionCable
110
124
  end.clear
111
125
  end
112
126
 
127
+ # Calls stream_for if record is present, otherwise calls reject.
128
+ # This method is intended to be called when you're looking
129
+ # for a record based on a parameter, if its found it will start
130
+ # streaming. If the record is nil then it will reject the connection.
131
+ def stream_or_reject_for(record)
132
+ if record
133
+ stream_for record
134
+ else
135
+ reject
136
+ end
137
+ end
138
+
113
139
  private
114
140
  delegate :pubsub, to: :connection
115
141
 
116
142
  def streams
117
- @_streams ||= []
143
+ @_streams ||= {}
118
144
  end
119
145
 
120
146
  # Always wrap the outermost handler to invoke the user handler on the
@@ -159,7 +159,7 @@ module ActionCable
159
159
  # def test_speak
160
160
  # subscribe room_id: rooms(:chat).id
161
161
  #
162
- # assert_broadcasts_on(rooms(:chat), text: "Hello, Rails!") do
162
+ # assert_broadcast_on(rooms(:chat), text: "Hello, Rails!") do
163
163
  # perform :speak, message: "Hello, Rails!"
164
164
  # end
165
165
  # end
@@ -209,7 +209,7 @@ module ActionCable
209
209
  end
210
210
  end
211
211
 
212
- # Setup test connection with the specified identifiers:
212
+ # Set up test connection with the specified identifiers:
213
213
  #
214
214
  # class ApplicationCable < ActionCable::Connection::Base
215
215
  # identified_by :user, :token
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "action_dispatch"
4
+ require "active_support/rescuable"
4
5
 
5
6
  module ActionCable
6
7
  module Connection
@@ -46,6 +47,7 @@ module ActionCable
46
47
  include Identification
47
48
  include InternalChannel
48
49
  include Authorization
50
+ include ActiveSupport::Rescuable
49
51
 
50
52
  attr_reader :server, :env, :subscriptions, :logger, :worker_pool, :protocol
51
53
  delegate :event_loop, :pubsub, to: :server
@@ -21,6 +21,7 @@ module ActionCable
21
21
  logger.error "Received unrecognized command in #{data.inspect}"
22
22
  end
23
23
  rescue Exception => e
24
+ @connection.rescue_with_handler(e)
24
25
  logger.error "Could not execute command from (#{data.inspect}) [#{e.class} - #{e.message}]: #{e.backtrace.first(5).join(" | ")}"
25
26
  end
26
27
 
@@ -85,7 +85,7 @@ module ActionCable
85
85
  # end
86
86
  # end
87
87
  #
88
- # +connect+ accepts additional information the HTTP request with the
88
+ # +connect+ accepts additional information about the HTTP request with the
89
89
  # +params+, +headers+, +session+ and Rack +env+ options.
90
90
  #
91
91
  # def test_connect_with_headers_and_query_string
@@ -101,7 +101,7 @@ module ActionCable
101
101
  # assert_equal "1", connection.user.id
102
102
  # end
103
103
  #
104
- # You can also setup the correct cookies before the connection request:
104
+ # You can also set up the correct cookies before the connection request:
105
105
  #
106
106
  # def test_connect_with_cookies
107
107
  # # Plain cookies:
@@ -30,7 +30,7 @@ module ActionCable
30
30
 
31
31
  ActiveSupport.on_load(:action_cable) do
32
32
  if (config_path = Pathname.new(app.config.paths["config/cable"].first)).exist?
33
- self.cable = Rails.application.config_for(config_path).with_indifferent_access
33
+ self.cable = Rails.application.config_for(config_path).to_h.with_indifferent_access
34
34
  end
35
35
 
36
36
  previous_connection_class = connection_class
@@ -8,9 +8,9 @@ module ActionCable
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 6
11
- MINOR = 0
12
- TINY = 3
13
- PRE = "1"
11
+ MINOR = 1
12
+ TINY = 0
13
+ PRE = "rc2"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -12,11 +12,11 @@ module ActionCable
12
12
  # </head>
13
13
  #
14
14
  # This is then used by Action Cable to determine the URL of your WebSocket server.
15
- # Your CoffeeScript can then connect to the server without needing to specify the
15
+ # Your JavaScript can then connect to the server without needing to specify the
16
16
  # URL directly:
17
17
  #
18
- # #= require cable
19
- # @App = {}
18
+ # window.Cable = require("@rails/actioncable")
19
+ # window.App = {}
20
20
  # App.cable = Cable.createConsumer()
21
21
  #
22
22
  # Make sure to specify the correct server location in each of your environment
@@ -11,7 +11,6 @@ module ActionCable
11
11
  autoload :Configuration
12
12
 
13
13
  autoload :Worker
14
- autoload :ActiveRecordConnectionManagement, "action_cable/server/worker/active_record_connection_management"
15
14
  end
16
15
  end
17
16
  end
@@ -27,7 +27,7 @@ module ActionCable
27
27
  @remote_connections = @event_loop = @worker_pool = @pubsub = nil
28
28
  end
29
29
 
30
- # Called by Rack to setup the server.
30
+ # Called by Rack to set up the server.
31
31
  def call(env)
32
32
  setup_heartbeat_timer
33
33
  config.connection_class.call.new(self, env).process
@@ -40,7 +40,7 @@ module ActionCable
40
40
  end
41
41
 
42
42
  def broadcast(message)
43
- server.logger.debug "[ActionCable] Broadcasting to #{broadcasting}: #{message.inspect}"
43
+ server.logger.debug { "[ActionCable] Broadcasting to #{broadcasting}: #{message.inspect}" }
44
44
 
45
45
  payload = { broadcasting: broadcasting, message: message, coder: coder }
46
46
  ActiveSupport::Notifications.instrument("broadcast.action_cable", payload) do
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "active_support/callbacks"
4
4
  require "active_support/core_ext/module/attribute_accessors_per_thread"
5
+ require "action_cable/server/worker/active_record_connection_management"
5
6
  require "concurrent"
6
7
 
7
8
  module ActionCable
@@ -25,6 +25,10 @@ module ActionCable
25
25
  def shutdown
26
26
  raise NotImplementedError
27
27
  end
28
+
29
+ def identifier
30
+ @server.config.cable[:id] ||= "ActionCable-PID-#{$$}"
31
+ end
28
32
  end
29
33
  end
30
34
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- gem "pg", ">= 0.18", "< 2.0"
3
+ gem "pg", "~> 1.1"
4
4
  require "pg"
5
5
  require "thread"
6
6
  require "digest/sha1"
@@ -42,6 +42,7 @@ module ActionCable
42
42
  pg_conn = ar_conn.raw_connection
43
43
 
44
44
  verify!(pg_conn)
45
+ pg_conn.exec("SET application_name = #{pg_conn.escape_identifier(identifier)}")
45
46
  yield pg_conn
46
47
  ensure
47
48
  ar_conn.disconnect!
@@ -15,7 +15,6 @@ module ActionCable
15
15
  # Overwrite this factory method for Redis connections if you want to use a different Redis library than the redis gem.
16
16
  # This is needed, for example, when using Makara proxies for distributed Redis.
17
17
  cattr_accessor :redis_connector, default: ->(config) do
18
- config[:id] ||= "ActionCable-PID-#{$$}"
19
18
  ::Redis.new(config.except(:adapter, :channel_prefix))
20
19
  end
21
20
 
@@ -57,7 +56,7 @@ module ActionCable
57
56
  end
58
57
 
59
58
  def redis_connection
60
- self.class.redis_connector.call(@server.config.cable)
59
+ self.class.redis_connector.call(@server.config.cable.merge(id: identifier))
61
60
  end
62
61
 
63
62
  class Listener < SubscriberMap
@@ -42,10 +42,10 @@ module ActionCable
42
42
  # end
43
43
  # end
44
44
  #
45
- def assert_broadcasts(stream, number)
45
+ def assert_broadcasts(stream, number, &block)
46
46
  if block_given?
47
47
  original_count = broadcasts_size(stream)
48
- yield
48
+ assert_nothing_raised(&block)
49
49
  new_count = broadcasts_size(stream)
50
50
  actual_count = new_count - original_count
51
51
  else
@@ -94,7 +94,7 @@ module ActionCable
94
94
  # end
95
95
  # end
96
96
  #
97
- def assert_broadcast_on(stream, data)
97
+ def assert_broadcast_on(stream, data, &block)
98
98
  # Encode to JSON and back–we want to use this value to compare
99
99
  # with decoded JSON.
100
100
  # Comparing JSON strings doesn't work due to the order if the keys.
@@ -106,7 +106,7 @@ module ActionCable
106
106
  old_messages = new_messages
107
107
  clear_messages(stream)
108
108
 
109
- yield
109
+ assert_nothing_raised(&block)
110
110
  new_messages = broadcasts(stream)
111
111
  clear_messages(stream)
112
112
 
@@ -1,11 +1,11 @@
1
1
  Description:
2
2
  ============
3
- Stubs out a new cable channel for the server (in Ruby) and client (in JavaScript).
3
+ Generates a new cable channel for the server (in Ruby) and client (in JavaScript).
4
4
  Pass the channel name, either CamelCased or under_scored, and an optional list of channel actions as arguments.
5
5
 
6
6
  Example:
7
7
  ========
8
- rails generate channel Chat speak
8
+ bin/rails generate channel Chat speak
9
9
 
10
10
  creates a Chat channel class, test and JavaScript asset:
11
11
  Channel: app/channels/chat_channel.rb
@@ -1,5 +1,5 @@
1
1
  // Action Cable provides the framework to deal with WebSockets in Rails.
2
- // You can generate new channels where WebSocket features live using the `rails generate channel` command.
2
+ // You can generate new channels where WebSocket features live using the `bin/rails generate channel` command.
3
3
 
4
4
  import { createConsumer } from "@rails/actioncable"
5
5
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actioncable
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.3.1
4
+ version: 6.1.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pratik Naik
@@ -9,22 +9,36 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-05-18 00:00:00.000000000 Z
12
+ date: 2020-12-01 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '='
19
+ - !ruby/object:Gem::Version
20
+ version: 6.1.0.rc2
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '='
26
+ - !ruby/object:Gem::Version
27
+ version: 6.1.0.rc2
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: actionpack
16
30
  requirement: !ruby/object:Gem::Requirement
17
31
  requirements:
18
32
  - - '='
19
33
  - !ruby/object:Gem::Version
20
- version: 6.0.3.1
34
+ version: 6.1.0.rc2
21
35
  type: :runtime
22
36
  prerelease: false
23
37
  version_requirements: !ruby/object:Gem::Requirement
24
38
  requirements:
25
39
  - - '='
26
40
  - !ruby/object:Gem::Version
27
- version: 6.0.3.1
41
+ version: 6.1.0.rc2
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: nio4r
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -126,10 +140,10 @@ licenses:
126
140
  - MIT
127
141
  metadata:
128
142
  bug_tracker_uri: https://github.com/rails/rails/issues
129
- changelog_uri: https://github.com/rails/rails/blob/v6.0.3.1/actioncable/CHANGELOG.md
130
- documentation_uri: https://api.rubyonrails.org/v6.0.3.1/
143
+ changelog_uri: https://github.com/rails/rails/blob/v6.1.0.rc2/actioncable/CHANGELOG.md
144
+ documentation_uri: https://api.rubyonrails.org/v6.1.0.rc2/
131
145
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
132
- source_code_uri: https://github.com/rails/rails/tree/v6.0.3.1/actioncable
146
+ source_code_uri: https://github.com/rails/rails/tree/v6.1.0.rc2/actioncable
133
147
  post_install_message:
134
148
  rdoc_options: []
135
149
  require_paths:
@@ -141,11 +155,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
155
  version: 2.5.0
142
156
  required_rubygems_version: !ruby/object:Gem::Requirement
143
157
  requirements:
144
- - - ">="
158
+ - - ">"
145
159
  - !ruby/object:Gem::Version
146
- version: '0'
160
+ version: 1.3.1
147
161
  requirements: []
148
- rubygems_version: 3.1.2
162
+ rubygems_version: 3.1.4
149
163
  signing_key:
150
164
  specification_version: 4
151
165
  summary: WebSocket framework for Rails.