Module: Chatterbot::Helpers

Included in:
Bot
Defined in:
lib/chatterbot/helpers.rb

Overview

a bunch of helper routines for bots

Instance Method Summary collapse

Instance Method Details

#botnameObject

The name of the currently running bot


12
13
14
15
16
17
18
19
20
# File 'lib/chatterbot/helpers.rb', line 12

def botname
  if !@botname.nil?
    @botname
  elsif self.class < Bot
    self.class.to_s.downcase
  else
    File.basename($0,".rb")
  end
end

#botname=(b) ⇒ Object


6
7
8
# File 'lib/chatterbot/helpers.rb', line 6

def botname=(b)
  @botname = b
end

#from_user(s) ⇒ Object

Pull the username from a tweet hash – this is different depending on if we're doing a search, or parsing through replies/mentions.


25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/chatterbot/helpers.rb', line 25

def from_user(s)
  case s
  when Twitter::Tweet
    s.user.screen_name
  when Twitter::User
    s.screen_name
  when String
    s
  else
    s.has_key?(:from_user) ? s[:from_user] : s[:user][:screen_name]
  end
end

#replace_variables(txt, original = nil) ⇒ Object

do some simple variable substitution. for now, it only handles replacing #USER# with the screen of the incoming tweet, but it could do more if needed


53
54
55
56
57
58
59
60
# File 'lib/chatterbot/helpers.rb', line 53

def replace_variables(txt, original = nil)
  if ! original.nil? && txt.include?("#USER#")
    username = tweet_user(original)
    txt.gsub("#USER#", username)
  else
    txt
  end
end

#tweet_user(tweet) ⇒ Object

Take the incoming tweet/user name, and turn it into something suitable for replying to a user. Basically, get their handle and add a '@' to it.


42
43
44
45
# File 'lib/chatterbot/helpers.rb', line 42

def tweet_user(tweet)     
  base = from_user(tweet)
  base =~ /^@/ ? base : "@#{base}"
end