Module: RubyConversations::Concerns::ConversationMessages

Extended by:
ActiveSupport::Concern
Included in:
RubyConversations::ConversationManager
Defined in:
lib/ruby_conversations/concerns/conversation_messages.rb

Overview

Handles message-related functionality for Conversation

Instance Method Summary collapse

Instance Method Details

#initialize_messages(message_attributes) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/ruby_conversations/concerns/conversation_messages.rb', line 12

def initialize_messages(message_attributes)
  (message_attributes || []).each do |msg_data|
    processed_prompts = process_message_prompts(msg_data)

    message_instance = RubyConversations::Message.new(msg_data.except('id', 'conversation_id', 'created_at',
                                                                      'updated_at'))
    message_instance.message_prompts = processed_prompts
    @messages << message_instance # Add to the messages array
  end
end

#with_prompt(name, description: nil, inputs: {}) ⇒ Object



29
30
31
32
33
# File 'lib/ruby_conversations/concerns/conversation_messages.rb', line 29

def with_prompt(name, description: nil, inputs: {})
  message = MessageBuilder.new(self).build_from_single_prompt(name, description: description, inputs: inputs)
  with_model(message)
  self
end

#with_prompts(prompt_inputs, description: nil) ⇒ Object



23
24
25
26
27
# File 'lib/ruby_conversations/concerns/conversation_messages.rb', line 23

def with_prompts(prompt_inputs, description: nil)
  message = MessageBuilder.new(self).build_from_multiple_prompts(prompt_inputs, description: description)
  with_model(message)
  self
end

#with_user_message(message, description: nil) ⇒ Object



35
36
37
38
# File 'lib/ruby_conversations/concerns/conversation_messages.rb', line 35

def with_user_message(message, description: nil)
  MessageBuilder.new(self).build_from_user_message(message, description: description)
  self
end