Module: DynamicMcp::Resources::ResourceGenerator
- Defined in:
- lib/dynamic_mcp/resources/resource_generator.rb
Class Method Summary collapse
Class Method Details
.define_resource(file) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/dynamic_mcp/resources/resource_generator.rb', line 26 def self.define_resource(file) parsed = FrontMatterParser::Parser.parse_file(file) klass = Class.new(FastMcp::Resource) do uri parsed.front_matter["uri"] resource_name parsed.front_matter["resource_name"] mime_type parsed.front_matter["mime_type"] @content = parsed.content def self.content @content end def content self.class.content end end klass end |
.generate(config) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/dynamic_mcp/resources/resource_generator.rb', line 7 def self.generate(config) resource_paths = config["dynamic_mcp"]["source_data"]["resources"] resource_files = resource_paths.flat_map { |path| ::DynamicMcp::Utilities::FileOps.get_all_files(config["server_root"], path) } resource_files.map do |file| ext = File.extname(file) if ext == ".rb" require file class_name = File.basename(file, ".rb").split('_').map(&:capitalize).join klass = Object.const_get(class_name) klass.ancestors.include?(FastMcp::Resource) ? klass : nil elsif ext == ".md" || ext == ".markdown" define_resource(file) end end end |