Class: MCP::Resource
- Inherits:
-
Object
- Object
- MCP::Resource
- Defined in:
- lib/mcp/resource.rb,
lib/mcp/resource/contents.rb,
lib/mcp/resource/embedded.rb
Defined Under Namespace
Classes: BlobContents, Contents, Embedded, TextContents
Constant Summary collapse
- NOT_SET =
Object.new
Class Attribute Summary collapse
-
.annotations_value ⇒ Object
readonly
Returns the value of attribute annotations_value.
-
.description_value ⇒ Object
readonly
Returns the value of attribute description_value.
-
.icons_value ⇒ Object
readonly
Returns the value of attribute icons_value.
-
.meta_value ⇒ Object
readonly
Returns the value of attribute meta_value.
-
.mime_type_value ⇒ Object
readonly
Returns the value of attribute mime_type_value.
-
.size_value ⇒ Object
readonly
Returns the value of attribute size_value.
-
.title_value ⇒ Object
readonly
Returns the value of attribute title_value.
-
.uri_value ⇒ Object
readonly
Returns the value of attribute uri_value.
Instance Attribute Summary collapse
-
#annotations ⇒ Object
readonly
Returns the value of attribute annotations.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#icons ⇒ Object
readonly
Returns the value of attribute icons.
-
#meta ⇒ Object
readonly
Returns the value of attribute meta.
-
#mime_type ⇒ Object
readonly
Returns the value of attribute mime_type.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#size ⇒ Object
readonly
Returns the value of attribute size.
-
#title ⇒ Object
readonly
Returns the value of attribute title.
-
#uri ⇒ Object
readonly
Returns the value of attribute uri.
Class Method Summary collapse
- .annotations(value = NOT_SET) ⇒ Object
- .contents(server_context: nil) ⇒ Object
- .define(uri: nil, name: nil, title: nil, description: nil, icons: [], mime_type: nil, annotations: nil, size: nil, meta: nil, &block) ⇒ Object
- .description(value = NOT_SET) ⇒ Object
- .icons(value = NOT_SET) ⇒ Object
- .inherited(subclass) ⇒ Object
- .meta(value = NOT_SET) ⇒ Object
- .mime_type(value = NOT_SET) ⇒ Object
- .name_value ⇒ Object
- .resource_name(value = NOT_SET) ⇒ Object
- .size(value = NOT_SET) ⇒ Object
- .title(value = NOT_SET) ⇒ Object
- .to_h ⇒ Object
- .uri(value = NOT_SET) ⇒ Object
Instance Method Summary collapse
-
#initialize(uri:, name:, title: nil, description: nil, icons: [], mime_type: nil, annotations: nil, size: nil, meta: nil) ⇒ Resource
constructor
A new instance of Resource.
- #to_h ⇒ Object
Constructor Details
#initialize(uri:, name:, title: nil, description: nil, icons: [], mime_type: nil, annotations: nil, size: nil, meta: nil) ⇒ Resource
Returns a new instance of Resource.
145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/mcp/resource.rb', line 145 def initialize(uri:, name:, title: nil, description: nil, icons: [], mime_type: nil, annotations: nil, size: nil, meta: nil) @uri = uri @name = name @title = title @description = description @icons = icons @mime_type = mime_type @annotations = annotations @size = size @meta = end |
Class Attribute Details
.annotations_value ⇒ Object (readonly)
Returns the value of attribute annotations_value.
16 17 18 |
# File 'lib/mcp/resource.rb', line 16 def annotations_value @annotations_value end |
.description_value ⇒ Object (readonly)
Returns the value of attribute description_value.
13 14 15 |
# File 'lib/mcp/resource.rb', line 13 def description_value @description_value end |
.icons_value ⇒ Object (readonly)
Returns the value of attribute icons_value.
14 15 16 |
# File 'lib/mcp/resource.rb', line 14 def icons_value @icons_value end |
.meta_value ⇒ Object (readonly)
Returns the value of attribute meta_value.
18 19 20 |
# File 'lib/mcp/resource.rb', line 18 def @meta_value end |
.mime_type_value ⇒ Object (readonly)
Returns the value of attribute mime_type_value.
15 16 17 |
# File 'lib/mcp/resource.rb', line 15 def mime_type_value @mime_type_value end |
.size_value ⇒ Object (readonly)
Returns the value of attribute size_value.
17 18 19 |
# File 'lib/mcp/resource.rb', line 17 def size_value @size_value end |
.title_value ⇒ Object (readonly)
Returns the value of attribute title_value.
12 13 14 |
# File 'lib/mcp/resource.rb', line 12 def title_value @title_value end |
.uri_value ⇒ Object (readonly)
Returns the value of attribute uri_value.
11 12 13 |
# File 'lib/mcp/resource.rb', line 11 def uri_value @uri_value end |
Instance Attribute Details
#annotations ⇒ Object (readonly)
Returns the value of attribute annotations.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def annotations @annotations end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def description @description end |
#icons ⇒ Object (readonly)
Returns the value of attribute icons.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def icons @icons end |
#meta ⇒ Object (readonly)
Returns the value of attribute meta.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def @meta end |
#mime_type ⇒ Object (readonly)
Returns the value of attribute mime_type.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def mime_type @mime_type end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def name @name end |
#size ⇒ Object (readonly)
Returns the value of attribute size.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def size @size end |
#title ⇒ Object (readonly)
Returns the value of attribute title.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def title @title end |
#uri ⇒ Object (readonly)
Returns the value of attribute uri.
143 144 145 |
# File 'lib/mcp/resource.rb', line 143 def uri @uri end |
Class Method Details
.annotations(value = NOT_SET) ⇒ Object
103 104 105 106 107 108 109 |
# File 'lib/mcp/resource.rb', line 103 def annotations(value = NOT_SET) if value == NOT_SET @annotations_value else @annotations_value = value.is_a?(Annotations) ? value : Annotations.new(**value) end end |
.contents(server_context: nil) ⇒ Object
20 21 22 |
# File 'lib/mcp/resource.rb', line 20 def contents(server_context: nil) raise NotImplementedError, "Subclasses must implement contents" end |
.define(uri: nil, name: nil, title: nil, description: nil, icons: [], mime_type: nil, annotations: nil, size: nil, meta: nil, &block) ⇒ Object
127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/mcp/resource.rb', line 127 def define(uri: nil, name: nil, title: nil, description: nil, icons: [], mime_type: nil, annotations: nil, size: nil, meta: nil, &block) Class.new(self) do uri uri resource_name name title title description description icons icons mime_type mime_type self.annotations(annotations) if annotations size size define_singleton_method(:contents, &block) if block end end |
.description(value = NOT_SET) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/mcp/resource.rb', line 79 def description(value = NOT_SET) if value == NOT_SET @description_value else @description_value = value end end |
.icons(value = NOT_SET) ⇒ Object
87 88 89 90 91 92 93 |
# File 'lib/mcp/resource.rb', line 87 def icons(value = NOT_SET) if value == NOT_SET @icons_value else @icons_value = value end end |
.inherited(subclass) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/mcp/resource.rb', line 38 def inherited(subclass) super subclass.instance_variable_set(:@uri_value, nil) subclass.instance_variable_set(:@name_value, nil) subclass.instance_variable_set(:@title_value, nil) subclass.instance_variable_set(:@description_value, nil) subclass.instance_variable_set(:@icons_value, nil) subclass.instance_variable_set(:@mime_type_value, nil) subclass.instance_variable_set(:@annotations_value, nil) subclass.instance_variable_set(:@size_value, nil) subclass.instance_variable_set(:@meta_value, nil) end |
.meta(value = NOT_SET) ⇒ Object
119 120 121 122 123 124 125 |
# File 'lib/mcp/resource.rb', line 119 def (value = NOT_SET) if value == NOT_SET @meta_value else @meta_value = value end end |
.mime_type(value = NOT_SET) ⇒ Object
95 96 97 98 99 100 101 |
# File 'lib/mcp/resource.rb', line 95 def mime_type(value = NOT_SET) if value == NOT_SET @mime_type_value else @mime_type_value = value end end |
.name_value ⇒ Object
67 68 69 |
# File 'lib/mcp/resource.rb', line 67 def name_value @name_value || (name.nil? ? nil : StringUtils.handle_from_class_name(name)) end |
.resource_name(value = NOT_SET) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/mcp/resource.rb', line 59 def resource_name(value = NOT_SET) if value == NOT_SET name_value else @name_value = value end end |
.size(value = NOT_SET) ⇒ Object
111 112 113 114 115 116 117 |
# File 'lib/mcp/resource.rb', line 111 def size(value = NOT_SET) if value == NOT_SET @size_value else @size_value = value end end |
.title(value = NOT_SET) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/mcp/resource.rb', line 71 def title(value = NOT_SET) if value == NOT_SET @title_value else @title_value = value end end |
.to_h ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/mcp/resource.rb', line 24 def to_h { uri: uri_value, name: name_value, title: title_value, description: description_value, icons: icons_value&.then { |icons| icons.empty? ? nil : icons.map(&:to_h) }, mimeType: mime_type_value, annotations: annotations_value&.to_h, size: size_value, _meta: , }.compact end |
Instance Method Details
#to_h ⇒ Object
157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'lib/mcp/resource.rb', line 157 def to_h { uri: uri, name: name, title: title, description: description, icons: icons&.then { |icons| icons.empty? ? nil : icons.map(&:to_h) }, mimeType: mime_type, annotations: annotations&.to_h, size: size, _meta: , }.compact end |