class HackerSays

Public Class Methods

new(name) click to toggle source
Calls superclass method Plugin::new
# File lib/plugins/hackersays.rb, line 6
def initialize name
    super
    self.handle(/^hackersays$/i) do |data|
        begin
            Timeout::timeout(2) {
                say_quote(data[:room])
            }
        rescue Timeout::Error
            data[:room].say("Request to hackersays.com timed out.")
        end
    end
end

Public Instance Methods

say_quote(room) click to toggle source
# File lib/plugins/hackersays.rb, line 19
def say_quote room
    quote = get_quote()
    if quote.nil?
        room.say "Could not fetch a quote. :-("
    else
        room.say "\u{201C}#{quote['c']}\u{201D} \u{2014} \002#{quote['a']}\002 \00315[Quote \##{quote['id']}]\003"
    end
end

Private Instance Methods

get_quote() click to toggle source
# File lib/plugins/hackersays.rb, line 30
def get_quote
    return JSON::load(open("http://hackersays.com/quote").read)
end