class Riffer::Skills::Frontmatter
Constants
- MAX_DESCRIPTION_LENGTH
- MAX_NAME_LENGTH
- NAME_PATTERN
Attributes
Public Class Methods
Source
# File lib/riffer/skills/frontmatter.rb, line 72 def initialize(name:, description:, disable_model_invocation: false, metadata: {}) validate_name!(name) validate_description!(description) @name = name.freeze @description = description.freeze @disable_model_invocation = (disable_model_invocation == true) @metadata = metadata.freeze end
Raises Riffer::ArgumentError if name or description is invalid.
Source
# File lib/riffer/skills/frontmatter.rb, line 23 def self.parse(raw) yaml, body = split_frontmatter(raw) raise Riffer::ArgumentError, "missing YAML frontmatter (expected --- delimiters)" if yaml.empty? [ new( name: yaml.delete(:name), description: yaml.delete(:description), disable_model_invocation: yaml.delete(:"disable-model-invocation"), metadata: yaml, ), body, ] end
Public so custom backends neednβt reimplement parsing. Raises Riffer::ArgumentError if the frontmatter is invalid.
Source
# File lib/riffer/skills/frontmatter.rb, line 41 def self.parse_frontmatter(raw) yaml, = split_frontmatter(raw) raise Riffer::ArgumentError, "missing YAML frontmatter (expected --- delimiters)" if yaml.empty? new( name: yaml.delete(:name), description: yaml.delete(:description), disable_model_invocation: yaml.delete(:"disable-model-invocation"), metadata: yaml, ) end
Raises Riffer::ArgumentError if the frontmatter is invalid.