Module: Riffer::Messages::Converter
- Included in:
- Agent, Providers::Base
- Defined in:
- lib/riffer/messages/converter.rb
Overview
Module for converting hashes to message objects.
Included in Agent and Provider classes to handle message normalization.
Instance Method Summary collapse
-
#convert_to_file_part(file) ⇒ Object
Converts a hash or FilePart object to a Riffer::FilePart.
-
#convert_to_message_object(msg) ⇒ Object
Converts a hash or message object to a Riffer::Messages::Base subclass.
Instance Method Details
#convert_to_file_part(file) ⇒ Object
Converts a hash or FilePart object to a Riffer::FilePart.
Accepts:
-
Riffer::FilePartobjects (passed through) -
{url: "https://...", media_type: "..."}(URL source) -
{data: "...", media_type: "..."}(raw base64)
Raises Riffer::ArgumentError if the hash format is invalid.
– : ((Hash[Symbol, untyped] | Riffer::FilePart)) -> Riffer::FilePart
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/riffer/messages/converter.rb', line 35 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] data = file[:data] media_type = file[:media_type] 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 |
#convert_to_message_object(msg) ⇒ Object
Converts a hash or message object to a Riffer::Messages::Base subclass.
Raises Riffer::ArgumentError if the message format is invalid.
– : ((Hash[Symbol, untyped] | Riffer::Messages::Base)) -> Riffer::Messages::Base
14 15 16 17 18 19 20 21 22 |
# File 'lib/riffer/messages/converter.rb', line 14 def (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 (msg) end |