yalemenus 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/yalemenus.rb +96 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 873d28276939609f0fd2d1660869a92858c9af26acacd863edbee3b1baf8796d
4
+ data.tar.gz: c58ea796e98f9c008a9b46b50020b23e2677004297e304d3bc53b63f7dfce9a1
5
+ SHA512:
6
+ metadata.gz: 2a45e7f0428fc68d5abfde951eb07460c888da78dfaecec2dfd25240b352184547ce45ca0d0dcfacce7d32634aa04a1182c9e5336303b6a522f566e837b92dd1
7
+ data.tar.gz: 25b61c2877d8e007f31aad37d6f3091415b50a04c93d70b3153053f46358291a322026be360d231dd2785064e6a56eddd2ee44ef94e3e9f590a325fc104f0fcd
data/lib/yalemenus.rb ADDED
@@ -0,0 +1,96 @@
1
+ require "net/http"
2
+ require "uri"
3
+ require "json"
4
+ require "date"
5
+
6
+ class YaleMenus
7
+
8
+ @@API_ROOT = "https://api.yalemenus.com/"
9
+
10
+ class << self
11
+
12
+ def get(path, params = nil)
13
+ uri = URI(@@API_ROOT + path)
14
+ unless params.nil?
15
+ uri.query = URI.encode_www_form(params)
16
+ end
17
+
18
+ res = Net::HTTP.get_response(uri)
19
+ return JSON.parse(res.body)
20
+ end
21
+
22
+ def format_date(date)
23
+ if date.is_a? Date
24
+ return date.strftime('%Y-%m-%d')
25
+ end
26
+ return date
27
+ end
28
+
29
+ def status()
30
+ get("status")
31
+ end
32
+
33
+ def halls()
34
+ get("halls")
35
+ end
36
+
37
+ def hall(hall_id)
38
+ get("halls/#{hall_id}")
39
+ end
40
+
41
+ def hall_people(hall_id)
42
+ get("halls/#{hall_id}/people")
43
+ end
44
+
45
+ def hall_meals(hall_id, date: nil, start_date: nil, end_date: nil)
46
+ params = {}
47
+ unless date.nil?
48
+ params[:date] = format_date(date)
49
+ end
50
+ unless start_date.nil?
51
+ params[:start_date] = format_date(start_date)
52
+ end
53
+ unless end_date.nil?
54
+ params[:end_date] = format_date(end_date)
55
+ end
56
+ get("halls/#{hall_id}/meals", params)
57
+ end
58
+
59
+ def meal(meal_id)
60
+ get("meals/#{meal_id}")
61
+ end
62
+
63
+ def meal_items(meal_id)
64
+ get("meals/#{meal_id}/items")
65
+ end
66
+
67
+ def item(item_id)
68
+ get("items/#{item_id}")
69
+ end
70
+
71
+ def item_nutrition(item_id)
72
+ get("items/#{item_id}/nutrition")
73
+ end
74
+
75
+ def item_reviews(item_id)
76
+ get("items/#{item_id}/reviews")
77
+ end
78
+
79
+ def item_photos(item_id)
80
+ get("items/#{item_id}/photos")
81
+ end
82
+
83
+ def butteries
84
+ get("butteries")
85
+ end
86
+
87
+ def buttery(buttery_id)
88
+ get("butteries/#{buttery_id}")
89
+ end
90
+
91
+ def buttery_items(buttery_id)
92
+ get("butteries/#{buttery_id}/items")
93
+ end
94
+
95
+ end
96
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yalemenus
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Erik Boesen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-03-25 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple set of functions for easily fetching data from the Yale Menus
14
+ API.
15
+ email: me@erikboesen.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/yalemenus.rb
21
+ homepage: https://github.com/YaleMenus/yalemenus-ruby
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubygems_version: 3.1.6
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Easily retrieve data from the Yale Menus API
44
+ test_files: []