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,
lib/anycable/handler/capture_exceptions.rb
Overview
rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength
Defined Under Namespace
Modules: BroadcastAdapters, ExceptionsHandling, Handler, RPC Classes: CLI, Config, HealthServer, Middleware, MiddlewareChain, RPCHandler, Server, Socket
Constant Summary collapse
- VERSION =
"0.6.0"
- 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
26 27 28 |
# File 'lib/anycable.rb', line 26 def connection_factory @connection_factory end |
.logger ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/anycable.rb', line 32 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.
30 31 32 |
# File 'lib/anycable.rb', line 30 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!
93 94 95 |
# File 'lib/anycable.rb', line 93 def broadcast(channel, payload) broadcast_adapter.broadcast(channel, payload) end |
.broadcast_adapter ⇒ Object
73 74 75 76 |
# File 'lib/anycable.rb', line 73 def broadcast_adapter self.broadcast_adapter = :redis unless instance_variable_defined?(:@broadcast_adapter) @broadcast_adapter end |
.broadcast_adapter=(adapter) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/anycable.rb', line 78 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
51 52 53 |
# File 'lib/anycable.rb', line 51 def capture_exception(&block) ExceptionsHandling << block end |
.config ⇒ Object
41 42 43 |
# File 'lib/anycable.rb', line 41 def config @config ||= Config.new end |
.configure {|config| ... } ⇒ Object
45 46 47 |
# File 'lib/anycable.rb', line 45 def configure yield(config) if block_given? end |
.configure_server(&block) ⇒ Object
Register a callback to be invoked before the server starts
65 66 67 |
# File 'lib/anycable.rb', line 65 def configure_server(&block) server_callbacks << block end |
.error_handlers ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/anycable.rb', line 55 def error_handlers warn <<~DEPRECATION Using `AnyCable.error_handlers` is deprecated! Please, use `AnyCable.capture_exception` instead. DEPRECATION ExceptionsHandling end |
.server_callbacks ⇒ Object
69 70 71 |
# File 'lib/anycable.rb', line 69 def server_callbacks @server_callbacks ||= [] end |