Class: Manceps::Session
- Inherits:
-
Object
- Object
- Manceps::Session
- Defined in:
- lib/manceps/session.rb
Overview
Tracks MCP session state and protocol negotiation.
Instance Attribute Summary collapse
-
#capabilities ⇒ Object
readonly
Returns the value of attribute capabilities.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#protocol_version ⇒ Object
readonly
Returns the value of attribute protocol_version.
-
#server_info ⇒ Object
readonly
Returns the value of attribute server_info.
Instance Method Summary collapse
- #active? ⇒ Boolean
- #establish(response) ⇒ Object
-
#initialize ⇒ Session
constructor
A new instance of Session.
- #next_id ⇒ Object
- #reset ⇒ Object
- #server_supports?(capability) ⇒ Boolean
Constructor Details
#initialize ⇒ Session
Returns a new instance of Session.
8 9 10 |
# File 'lib/manceps/session.rb', line 8 def initialize reset end |
Instance Attribute Details
#capabilities ⇒ Object (readonly)
Returns the value of attribute capabilities.
6 7 8 |
# File 'lib/manceps/session.rb', line 6 def capabilities @capabilities end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
6 7 8 |
# File 'lib/manceps/session.rb', line 6 def id @id end |
#protocol_version ⇒ Object (readonly)
Returns the value of attribute protocol_version.
6 7 8 |
# File 'lib/manceps/session.rb', line 6 def protocol_version @protocol_version end |
#server_info ⇒ Object (readonly)
Returns the value of attribute server_info.
6 7 8 |
# File 'lib/manceps/session.rb', line 6 def server_info @server_info end |
Instance Method Details
#active? ⇒ Boolean
26 27 28 |
# File 'lib/manceps/session.rb', line 26 def active? @established end |
#establish(response) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/manceps/session.rb', line 16 def establish(response) result = response['result'] || response[:result] || {} @id = response['session_id'] || response['sessionId'] || response[:session_id] || response[:sessionId] @capabilities = result['capabilities'] || result[:capabilities] || {} @protocol_version = result['protocolVersion'] || result[:protocolVersion] @server_info = result['serverInfo'] || result[:serverInfo] @established = true end |
#next_id ⇒ Object
12 13 14 |
# File 'lib/manceps/session.rb', line 12 def next_id @request_counter += 1 end |
#reset ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/manceps/session.rb', line 34 def reset @id = nil @capabilities = {} @protocol_version = nil @server_info = nil @request_counter = 0 @established = false end |
#server_supports?(capability) ⇒ Boolean
30 31 32 |
# File 'lib/manceps/session.rb', line 30 def server_supports?(capability) capabilities.key?(capability.to_s) || capabilities.key?(capability.to_sym) end |