Module: AnyCable
- Defined in:
- lib/anycable.rb,
lib/anycable/cli.rb,
lib/anycable/config.rb,
lib/anycable/server.rb,
lib/anycable/socket.rb,
lib/anycable/version.rb,
lib/anycable/middleware.rb,
lib/anycable/rpc/rpc_pb.rb,
lib/anycable/rpc_handler.rb,
lib/anycable/health_server.rb,
lib/anycable/middleware_chain.rb,
lib/anycable/broadcast_adapters.rb,
lib/anycable/exceptions_handling.rb,
lib/anycable/rpc/rpc_services_pb.rb,
lib/anycable/broadcast_adapters/redis.rb
Overview
rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength rubocop:disable Metrics/ClassLength
Defined Under Namespace
Modules: BroadcastAdapters, ExceptionsHandling, RPC Classes: CLI, Config, HealthServer, Middleware, MiddlewareChain, RPCHandler, Server, Socket
Constant Summary collapse
- VERSION =
"0.6.3"- ConnectionRequest =
Google::Protobuf::DescriptorPool.generated_pool.lookup("anycable.ConnectionRequest").msgclass
- ConnectionResponse =
Google::Protobuf::DescriptorPool.generated_pool.lookup("anycable.ConnectionResponse").msgclass
- CommandMessage =
Google::Protobuf::DescriptorPool.generated_pool.lookup("anycable.CommandMessage").msgclass
- CommandResponse =
Google::Protobuf::DescriptorPool.generated_pool.lookup("anycable.CommandResponse").msgclass
- DisconnectRequest =
Google::Protobuf::DescriptorPool.generated_pool.lookup("anycable.DisconnectRequest").msgclass
- DisconnectResponse =
Google::Protobuf::DescriptorPool.generated_pool.lookup("anycable.DisconnectResponse").msgclass
- Status =
Google::Protobuf::DescriptorPool.generated_pool.lookup("anycable.Status").enummodule
Class Attribute Summary collapse
-
.connection_factory ⇒ Object
Provide connection factory which is a callable object with build a Connection object.
- .logger ⇒ Object
-
.middleware ⇒ Object
readonly
Returns the value of attribute middleware.
Class Method Summary collapse
-
.broadcast(channel, payload) ⇒ Object
Raw broadcast message to the channel, sends only string! To send hash or object use ActionCable.server.broadcast instead!.
- .broadcast_adapter ⇒ Object
- .broadcast_adapter=(adapter) ⇒ Object
-
.capture_exception(&block) ⇒ Object
Register a custom block that will be called when an exception is raised during gRPC call.
- .config ⇒ Object
- .configure {|config| ... } ⇒ Object
-
.configure_server(&block) ⇒ Object
Register a callback to be invoked before the server starts.
- .error_handlers ⇒ Object
- .server_callbacks ⇒ Object
Class Attribute Details
.connection_factory ⇒ Object
Provide connection factory which is a callable object with build a Connection object
25 26 27 |
# File 'lib/anycable.rb', line 25 def connection_factory @connection_factory end |
.logger ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/anycable.rb', line 31 def logger return @logger if instance_variable_defined?(:@logger) log_output = AnyCable.config.log_file || STDOUT @logger = Logger.new(log_output).tap do |logger| logger.level = AnyCable.config.log_level end end |
.middleware ⇒ Object
Returns the value of attribute middleware.
29 30 31 |
# File 'lib/anycable.rb', line 29 def middleware @middleware end |
Class Method Details
.broadcast(channel, payload) ⇒ Object
Raw broadcast message to the channel, sends only string! To send hash or object use ActionCable.server.broadcast instead!
97 98 99 |
# File 'lib/anycable.rb', line 97 def broadcast(channel, payload) broadcast_adapter.broadcast(channel, payload) end |
.broadcast_adapter ⇒ Object
77 78 79 80 |
# File 'lib/anycable.rb', line 77 def broadcast_adapter self.broadcast_adapter = :redis unless instance_variable_defined?(:@broadcast_adapter) @broadcast_adapter end |
.broadcast_adapter=(adapter) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/anycable.rb', line 82 def broadcast_adapter=(adapter) if adapter.is_a?(Symbol) || adapter.is_a?(Array) adapter = BroadcastAdapters.lookup_adapter(adapter) end unless adapter.respond_to?(:broadcast) raise ArgumentError, "BroadcastAdapter must implement #broadcast method. " \ "#{adapter.class} doesn't implement it." end @broadcast_adapter = adapter end |
.capture_exception(&block) ⇒ Object
Register a custom block that will be called when an exception is raised during gRPC call
55 56 57 |
# File 'lib/anycable.rb', line 55 def capture_exception(&block) ExceptionsHandling << block end |
.config ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/anycable.rb', line 40 def config @config ||= begin # Load anyway_config as later as possible # to make sure all framework-dependent patches are loaded require "anycable/config" Config.new end end |
.configure {|config| ... } ⇒ Object
49 50 51 |
# File 'lib/anycable.rb', line 49 def configure yield(config) if block_given? end |
.configure_server(&block) ⇒ Object
Register a callback to be invoked before the server starts
69 70 71 |
# File 'lib/anycable.rb', line 69 def configure_server(&block) server_callbacks << block end |
.error_handlers ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/anycable.rb', line 59 def error_handlers warn " Using `AnyCable.error_handlers` is deprecated!\n Please, use `AnyCable.capture_exception` instead.\n DEPRECATION\n ExceptionsHandling\nend\n" |
.server_callbacks ⇒ Object
73 74 75 |
# File 'lib/anycable.rb', line 73 def server_callbacks @server_callbacks ||= [] end |