Merge pull request #255 from koic/use_autoload_to_defer_loading_of_unused_subsystems
Use `autoload` to defer loading of unused subsystems
This commit is contained in:
commit
628e5203d5
11 changed files with 42 additions and 28 deletions
36
lib/mcp.rb
36
lib/mcp.rb
|
|
@ -1,38 +1,22 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "json_rpc_handler"
|
||||
require_relative "mcp/annotations"
|
||||
require_relative "mcp/configuration"
|
||||
require_relative "mcp/content"
|
||||
require_relative "mcp/icon"
|
||||
require_relative "mcp/instrumentation"
|
||||
require_relative "mcp/methods"
|
||||
require_relative "mcp/progress"
|
||||
require_relative "mcp/prompt"
|
||||
require_relative "mcp/prompt/argument"
|
||||
require_relative "mcp/prompt/message"
|
||||
require_relative "mcp/prompt/result"
|
||||
require_relative "mcp/resource"
|
||||
require_relative "mcp/resource/contents"
|
||||
require_relative "mcp/resource/embedded"
|
||||
require_relative "mcp/resource_template"
|
||||
require_relative "mcp/server"
|
||||
require_relative "mcp/server_context"
|
||||
require_relative "mcp/server/transports/streamable_http_transport"
|
||||
require_relative "mcp/server/transports/stdio_transport"
|
||||
require_relative "mcp/string_utils"
|
||||
require_relative "mcp/tool"
|
||||
require_relative "mcp/tool/input_schema"
|
||||
require_relative "mcp/tool/output_schema"
|
||||
require_relative "mcp/tool/response"
|
||||
require_relative "mcp/tool/annotations"
|
||||
require_relative "mcp/transport"
|
||||
require_relative "mcp/version"
|
||||
require_relative "mcp/client"
|
||||
require_relative "mcp/client/http"
|
||||
require_relative "mcp/client/tool"
|
||||
|
||||
module MCP
|
||||
autoload :Annotations, "mcp/annotations"
|
||||
autoload :Client, "mcp/client"
|
||||
autoload :Content, "mcp/content"
|
||||
autoload :Icon, "mcp/icon"
|
||||
autoload :Prompt, "mcp/prompt"
|
||||
autoload :Resource, "mcp/resource"
|
||||
autoload :ResourceTemplate, "mcp/resource_template"
|
||||
autoload :Server, "mcp/server"
|
||||
autoload :Tool, "mcp/tool"
|
||||
|
||||
class << self
|
||||
def configure
|
||||
yield(configuration)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "client/http"
|
||||
require_relative "client/tool"
|
||||
|
||||
module MCP
|
||||
class Client
|
||||
# Initializes a new MCP::Client instance.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "prompt/argument"
|
||||
require_relative "prompt/message"
|
||||
require_relative "prompt/result"
|
||||
|
||||
module MCP
|
||||
class Prompt
|
||||
class << self
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "resource/contents"
|
||||
require_relative "resource/embedded"
|
||||
|
||||
module MCP
|
||||
class Resource
|
||||
attr_reader :uri, :name, :title, :description, :icons, :mime_type
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@ require_relative "../json_rpc_handler"
|
|||
require_relative "instrumentation"
|
||||
require_relative "methods"
|
||||
require_relative "logging_message_notification"
|
||||
require_relative "progress"
|
||||
require_relative "server_context"
|
||||
require_relative "server/transports"
|
||||
|
||||
module MCP
|
||||
class ToolNotUnique < StandardError
|
||||
|
|
|
|||
10
lib/mcp/server/transports.rb
Normal file
10
lib/mcp/server/transports.rb
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module MCP
|
||||
class Server
|
||||
module Transports
|
||||
autoload :StdioTransport, "mcp/server/transports/stdio_transport"
|
||||
autoload :StreamableHTTPTransport, "mcp/server/transports/streamable_http_transport"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../../transport"
|
||||
require "json"
|
||||
require_relative "../../transport"
|
||||
|
||||
module MCP
|
||||
class Server
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../../transport"
|
||||
require "json"
|
||||
require "securerandom"
|
||||
require_relative "../../transport"
|
||||
|
||||
module MCP
|
||||
class Server
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "tool/annotations"
|
||||
require_relative "tool/input_schema"
|
||||
require_relative "tool/output_schema"
|
||||
require_relative "tool/response"
|
||||
|
||||
module MCP
|
||||
class Tool
|
||||
class << self
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "test_helper"
|
||||
require "mcp/instrumentation"
|
||||
|
||||
module MCP
|
||||
class InstrumentationTest < ActiveSupport::TestCase
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "test_helper"
|
||||
require "mcp/methods"
|
||||
|
||||
module MCP
|
||||
class MethodsTest < ActiveSupport::TestCase
|
||||
|
|
|
|||
Loading…
Reference in a new issue