Class: RailsMcpServer::ResourceDownloader

Inherits:
ResourceBase show all
Defined in:
lib/rails-mcp-server/helpers/resource_downloader.rb

Defined Under Namespace

Classes: DownloadError

Instance Attribute Summary

Attributes inherited from ResourceBase

#config_dir, #manifest_file, #resource_folder, #resource_name

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_name, config_dir:, force: false, verbose: false) ⇒ ResourceDownloader

Returns a new instance of ResourceDownloader.



9
10
11
12
# File 'lib/rails-mcp-server/helpers/resource_downloader.rb', line 9

def initialize(resource_name, config_dir:, force: false, verbose: false)
  super
  load_config
end

Class Method Details

.available_resources(config_dir) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/rails-mcp-server/helpers/resource_downloader.rb', line 31

def self.available_resources(config_dir)
  config_file = File.join(File.dirname(__FILE__), "..", "..", "..", "config", "resources.yml")
  return [] unless File.exist?(config_file)

  YAML.load_file(config_file).keys
rescue => e
  warn "Failed to load resource configuration: #{e.message}"
  []
end

Instance Method Details

#downloadObject



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

def download
  setup_directories
  load_manifest

  log "Downloading #{@resource_name} resources..."

  results = {downloaded: 0, skipped: 0, failed: 0}

  @config["files"].each do |file|
    result = download_file(file)
    results[result] += 1
  end

  save_manifest
  results
end