Class: ActiveRemote::RPCAdapters::ProtobufAdapter
- Inherits:
- 
      Object
      
        - Object
- ActiveRemote::RPCAdapters::ProtobufAdapter
 
- Includes:
- Serializers::Protobuf
- Defined in:
- lib/active_remote/rpc_adapters/protobuf_adapter.rb
Constant Summary
Constants included from Serializers::Protobuf
Serializers::Protobuf::FIELD_TYPE_MAP
Instance Attribute Summary collapse
- 
  
    
      #endpoints  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute endpoints. 
- 
  
    
      #service_class  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute service_class. 
Instance Method Summary collapse
- 
  
    
      #execute(endpoint, request_args)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Invoke an RPC call to the service for the given rpc method. 
- 
  
    
      #initialize(service_class, endpoints)  ⇒ ProtobufAdapter 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    Constructor!. 
Methods included from Serializers::Protobuf
#fields_from_attributes, type_name_for_field
Constructor Details
#initialize(service_class, endpoints) ⇒ ProtobufAdapter
Constructor!
| 16 17 18 19 | # File 'lib/active_remote/rpc_adapters/protobuf_adapter.rb', line 16 def initialize(service_class, endpoints) @service_class = service_class @endpoints = endpoints end | 
Instance Attribute Details
#endpoints ⇒ Object
Returns the value of attribute endpoints.
| 9 10 11 | # File 'lib/active_remote/rpc_adapters/protobuf_adapter.rb', line 9 def endpoints @endpoints end | 
#service_class ⇒ Object (readonly)
Returns the value of attribute service_class.
| 8 9 10 | # File 'lib/active_remote/rpc_adapters/protobuf_adapter.rb', line 8 def service_class @service_class end | 
Instance Method Details
#execute(endpoint, request_args) ⇒ Object
Invoke an RPC call to the service for the given rpc method.
| 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | # File 'lib/active_remote/rpc_adapters/protobuf_adapter.rb', line 23 def execute(endpoint, request_args) rpc_method = endpoints.fetch(endpoint) { endpoint } request = build_request(rpc_method, request_args) response = nil client.send(rpc_method, request) do |c| # In the event of service failure, raise the error. c.on_failure do |error| protobuf_error = protobuf_error_class(error) raise protobuf_error, error. end # In the event of service success, assign the response. c.on_success do |rpc_response| response = rpc_response end end response end |