Class: Lita::Handlers::OnewheelGarfield

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

Instance Method Summary collapse

Instance Method Details

#get_garfield_for_date(date, username) ⇒ Object



50
51
52
53
# File 'lib/lita/handlers/onewheel_garfield.rb', line 50

def get_garfield_for_date(date, username)
  redis.set(username, date)
  "https://d1ejxu6vysztl5.cloudfront.net/comics/garfield/#{date.year}/#{date.year}-#{zero_prefix date.month}-#{zero_prefix date.day}.gif"
end

#get_garfield_for_today(username) ⇒ Object



45
46
47
48
# File 'lib/lita/handlers/onewheel_garfield.rb', line 45

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

#handle_default_garfield(response) ⇒ Object



69
70
71
# File 'lib/lita/handlers/onewheel_garfield.rb', line 69

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

#handle_first_garfield(response) ⇒ Object



73
74
75
76
# File 'lib/lita/handlers/onewheel_garfield.rb', line 73

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



87
88
89
90
# File 'lib/lita/handlers/onewheel_garfield.rb', line 87

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



92
93
94
95
96
97
98
# File 'lib/lita/handlers/onewheel_garfield.rb', line 92

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



100
101
102
103
104
105
106
# File 'lib/lita/handlers/onewheel_garfield.rb', line 100

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



63
64
65
66
67
# File 'lib/lita/handlers/onewheel_garfield.rb', line 63

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



78
79
80
# File 'lib/lita/handlers/onewheel_garfield.rb', line 78

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

#handle_ymd_garfield(response) ⇒ Object



82
83
84
85
# File 'lib/lita/handlers/onewheel_garfield.rb', line 82

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



55
56
57
58
59
60
61
# File 'lib/lita/handlers/onewheel_garfield.rb', line 55

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