class Attentive::Message

Attributes

contexts[R]
original_message[R]
text[R]
to_s[R]

Public Class Methods

new(original_message, params={}) click to toggle source
# 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

Public Instance Methods

[](key) click to toggle source
# File lib/attentive/message.rb, line 20
def [](key)
  tokens[key]
end
[]=(key, value) click to toggle source
# File lib/attentive/message.rb, line 24
def []=(key, value)
  tokens[key] = value
end
inspect() click to toggle source
# File lib/attentive/message.rb, line 34
def inspect
  tokens.inspect
end
length() click to toggle source
# File lib/attentive/message.rb, line 28
def length
  tokens.length
end
tokens() click to toggle source
# File lib/attentive/message.rb, line 16
def tokens
  @tokens ||= Attentive::Tokenizer.tokenize(text)
end