-
Notifications
You must be signed in to change notification settings - Fork 0
/
food_client.rb
52 lines (42 loc) · 1.18 KB
/
food_client.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class FoodClient
require 'json'
require 'yaml'
attr_accessor :restaurant_name
attr_accessor :restaurant_url
attr_accessor :menus
attr_accessor :date
def post_to_slack
webhook = ENV['FOOD_SLACK_URL']
menu_items = menus.any? ? menus.map { |n| "> #{n}" }.join("\n") : '> No menu available'
if ENV['FOOD_DEBUG']
puts "#{restaurant_name} #{restaurant_url}\n#{menu_items}"
else
data = {
text: "<#{restaurant_url}|#{restaurant_name}>\n" + menu_items
}
RestClient.post webhook, data.to_json, content_type: :json
end
end
def to_stdout
menu_items = menus.any? ? menus.map { |n| "> #{n}" }.join("\n") : '> No menu available'
if ENV['FOOD_DEBUG']
puts "#{restaurant_name} #{restaurant_url}\n#{menu_items}"
else
data = {
text: "<#{restaurant_url}|#{restaurant_name}>\n" + menu_items
}
puts data.to_yaml
end
end
def local_weekday
weekdays = %w[Sunnuntai Maanantai Tiistai Keskiviikko Torstai Perjantai Lauantai]
weekdays[date.wday]
end
def load_menus_with_rescue
load_menus
rescue StandardError => e
puts e.message
puts e.backtrace
@menus = [e.message]
end
end