module Riffer::Messages::Converter
Module for converting hashes to message objects.
Included in Agent and Provider classes to handle message normalization.
Public Instance Methods
Source
# File lib/riffer/messages/converter.rb, line 33 def convert_to_file_part(file) return file if file.is_a?(Riffer::FilePart) unless file.is_a?(Hash) raise Riffer::ArgumentError, "File must be a Hash or FilePart object, got #{file.class}" end url = file[:url] || file["url"] data = file[:data] || file["data"] media_type = file[:media_type] || file["media_type"] filename = file[:filename] || file["filename"] if url Riffer::FilePart.from_url(url, media_type: media_type) elsif data && media_type Riffer::FilePart.new(data: data, media_type: media_type, filename: filename) else raise Riffer::ArgumentError, "File hash must include :url or :data with :media_type" end end
Converts a hash or FilePart object to a Riffer::FilePart.
Accepts: - +Riffer::FilePart+ objects (passed through) - +{url: “https://…”, media_type: “…”}+ (URL source) - +{data: “…”, media_type: “…”}+ (raw base64)
Raises Riffer::ArgumentError if the hash format is invalid.
: ((Hash[Symbol | String, untyped] | Riffer::FilePart)) -> Riffer::FilePart
Source
# File lib/riffer/messages/converter.rb, line 13 def convert_to_message_object(msg) return msg if msg.is_a?(Riffer::Messages::Base) unless msg.is_a?(Hash) raise Riffer::ArgumentError, "Message must be a Hash or Message object, got #{msg.class}" end convert_hash_to_message(msg) end
Converts a hash or message object to a Riffer::Messages::Base subclass.
Raises Riffer::ArgumentError if the message format is invalid.
: ((Hash[Symbol | String, untyped] | Riffer::Messages::Base)) -> Riffer::Messages::Base