async-matrixSourceAsyncMatrixApiGateway

class Gateway

Gateway produces Chain instances bound to a specific Client. Each call to a method on the Gateway starts a new chain.

Definitions

def chain

Start a fresh chain. Every method call on the gateway creates a new chain so chains are never reused.

Implementation

def chain
  Chain.new(client: @client, path_tree: Api.path_tree, prefix: @prefix)
end

def method_missing(name, *args, **kwargs, &block)

Forward all unknown methods to a fresh chain, starting the path.

Implementation

def method_missing(name, *args, **kwargs, &block)
  if name.start_with?("to_")
    super
  else
    chain.__send__(name, *args, **kwargs, &block)
  end
end