Sha256: 3ca00ccc48b3e5c87974411979b89cb4f2ac8d7bda11ce023a420f4764bedb38
Contents?: true
Size: 1.07 KB
Versions: 2
Compression:
Stored size: 1.07 KB
Contents
# A simple regex => response plugin. class Robut::Plugin::Sayings < Robut::Plugin::Base class << self # A list of arrays. The first element is a regex, the second is # the reply sent if the regex matches. After the first match, we # don't try to match any other sayings. Configuration looks like the following: # # [["you're the worst", "I know."], ["sucks", "You know something, you suck!" ]] # # All regex matches are case-insensitive. attr_accessor :sayings end self.sayings = [] # For each element in sayings, creates a regex out of the first # element, tries to match +message+ to it, and replies with the # second element if it found a match. Robut::Plugin::Sayings will # only respond once to each message, with the first match. def handle(time, sender_nick, message) # Tries to respond to any message sent to robut. if sent_to_me?(message) self.class.sayings.each do |saying| if words(message).join(' ').match(/#{saying.first}/i) reply(saying.last) return end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
robut-0.2.1 | lib/robut/plugin/sayings.rb |
robut-0.2.0 | lib/robut/plugin/sayings.rb |