Class: RailwayIpc::Responder
- Inherits:
-
Object
- Object
- RailwayIpc::Responder
- Defined in:
- lib/railway_ipc/responder.rb
Defined Under Namespace
Classes: ResponseTypeError
Class Attribute Summary collapse
-
.block ⇒ Object
readonly
Returns the value of attribute block.
Class Method Summary collapse
Instance Method Summary collapse
Class Attribute Details
.block ⇒ Object (readonly)
Returns the value of attribute block.
10 11 12 |
# File 'lib/railway_ipc/responder.rb', line 10 def block @block end |
Class Method Details
.respond(&block) ⇒ Object
5 6 7 |
# File 'lib/railway_ipc/responder.rb', line 5 def self.respond(&block) @block = block end |
Instance Method Details
#respond(request) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/railway_ipc/responder.rb', line 13 def respond(request) RailwayIpc.logger.info( 'Responding to request', protobuf: { type: request.class, data: request }, feature: 'railway_ipc_request' ) response = self.class.block.call(request) raise ResponseTypeError.new(response.class) unless response.is_a?(Google::Protobuf::MessageExts) response end |