Class: Lita::Handlers::Garfield

Inherits:
Handler
  • Object
show all
Defined in:
lib/lita/handlers/garfield.rb

Instance Method Summary collapse

Instance Method Details

#get_garfield_for_date(date, username) ⇒ Object



30
31
32
33
# File 'lib/lita/handlers/garfield.rb', line 30

def get_garfield_for_date(date, username)
  redis.set(username, date)
  "https://garfield.com/uploads/strips/#{date.year}-#{zero_prefix date.month}-#{zero_prefix date.day}.jpg"
end

#get_garfield_for_today(username) ⇒ Object



25
26
27
28
# File 'lib/lita/handlers/garfield.rb', line 25

def get_garfield_for_today(username)
  date = Date.today
  get_garfield_for_date(date, username)
end

#handle_default_garfield(response) ⇒ Object



49
50
51
# File 'lib/lita/handlers/garfield.rb', line 49

def handle_default_garfield(response)
  response.reply get_garfield_for_today response.user.name
end

#handle_first_garfield(response) ⇒ Object



53
54
55
56
# File 'lib/lita/handlers/garfield.rb', line 53

def handle_first_garfield(response)
  date = Date.civil(1978, 6, 19)
  response.reply get_garfield_for_date(date, response.user.name)
end

#handle_mdy_garfield(response) ⇒ Object



67
68
69
70
# File 'lib/lita/handlers/garfield.rb', line 67

def handle_mdy_garfield(response)
  date = Date.civil(response.match_data[3].to_i, response.match_data[1].to_i, response.match_data[2].to_i)
  response.reply get_garfield_for_date(date, response.user.name)
end

#handle_next_garfield(response) ⇒ Object



72
73
74
75
76
77
78
# File 'lib/lita/handlers/garfield.rb', line 72

def handle_next_garfield(response)
  date = Date.parse redis.get(response.user.name)
  unless date == Date.today
    date += 1
  end
  response.reply get_garfield_for_date(date, response.user.name)
end

#handle_prev_garfield(response) ⇒ Object



80
81
82
83
84
85
86
# File 'lib/lita/handlers/garfield.rb', line 80

def handle_prev_garfield(response)
  date = Date.parse redis.get(response.user.name)
  unless date == Date.civil(1978, 6, 19)
    date -= 1
  end
  response.reply get_garfield_for_date(date, response.user.name)
end

#handle_random_garfield(response) ⇒ Object



43
44
45
46
47
# File 'lib/lita/handlers/garfield.rb', line 43

def handle_random_garfield(response)
  # get a random date between 1978-06-19 and now
  date = rand(Date.civil(1978, 6, 19)..Date.today())
  response.reply get_garfield_for_date(date, response.user.name)
end

#handle_today_garfield(response) ⇒ Object



58
59
60
# File 'lib/lita/handlers/garfield.rb', line 58

def handle_today_garfield(response)
  response.reply get_garfield_for_today response.user.name
end

#handle_ymd_garfield(response) ⇒ Object



62
63
64
65
# File 'lib/lita/handlers/garfield.rb', line 62

def handle_ymd_garfield(response)
  date = Date.civil(response.match_data[1].to_i, response.match_data[2].to_i, response.match_data[3].to_i)
  response.reply get_garfield_for_date(date, response.user.name)
end

#zero_prefix(dat) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/lita/handlers/garfield.rb', line 35

def zero_prefix(dat)
  if dat.to_i < 10
    "0#{dat}"
  else
    dat
  end
end