class Lita::Handlers::Xkcd
Public Instance Methods
xkcd_latest(response)
click to toggle source
# File lib/lita/handlers/xkcd.rb, line 12 def xkcd_latest(response) resp = http.get('https://xkcd.com/info.0.json') raise 'Not found' if resp.status == 404 response.reply print_comic(MultiJson.load(resp.body)) rescue response.reply error end
xkcd_num(response)
click to toggle source
# File lib/lita/handlers/xkcd.rb, line 22 def xkcd_num(response) comic_num = response.matches[0][0] response.reply load_comic(comic_num) rescue response.reply error end
xkcd_random(response)
click to toggle source
# File lib/lita/handlers/xkcd.rb, line 30 def xkcd_random(response) resp = http.get('https://xkcd.com/info.0.json') if resp.status == 200 obj = MultiJson.load(resp.body) comic_num = rand(obj['num'].to_i) + 1 else comic_num = 0 end response.reply load_comic(comic_num) rescue response.reply error end
Private Instance Methods
error()
click to toggle source
# File lib/lita/handlers/xkcd.rb, line 48 def error "Sorry, but there was a problem retrieving the comic." end
load_comic(comic_num)
click to toggle source
# File lib/lita/handlers/xkcd.rb, line 52 def load_comic(comic_num) resp = http.get("https://xkcd.com/#{comic_num}/info.0.json") if resp.status == 404 response.reply "Comic ##{comic_num} not found." return end print_comic MultiJson.load(resp.body) end
print_comic(comic)
click to toggle source
# File lib/lita/handlers/xkcd.rb, line 63 def print_comic(comic) ["#{comic['title']}: #{comic['alt']}", comic['img']] end