Class: Attentive::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/attentive/message.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_message, params = {}) ⇒ Message

Returns a new instance of Message.



8
9
10
11
12
13
14
# File 'lib/attentive/message.rb', line 8

def initialize(original_message, params={})
  @original_message = original_message
  @text = original_message.to_s
  @contexts = Set.new(params.fetch(:contexts, []))
  @contexts << :conversation if tokens.grep(Attentive::Tokens::Invocation).any?
  @contexts += Array(original_message.contexts) if original_message.respond_to?(:contexts)
end

Instance Attribute Details

#contextsObject (readonly)

Returns the value of attribute contexts.



6
7
8
# File 'lib/attentive/message.rb', line 6

def contexts
  @contexts
end

#original_messageObject (readonly)

Returns the value of attribute original_message.



6
7
8
# File 'lib/attentive/message.rb', line 6

def original_message
  @original_message
end

#textObject (readonly) Also known as: to_s

Returns the value of attribute text.



6
7
8
# File 'lib/attentive/message.rb', line 6

def text
  @text
end

Instance Method Details

#[](key) ⇒ Object



20
21
22
# File 'lib/attentive/message.rb', line 20

def [](key)
  tokens[key]
end

#[]=(key, value) ⇒ Object



24
25
26
# File 'lib/attentive/message.rb', line 24

def []=(key, value)
  tokens[key] = value
end

#inspectObject



34
35
36
# File 'lib/attentive/message.rb', line 34

def inspect
  tokens.inspect
end

#lengthObject



28
29
30
# File 'lib/attentive/message.rb', line 28

def length
  tokens.length
end

#tokensObject



16
17
18
# File 'lib/attentive/message.rb', line 16

def tokens
  @tokens ||= Attentive::Tokenizer.tokenize(text)
end