Skip to content

Commit 8abae82

Browse files
committed
Define singleton method instead of extend self
1 parent 04710ac commit 8abae82

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

lib/mcp/methods.rb

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -32,41 +32,41 @@ def initialize(method, capability)
3232
end
3333
end
3434

35-
extend self
35+
class << self
36+
def ensure_capability!(method, capabilities)
37+
case method
38+
when PROMPTS_GET, PROMPTS_LIST
39+
unless capabilities[:prompts]
40+
raise MissingRequiredCapabilityError.new(method, :prompts)
41+
end
42+
when RESOURCES_LIST, RESOURCES_TEMPLATES_LIST, RESOURCES_READ, RESOURCES_SUBSCRIBE, RESOURCES_UNSUBSCRIBE
43+
unless capabilities[:resources]
44+
raise MissingRequiredCapabilityError.new(method, :resources)
45+
end
3646

37-
def ensure_capability!(method, capabilities)
38-
case method
39-
when PROMPTS_GET, PROMPTS_LIST
40-
unless capabilities[:prompts]
41-
raise MissingRequiredCapabilityError.new(method, :prompts)
47+
if method == RESOURCES_SUBSCRIBE && !capabilities[:resources][:subscribe]
48+
raise MissingRequiredCapabilityError.new(method, :resources_subscribe)
49+
end
50+
when TOOLS_CALL, TOOLS_LIST
51+
unless capabilities[:tools]
52+
raise MissingRequiredCapabilityError.new(method, :tools)
53+
end
54+
when SAMPLING_CREATE_MESSAGE
55+
unless capabilities[:sampling]
56+
raise MissingRequiredCapabilityError.new(method, :sampling)
57+
end
58+
when COMPLETION_COMPLETE
59+
unless capabilities[:completions]
60+
raise MissingRequiredCapabilityError.new(method, :completions)
61+
end
62+
when LOGGING_SET_LEVEL
63+
# Logging is unsupported by the Server
64+
unless capabilities[:logging]
65+
raise MissingRequiredCapabilityError.new(method, :logging)
66+
end
67+
when INITIALIZE, PING
68+
# No specific capability required for initialize or ping
4269
end
43-
when RESOURCES_LIST, RESOURCES_TEMPLATES_LIST, RESOURCES_READ, RESOURCES_SUBSCRIBE, RESOURCES_UNSUBSCRIBE
44-
unless capabilities[:resources]
45-
raise MissingRequiredCapabilityError.new(method, :resources)
46-
end
47-
48-
if method == RESOURCES_SUBSCRIBE && !capabilities[:resources][:subscribe]
49-
raise MissingRequiredCapabilityError.new(method, :resources_subscribe)
50-
end
51-
when TOOLS_CALL, TOOLS_LIST
52-
unless capabilities[:tools]
53-
raise MissingRequiredCapabilityError.new(method, :tools)
54-
end
55-
when SAMPLING_CREATE_MESSAGE
56-
unless capabilities[:sampling]
57-
raise MissingRequiredCapabilityError.new(method, :sampling)
58-
end
59-
when COMPLETION_COMPLETE
60-
unless capabilities[:completions]
61-
raise MissingRequiredCapabilityError.new(method, :completions)
62-
end
63-
when LOGGING_SET_LEVEL
64-
# Logging is unsupported by the Server
65-
unless capabilities[:logging]
66-
raise MissingRequiredCapabilityError.new(method, :logging)
67-
end
68-
when INITIALIZE, PING
69-
# No specific capability required for initialize or ping
7070
end
7171
end
7272
end

0 commit comments

Comments
 (0)