Skip to content

Commit 9a00406

Browse files
Rewrite extend self to class << self
1 parent 127f12f commit 9a00406

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
@@ -43,41 +43,41 @@ def initialize(method, capability)
4343
end
4444
end
4545

46-
extend self
46+
class << self
47+
def ensure_capability!(method, capabilities)
48+
case method
49+
when PROMPTS_GET, PROMPTS_LIST
50+
unless capabilities[:prompts]
51+
raise MissingRequiredCapabilityError.new(method, :prompts)
52+
end
53+
when RESOURCES_LIST, RESOURCES_TEMPLATES_LIST, RESOURCES_READ, RESOURCES_SUBSCRIBE, RESOURCES_UNSUBSCRIBE
54+
unless capabilities[:resources]
55+
raise MissingRequiredCapabilityError.new(method, :resources)
56+
end
4757

48-
def ensure_capability!(method, capabilities)
49-
case method
50-
when PROMPTS_GET, PROMPTS_LIST
51-
unless capabilities[:prompts]
52-
raise MissingRequiredCapabilityError.new(method, :prompts)
58+
if method == RESOURCES_SUBSCRIBE && !capabilities[:resources][:subscribe]
59+
raise MissingRequiredCapabilityError.new(method, :resources_subscribe)
60+
end
61+
when TOOLS_CALL, TOOLS_LIST
62+
unless capabilities[:tools]
63+
raise MissingRequiredCapabilityError.new(method, :tools)
64+
end
65+
when SAMPLING_CREATE_MESSAGE
66+
unless capabilities[:sampling]
67+
raise MissingRequiredCapabilityError.new(method, :sampling)
68+
end
69+
when COMPLETION_COMPLETE
70+
unless capabilities[:completions]
71+
raise MissingRequiredCapabilityError.new(method, :completions)
72+
end
73+
when LOGGING_SET_LEVEL
74+
# Logging is unsupported by the Server
75+
unless capabilities[:logging]
76+
raise MissingRequiredCapabilityError.new(method, :logging)
77+
end
78+
when INITIALIZE, PING
79+
# No specific capability required for initialize or ping
5380
end
54-
when RESOURCES_LIST, RESOURCES_TEMPLATES_LIST, RESOURCES_READ, RESOURCES_SUBSCRIBE, RESOURCES_UNSUBSCRIBE
55-
unless capabilities[:resources]
56-
raise MissingRequiredCapabilityError.new(method, :resources)
57-
end
58-
59-
if method == RESOURCES_SUBSCRIBE && !capabilities[:resources][:subscribe]
60-
raise MissingRequiredCapabilityError.new(method, :resources_subscribe)
61-
end
62-
when TOOLS_CALL, TOOLS_LIST
63-
unless capabilities[:tools]
64-
raise MissingRequiredCapabilityError.new(method, :tools)
65-
end
66-
when SAMPLING_CREATE_MESSAGE
67-
unless capabilities[:sampling]
68-
raise MissingRequiredCapabilityError.new(method, :sampling)
69-
end
70-
when COMPLETION_COMPLETE
71-
unless capabilities[:completions]
72-
raise MissingRequiredCapabilityError.new(method, :completions)
73-
end
74-
when LOGGING_SET_LEVEL
75-
# Logging is unsupported by the Server
76-
unless capabilities[:logging]
77-
raise MissingRequiredCapabilityError.new(method, :logging)
78-
end
79-
when INITIALIZE, PING
80-
# No specific capability required for initialize or ping
8181
end
8282
end
8383
end

0 commit comments

Comments
 (0)