anycable-rails 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: befe1ee696c2e92b1b9b6a862a9b9c5e024dbbfb
4
- data.tar.gz: c0a573fbc413d53840f7bfd11d3cd5ea860f8e6f
3
+ metadata.gz: 6f487f9b1437eeeb4fab3bec3ec73c3f06e32bc3
4
+ data.tar.gz: 5d1105fbde9dfcce31da1cb02ac1699bbe80fd5e
5
5
  SHA512:
6
- metadata.gz: e4e56fb8e4f7baad3a1e2a73a798f84883b195796ceb9b112b927343434f97b66875f5df13e7b3fa099d73d7f73a08659a66ba6896f41c7f83fc690f68a6a174
7
- data.tar.gz: 8448424ff837cbb57a6ac4ba1aa6c165dcf544e9ca4e0dd53e278cb591b72fdcb440b692f6465f0edfd4174d5742e4bd4151da408504b493a9a83f52d03d7de4
6
+ metadata.gz: f6b87a26ed485cb1391fc388fa96734f37487b11c0862b149dcc64fb9ecb9d31c47fe1c50be1d297b0dbb1dad91a35d6aa9c6b88d96559c17feed058058e4704
7
+ data.tar.gz: 9634bf30406506e577496c92afe462377c1d8da5b3e7d005b36c2a6c849a596b11c782bad4a40c3bcadc071eaeeac0b632ab25479223d8e39d2139462dc58d38
@@ -1,6 +1,14 @@
1
1
  # Change log
2
2
 
3
- ## master
3
+ ## 0.5.1
4
+
5
+ - Improve Rails integration. ([@palkan][])
6
+
7
+ Log to STDOUT in development.
8
+ Make order of initializers more deterministic.
9
+ Show warning if AnyCable is loaded after application initialization.
10
+
11
+ ## 0.5.0
4
12
 
5
13
  - [#17](https://github.com/anycable/anycable-rails/issues/17) Refactor logging. ([@palkan][])
6
14
 
data/README.md CHANGED
@@ -51,6 +51,9 @@ gem 'anycable-rails'
51
51
  gem 'anycable-rails', group: :production
52
52
  ```
53
53
 
54
+ **NOTE**: if you want to require `anycable-rails` _manually_ (i.e. with `require: false` in your `Gemfile`)
55
+ make sure that it's loaded prior to `Rails.application.initialize!` call (see `config/environment.rb`).
56
+
54
57
  And then run:
55
58
 
56
59
  ```shell
@@ -116,7 +119,6 @@ production:
116
119
  access_logs_disabled: false
117
120
  ```
118
121
 
119
-
120
122
  ## ActionCable Compatibility
121
123
 
122
124
  This is the compatibility list for the AnyCable gem, not for AnyCable servers (which may not support some of the features yet).
@@ -12,3 +12,15 @@ module Anycable
12
12
  require "anycable/rails/actioncable/connection"
13
13
  end
14
14
  end
15
+
16
+ # Warn if application has been already initialized.
17
+ # Anycable should be loaded before initialization in order to work correctly.
18
+ if defined?(::Rails) && ::Rails.application && ::Rails.application.initialized?
19
+ puts("\n**************************************************")
20
+ puts(
21
+ "⛔️ WARNING: AnyCable loaded after application initialization. Might not work correctly.\n"\
22
+ "Please, make sure to remove `require: false` in your Gemfile or "\
23
+ "require manually in `environment.rb` before `Rails.application.initialize!`"
24
+ )
25
+ puts("**************************************************\n\n")
26
+ end
@@ -20,20 +20,35 @@ module Anycable
20
20
  end
21
21
 
22
22
  class Railtie < ::Rails::Railtie # :nodoc:
23
- initializer "disable built-in Action Cable mount" do |app|
23
+ initializer "anycable.disable_action_cable_mount", before: "action_cable.routes" do |app|
24
24
  app.config.action_cable.mount_path = nil
25
25
  end
26
26
 
27
- initializer "set up logger" do |_app|
27
+ initializer "anycable.logger", after: :initialize_logger do |_app|
28
28
  Anycable.logger = LoggerProxy.new(::Rails.logger)
29
+
30
+ # Broadcast logs to STDOUT in development
31
+ if ::Rails.env.development? &&
32
+ !ActiveSupport::Logger.logger_outputs_to?(::Rails.logger, STDOUT)
33
+ console = ActiveSupport::Logger.new(STDOUT)
34
+ console.formatter = ::Rails.logger.formatter
35
+ console.level = ::Rails.logger.level
36
+ ::Rails.logger.extend(ActiveSupport::Logger.broadcast(console))
37
+ end
29
38
  end
30
39
 
31
- initializer "release AR connections in RPC handler" do |_app|
40
+ initializer "anycable.release_connections" do |_app|
32
41
  ActiveSupport.on_load(:active_record) do
33
42
  require "anycable/rails/activerecord/release_connection"
34
43
  Anycable::RPCHandler.prepend Anycable::Rails::ActiveRecord::ReleaseConnection
35
44
  end
36
45
  end
46
+
47
+ initializer "anycable.connection_factory", after: "action_cable.set_configs" do |_app|
48
+ ActiveSupport.on_load(:action_cable) do
49
+ Anycable.connection_factory = connection_class.call
50
+ end
51
+ end
37
52
  end
38
53
  end
39
54
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Anycable
4
4
  module Rails
5
- VERSION = "0.5.0"
5
+ VERSION = "0.5.1"
6
6
  end
7
7
  end
@@ -2,10 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require ::File.expand_path('../../config/environment', __FILE__)
5
- require "anycable-rails"
6
-
7
- Anycable.connection_factory = ActionCable.server.config.connection_class.call
8
-
9
- Rails.application.eager_load!
10
5
 
11
6
  Anycable::Server.start
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anycable-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - palkan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-21 00:00:00.000000000 Z
11
+ date: 2017-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails