Class: Riffer::Messages::Base
- Inherits:
-
Object
- Object
- Riffer::Messages::Base
- Defined in:
- lib/riffer/messages/base.rb
Overview
Base class for all message types in the Riffer framework.
Subclasses must implement the role method.
Instance Attribute Summary collapse
-
#content ⇒ Object
readonly
The message content.
-
#id ⇒ Object
readonly
The message id, or nil when
Riffer.config.message_id_strategyis:none.
Instance Method Summary collapse
-
#initialize(content, id: nil) ⇒ Base
constructor
– : (String, ?id: String?) -> void.
-
#role ⇒ Object
Returns the message role.
-
#to_h ⇒ Object
Converts the message to a hash.
Constructor Details
#initialize(content, id: nil) ⇒ Base
– : (String, ?id: String?) -> void
18 19 20 21 |
# File 'lib/riffer/messages/base.rb', line 18 def initialize(content, id: nil) @content = content @id = id || generate_id end |
Instance Attribute Details
#content ⇒ Object (readonly)
The message content.
11 12 13 |
# File 'lib/riffer/messages/base.rb', line 11 def content @content end |
#id ⇒ Object (readonly)
The message id, or nil when Riffer.config.message_id_strategy is :none.
14 15 16 |
# File 'lib/riffer/messages/base.rb', line 14 def id @id end |
Instance Method Details
#role ⇒ Object
Returns the message role.
Raises NotImplementedError if not implemented by subclass.
– : () -> Symbol
39 40 41 |
# File 'lib/riffer/messages/base.rb', line 39 def role raise NotImplementedError, "Subclasses must implement #role" end |
#to_h ⇒ Object
Converts the message to a hash.
– : () -> Hash[Symbol, untyped]
27 28 29 30 31 |
# File 'lib/riffer/messages/base.rb', line 27 def to_h hash = {role: role, content: content} hash[:id] = id unless id.nil? hash end |