Class: SurrealDB::Connections::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/surrealdb/connections/base.rb

Overview

Abstract base class for SurrealDB transport connections. Subclasses must implement #connect, #close, and #send_request.

Direct Known Subclasses

Embedded, HTTP, ReliableWebSocket, WebSocket

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, **_options) ⇒ Base

Returns a new instance of Base.



14
15
16
17
18
# File 'lib/surrealdb/connections/base.rb', line 14

def initialize(url, **_options)
  @url = url
  @rpc = Protocol::RPC.new
  @connected = false
end

Instance Attribute Details

#rpcProtocol::RPC (readonly)

Returns:



12
13
14
# File 'lib/surrealdb/connections/base.rb', line 12

def rpc
  @rpc
end

#urlString (readonly)

Returns base URL.

Returns:

  • (String)

    base URL



9
10
11
# File 'lib/surrealdb/connections/base.rb', line 9

def url
  @url
end

Instance Method Details

#closevoid

This method returns an undefined value.

Closes the transport connection.

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/surrealdb/connections/base.rb', line 28

def close
  raise NotImplementedError
end

#connectvoid

This method returns an undefined value.

Opens the transport connection.

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/surrealdb/connections/base.rb', line 22

def connect
  raise NotImplementedError
end

#connected?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/surrealdb/connections/base.rb', line 41

def connected?
  @connected
end

#send_request(method, params = []) ⇒ Object

Sends an RPC method call and returns the result.

Parameters:

  • method (String)

    RPC method name

  • params (Array) (defaults to: [])

    method parameters

Returns:

  • (Object)

    decoded result

Raises:

  • (NotImplementedError)


36
37
38
# File 'lib/surrealdb/connections/base.rb', line 36

def send_request(method, params = [])
  raise NotImplementedError
end

#supports_live_queries?Boolean

Whether this connection supports live queries.

Returns:

  • (Boolean)


47
48
49
# File 'lib/surrealdb/connections/base.rb', line 47

def supports_live_queries?
  false
end