Module: RailsMcpServer::GuideLoaderTemplate

Overview

Template module that provides complete guide loading implementation Eliminates the need to implement load_specific_guide in each resource

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/rails-mcp-server/resources/guide_loader_template.rb', line 5

def self.included(base)
  # Ensure all required modules are included
  base.include GuideFrameworkContract unless base.included_modules.include?(GuideFrameworkContract)
  base.include GuideManifestOperations unless base.included_modules.include?(GuideManifestOperations)
  base.include GuideFileFinder unless base.included_modules.include?(GuideFileFinder)
  base.include GuideContentFormatter unless base.included_modules.include?(GuideContentFormatter)
  base.include GuideErrorHandler unless base.included_modules.include?(GuideErrorHandler)
end

Instance Method Details

#contentObject

Complete single guide content implementation



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rails-mcp-server/resources/guide_loader_template.rb', line 15

def content
  guide_name = params[:guide_name]

  begin
    manifest = load_manifest
  rescue => e
    return handle_manifest_error(e)
  end

  if !guide_name.nil? && !guide_name.strip.empty?
    log(:debug, "Loading #{framework_name} guide: #{guide_name}")
    load_specific_guide(guide_name, manifest)
  else
    log(:debug, "Provide a name for a #{framework_name} guide")
    "Provide a name for a #{framework_name} guide"
  end
end

#list_contentObject

Complete guides list implementation



34
35
36
37
38
39
40
41
42
43
# File 'lib/rails-mcp-server/resources/guide_loader_template.rb', line 34

def list_content
  begin
    manifest = load_manifest
  rescue => e
    return handle_manifest_error(e)
  end

  log(:debug, "Loading #{framework_name} guides...")
  format_guides_index(manifest)
end