Class: ActiveAgent::Providers::Common::Messages::Types::MessagesType

Inherits:
ActiveModel::Type::Value
  • Object
show all
Defined in:
lib/active_agent/providers/common/messages/_types.rb

Overview

Type for Messages array

Direct Known Subclasses

Responses::Types::MessagesType

Instance Method Summary collapse

Instance Method Details

#cast(value) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/active_agent/providers/common/messages/_types.rb', line 95

def cast(value)
  case value
  when Array
    messages = value.map { |v| message_type.cast(v) }.compact
    # Split messages with array content into separate messages
    messages.flat_map { |msg| split_content_blocks(msg) }
  when nil
    []
  else
    raise ArgumentError, "Cannot cast #{value.class} to Messages array"
  end
end

#deserialize(value) ⇒ Object



119
120
121
# File 'lib/active_agent/providers/common/messages/_types.rb', line 119

def deserialize(value)
  cast(value)
end

#serialize(value) ⇒ Object



108
109
110
111
112
113
114
115
116
117
# File 'lib/active_agent/providers/common/messages/_types.rb', line 108

def serialize(value)
  case value
  when Array
    value.map { |v| message_type.serialize(v) }.compact
  when nil
    []
  else
    raise ArgumentError, "Cannot serialize #{value.class}"
  end
end