Class: Textus::MCP::Session

Inherits:
Data
  • Object
show all
Defined in:
lib/textus/mcp/session.rb

Overview

Per-connection state held by the server. Immutable Data value; advance_cursor returns a new instance via #with.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#cursorObject (readonly)

Returns the value of attribute cursor

Returns:

  • (Object)

    the current value of cursor



5
6
7
# File 'lib/textus/mcp/session.rb', line 5

def cursor
  @cursor
end

#manifest_etagObject (readonly)

Returns the value of attribute manifest_etag

Returns:

  • (Object)

    the current value of manifest_etag



5
6
7
# File 'lib/textus/mcp/session.rb', line 5

def manifest_etag
  @manifest_etag
end

#propose_zoneObject (readonly)

Returns the value of attribute propose_zone

Returns:

  • (Object)

    the current value of propose_zone



5
6
7
# File 'lib/textus/mcp/session.rb', line 5

def propose_zone
  @propose_zone
end

#roleObject (readonly)

Returns the value of attribute role

Returns:

  • (Object)

    the current value of role



5
6
7
# File 'lib/textus/mcp/session.rb', line 5

def role
  @role
end

Instance Method Details

#advance_cursor(new_cursor) ⇒ Object



6
# File 'lib/textus/mcp/session.rb', line 6

def advance_cursor(new_cursor) = with(cursor: new_cursor)

#check_etag!(observed_etag) ⇒ Object

Raises:



8
9
10
11
12
13
14
# File 'lib/textus/mcp/session.rb', line 8

def check_etag!(observed_etag)
  return if observed_etag == manifest_etag

  raise ContractDrift.new(
    "manifest changed (was #{short_etag(manifest_etag)}, now #{short_etag(observed_etag)}); re-run boot",
  )
end