weese 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.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +6 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +28 -0
- data/LICENSE.txt +21 -0
- data/README.md +78 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/weese/bus/metro_bus.rb +68 -0
- data/lib/weese/bus/route.rb +604 -0
- data/lib/weese/bus/stop.rb +72 -0
- data/lib/weese/bus/urls.rb +17 -0
- data/lib/weese/deserialize.rb +19 -0
- data/lib/weese/location.rb +57 -0
- data/lib/weese/rail/line.rb +86 -0
- data/lib/weese/rail/metro_rail.rb +123 -0
- data/lib/weese/rail/station.rb +282 -0
- data/lib/weese/rail/urls.rb +23 -0
- data/lib/weese/requests.rb +68 -0
- data/lib/weese/version.rb +6 -0
- data/lib/weese.rb +18 -0
- data/weese.gemspec +41 -0
- metadata +141 -0
|
@@ -0,0 +1,604 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Weese
|
|
4
|
+
module Bus
|
|
5
|
+
# All MetroBus Routes
|
|
6
|
+
module Route
|
|
7
|
+
_10A = '10A' # A WMATA Route ID
|
|
8
|
+
_10B = '10B' # A WMATA Route ID
|
|
9
|
+
_10E = '10E' # A WMATA Route ID
|
|
10
|
+
_10N = '10N' # A WMATA Route ID
|
|
11
|
+
_11Y = '11Y' # A WMATA Route ID
|
|
12
|
+
_11Yv1 = '11Yv1' # A WMATA Route ID
|
|
13
|
+
_11Yv2 = '11Yv2' # A WMATA Route ID
|
|
14
|
+
_11Yv3 = '11Yv3' # A WMATA Route ID
|
|
15
|
+
_11Yv4 = '11Yv4' # A WMATA Route ID
|
|
16
|
+
_15K = '15K' # A WMATA Route ID
|
|
17
|
+
_15Kv1 = '15Kv1' # A WMATA Route ID
|
|
18
|
+
_16A = '16A' # A WMATA Route ID
|
|
19
|
+
_16C = '16C' # A WMATA Route ID
|
|
20
|
+
_16Cv1 = '16Cv1' # A WMATA Route ID
|
|
21
|
+
_16E = '16E' # A WMATA Route ID
|
|
22
|
+
_16G = '16G' # A WMATA Route ID
|
|
23
|
+
_16Gv1 = '16Gv1' # A WMATA Route ID
|
|
24
|
+
_16H = '16H' # A WMATA Route ID
|
|
25
|
+
_16L = '16L' # A WMATA Route ID
|
|
26
|
+
_16Y = '16Y' # A WMATA Route ID
|
|
27
|
+
_16Yv1 = '16Yv1' # A WMATA Route ID
|
|
28
|
+
_17B = '17B' # A WMATA Route ID
|
|
29
|
+
_17G = '17G' # A WMATA Route ID
|
|
30
|
+
_17H = '17H' # A WMATA Route ID
|
|
31
|
+
_17K = '17K' # A WMATA Route ID
|
|
32
|
+
_17L = '17L' # A WMATA Route ID
|
|
33
|
+
_17M = '17M' # A WMATA Route ID
|
|
34
|
+
_18G = '18G' # A WMATA Route ID
|
|
35
|
+
_18H = '18H' # A WMATA Route ID
|
|
36
|
+
_18J = '18J' # A WMATA Route ID
|
|
37
|
+
_18P = '18P' # A WMATA Route ID
|
|
38
|
+
_18Pv1 = '18Pv1' # A WMATA Route ID
|
|
39
|
+
_18Pv2 = '18Pv2' # A WMATA Route ID
|
|
40
|
+
_1A = '1A' # A WMATA Route ID
|
|
41
|
+
_1B = '1B' # A WMATA Route ID
|
|
42
|
+
_1C = '1C' # A WMATA Route ID
|
|
43
|
+
_1Cv1 = '1Cv1' # A WMATA Route ID
|
|
44
|
+
_1Cv2 = '1Cv2' # A WMATA Route ID
|
|
45
|
+
_1Cv3 = '1Cv3' # A WMATA Route ID
|
|
46
|
+
_1Cv4 = '1Cv4' # A WMATA Route ID
|
|
47
|
+
_21A = '21A' # A WMATA Route ID
|
|
48
|
+
_21D = '21D' # A WMATA Route ID
|
|
49
|
+
_22A = '22A' # A WMATA Route ID
|
|
50
|
+
_22Av1 = '22Av1' # A WMATA Route ID
|
|
51
|
+
_22C = '22C' # A WMATA Route ID
|
|
52
|
+
_22F = '22F' # A WMATA Route ID
|
|
53
|
+
_23A = '23A' # A WMATA Route ID
|
|
54
|
+
_23B = '23B' # A WMATA Route ID
|
|
55
|
+
_23Bv1 = '23Bv1' # A WMATA Route ID
|
|
56
|
+
_23T = '23T' # A WMATA Route ID
|
|
57
|
+
_25B = '25B' # A WMATA Route ID
|
|
58
|
+
_25Bv1 = '25Bv1' # A WMATA Route ID
|
|
59
|
+
_25Bv2 = '25Bv2' # A WMATA Route ID
|
|
60
|
+
_25Bv3 = '25Bv3' # A WMATA Route ID
|
|
61
|
+
_26A = '26A' # A WMATA Route ID
|
|
62
|
+
_28A = '28A' # A WMATA Route ID
|
|
63
|
+
_28Av1 = '28Av1' # A WMATA Route ID
|
|
64
|
+
_28F = '28F' # A WMATA Route ID
|
|
65
|
+
_28G = '28G' # A WMATA Route ID
|
|
66
|
+
_29C = '29C' # A WMATA Route ID
|
|
67
|
+
_29G = '29G' # A WMATA Route ID
|
|
68
|
+
_29K = '29K' # A WMATA Route ID
|
|
69
|
+
_29Kv1 = '29Kv1' # A WMATA Route ID
|
|
70
|
+
_29N = '29N' # A WMATA Route ID
|
|
71
|
+
_29Nv1 = '29Nv1' # A WMATA Route ID
|
|
72
|
+
_29W = '29W' # A WMATA Route ID
|
|
73
|
+
_2A = '2A' # A WMATA Route ID
|
|
74
|
+
_2B = '2B' # A WMATA Route ID
|
|
75
|
+
_2Bv1 = '2Bv1' # A WMATA Route ID
|
|
76
|
+
_2Bv2 = '2Bv2' # A WMATA Route ID
|
|
77
|
+
_2Bv3 = '2Bv3' # A WMATA Route ID
|
|
78
|
+
_30N = '30N' # A WMATA Route ID
|
|
79
|
+
_30S = '30S' # A WMATA Route ID
|
|
80
|
+
_31 = '31' # A WMATA Route ID
|
|
81
|
+
_32 = '32' # A WMATA Route ID
|
|
82
|
+
_32v1 = '32v1' # A WMATA Route ID
|
|
83
|
+
_33 = '33' # A WMATA Route ID
|
|
84
|
+
_34 = '34' # A WMATA Route ID
|
|
85
|
+
_36 = '36' # A WMATA Route ID
|
|
86
|
+
_37 = '37' # A WMATA Route ID
|
|
87
|
+
_38B = '38B' # A WMATA Route ID
|
|
88
|
+
_38Bv1 = '38Bv1' # A WMATA Route ID
|
|
89
|
+
_38Bv2 = '38Bv2' # A WMATA Route ID
|
|
90
|
+
_39 = '39' # A WMATA Route ID
|
|
91
|
+
_3A = '3A' # A WMATA Route ID
|
|
92
|
+
_3Av1 = '3Av1' # A WMATA Route ID
|
|
93
|
+
_3T = '3T' # A WMATA Route ID
|
|
94
|
+
_3Tv1 = '3Tv1' # A WMATA Route ID
|
|
95
|
+
_3Y = '3Y' # A WMATA Route ID
|
|
96
|
+
_42 = '42' # A WMATA Route ID
|
|
97
|
+
_43 = '43' # A WMATA Route ID
|
|
98
|
+
_4A = '4A' # A WMATA Route ID
|
|
99
|
+
_4B = '4B' # A WMATA Route ID
|
|
100
|
+
_52 = '52' # A WMATA Route ID
|
|
101
|
+
_52v1 = '52v1' # A WMATA Route ID
|
|
102
|
+
_52v2 = '52v2' # A WMATA Route ID
|
|
103
|
+
_52v3 = '52v3' # A WMATA Route ID
|
|
104
|
+
_54 = '54' # A WMATA Route ID
|
|
105
|
+
_54v1 = '54v1' # A WMATA Route ID
|
|
106
|
+
_59 = '59' # A WMATA Route ID
|
|
107
|
+
_5A = '5A' # A WMATA Route ID
|
|
108
|
+
_54v2 = '54v2' # A WMATA Route ID
|
|
109
|
+
_54v3 = '54v3' # A WMATA Route ID
|
|
110
|
+
_60 = '60' # A WMATA Route ID
|
|
111
|
+
_62 = '62' # A WMATA Route ID
|
|
112
|
+
_62v1 = '62v1' # A WMATA Route ID
|
|
113
|
+
_63 = '63' # A WMATA Route ID
|
|
114
|
+
_64 = '64' # A WMATA Route ID
|
|
115
|
+
_64v1 = '64v1' # A WMATA Route ID
|
|
116
|
+
_70 = '70' # A WMATA Route ID
|
|
117
|
+
_70v1 = '70v1' # A WMATA Route ID
|
|
118
|
+
_74 = '74' # A WMATA Route ID
|
|
119
|
+
_79 = '79' # A WMATA Route ID
|
|
120
|
+
_7A = '7A' # A WMATA Route ID
|
|
121
|
+
_7Av1 = '7Av1' # A WMATA Route ID
|
|
122
|
+
_7Av2 = '7Av2' # A WMATA Route ID
|
|
123
|
+
_7Av3 = '7Av3' # A WMATA Route ID
|
|
124
|
+
_7C = '7C' # A WMATA Route ID
|
|
125
|
+
_7F = '7F' # A WMATA Route ID
|
|
126
|
+
_7Fv1 = '7Fv1' # A WMATA Route ID
|
|
127
|
+
_7M = '7M' # A WMATA Route ID
|
|
128
|
+
_7Mv1 = '7Mv1' # A WMATA Route ID
|
|
129
|
+
_7P = '7P' # A WMATA Route ID
|
|
130
|
+
_7W = '7W' # A WMATA Route ID
|
|
131
|
+
_7Y = '7Y' # A WMATA Route ID
|
|
132
|
+
_7Yv1 = '7Yv1' # A WMATA Route ID
|
|
133
|
+
_80 = '80' # A WMATA Route ID
|
|
134
|
+
_80v1 = '80v1' # A WMATA Route ID
|
|
135
|
+
_80v2 = '80v2' # A WMATA Route ID
|
|
136
|
+
_80v3 = '80v3' # A WMATA Route ID
|
|
137
|
+
_83 = '83' # A WMATA Route ID
|
|
138
|
+
_83v1 = '83v1' # A WMATA Route ID
|
|
139
|
+
_83v2 = '83v2' # A WMATA Route ID
|
|
140
|
+
_83v3 = '83v3' # A WMATA Route ID
|
|
141
|
+
_83v4 = '83v4' # A WMATA Route ID
|
|
142
|
+
_86 = '86' # A WMATA Route ID
|
|
143
|
+
_86v1 = '86v1' # A WMATA Route ID
|
|
144
|
+
_86v2 = '86v2' # A WMATA Route ID
|
|
145
|
+
_87 = '87' # A WMATA Route ID
|
|
146
|
+
_87v1 = '87v1' # A WMATA Route ID
|
|
147
|
+
_87v2 = '87v2' # A WMATA Route ID
|
|
148
|
+
_87v3 = '87v3' # A WMATA Route ID
|
|
149
|
+
_87v4 = '87v4' # A WMATA Route ID
|
|
150
|
+
_87v5 = '87v5' # A WMATA Route ID
|
|
151
|
+
_89 = '89' # A WMATA Route ID
|
|
152
|
+
_89v1 = '89v1' # A WMATA Route ID
|
|
153
|
+
_89M = '89M' # A WMATA Route ID
|
|
154
|
+
_8S = '8S' # A WMATA Route ID
|
|
155
|
+
_8W = '8W' # A WMATA Route ID
|
|
156
|
+
_8Z = '8Z' # A WMATA Route ID
|
|
157
|
+
_90 = '90' # A WMATA Route ID
|
|
158
|
+
_90v1 = '90v1' # A WMATA Route ID
|
|
159
|
+
_90v2 = '90v2' # A WMATA Route ID
|
|
160
|
+
_92 = '92' # A WMATA Route ID
|
|
161
|
+
_92v1 = '92v1' # A WMATA Route ID
|
|
162
|
+
_92v2 = '92v2' # A WMATA Route ID
|
|
163
|
+
_96 = '96' # A WMATA Route ID
|
|
164
|
+
_96v1 = '96v1' # A WMATA Route ID
|
|
165
|
+
_96v2 = '96v2' # A WMATA Route ID
|
|
166
|
+
_96v3 = '96v3' # A WMATA Route ID
|
|
167
|
+
_96v4 = '96v4' # A WMATA Route ID
|
|
168
|
+
_96v5 = '96v5' # A WMATA Route ID
|
|
169
|
+
_97 = '97' # A WMATA Route ID
|
|
170
|
+
_97v1 = '97v1' # A WMATA Route ID
|
|
171
|
+
A12 = 'A12' # A WMATA Route ID
|
|
172
|
+
A12_V1 = 'A12v1' # A WMATA Route ID
|
|
173
|
+
A12_V2 = 'A12v2' # A WMATA Route ID
|
|
174
|
+
A12_V3 = 'A12v3' # A WMATA Route ID
|
|
175
|
+
A2 = 'A2' # A WMATA Route ID
|
|
176
|
+
A2_V1 = 'A2v1' # A WMATA Route ID
|
|
177
|
+
A2_V2 = 'A2v2' # A WMATA Route ID
|
|
178
|
+
A2_V3 = 'A2v3' # A WMATA Route ID
|
|
179
|
+
A31 = 'A31' # A WMATA Route ID
|
|
180
|
+
A32 = 'A32' # A WMATA Route ID
|
|
181
|
+
A33 = 'A33' # A WMATA Route ID
|
|
182
|
+
A4 = 'A4' # A WMATA Route ID
|
|
183
|
+
A4_V1 = 'A4v1' # A WMATA Route ID
|
|
184
|
+
A4_V2 = 'A4v2' # A WMATA Route ID
|
|
185
|
+
A4_V3 = 'A4v3' # A WMATA Route ID
|
|
186
|
+
A4_V4 = 'A4v4' # A WMATA Route ID
|
|
187
|
+
A4_V5 = 'A4v5' # A WMATA Route ID
|
|
188
|
+
A6 = 'A6' # A WMATA Route ID
|
|
189
|
+
A6_V1 = 'A6v1' # A WMATA Route ID
|
|
190
|
+
A7 = 'A7' # A WMATA Route ID
|
|
191
|
+
A8 = 'A8' # A WMATA Route ID
|
|
192
|
+
A8_V1 = 'A8v1' # A WMATA Route ID
|
|
193
|
+
A9 = 'A9' # A WMATA Route ID
|
|
194
|
+
B2 = 'B2' # A WMATA Route ID
|
|
195
|
+
B2_V1 = 'B2v1' # A WMATA Route ID
|
|
196
|
+
B2_V2 = 'B2v2' # A WMATA Route ID
|
|
197
|
+
B2_V3 = 'B2v3' # A WMATA Route ID
|
|
198
|
+
B2_V4 = 'B2v4' # A WMATA Route ID
|
|
199
|
+
B21 = 'B21' # A WMATA Route ID
|
|
200
|
+
B22 = 'B22' # A WMATA Route ID
|
|
201
|
+
B22_V1 = 'B22v1' # A WMATA Route ID
|
|
202
|
+
B24 = 'B24' # A WMATA Route ID
|
|
203
|
+
B24_V1 = 'B24v1' # A WMATA Route ID
|
|
204
|
+
B27 = 'B27' # A WMATA Route ID
|
|
205
|
+
B29 = 'B29' # A WMATA Route ID
|
|
206
|
+
B29_V1 = 'B29v1' # A WMATA Route ID
|
|
207
|
+
B29_V2 = 'B29v2' # A WMATA Route ID
|
|
208
|
+
B30 = 'B30' # A WMATA Route ID
|
|
209
|
+
B8 = 'B8' # A WMATA Route ID
|
|
210
|
+
B8_V1 = 'B8v1' # A WMATA Route ID
|
|
211
|
+
B8_V2 = 'B8v2' # A WMATA Route ID
|
|
212
|
+
B9 = 'B9' # A WMATA Route ID
|
|
213
|
+
B98 = 'B98' # A WMATA Route ID
|
|
214
|
+
B99 = 'B99' # A WMATA Route ID
|
|
215
|
+
C11 = 'C11' # A WMATA Route ID
|
|
216
|
+
C12 = 'C12' # A WMATA Route ID
|
|
217
|
+
C13 = 'C13' # A WMATA Route ID
|
|
218
|
+
C14 = 'C14' # A WMATA Route ID
|
|
219
|
+
C2 = 'C2' # A WMATA Route ID
|
|
220
|
+
C2_V1 = 'C2v1' # A WMATA Route ID
|
|
221
|
+
C2_V2 = 'C2v2' # A WMATA Route ID
|
|
222
|
+
C2_V3 = 'C2v3' # A WMATA Route ID
|
|
223
|
+
C21 = 'C21' # A WMATA Route ID
|
|
224
|
+
C21_V1 = 'C21v1' # A WMATA Route ID
|
|
225
|
+
C21_V2 = 'C21v2' # A WMATA Route ID
|
|
226
|
+
C22 = 'C22' # A WMATA Route ID
|
|
227
|
+
C22_V1 = 'C22v1' # A WMATA Route ID
|
|
228
|
+
C26 = 'C26' # A WMATA Route ID
|
|
229
|
+
C26_V1 = 'C26v1' # A WMATA Route ID
|
|
230
|
+
C28 = 'C28' # A WMATA Route ID
|
|
231
|
+
C28_V1 = 'C28v1' # A WMATA Route ID
|
|
232
|
+
C29 = 'C29' # A WMATA Route ID
|
|
233
|
+
C29_1 = 'C29*1' # A WMATA Route ID
|
|
234
|
+
C29_2 = 'C29*2' # A WMATA Route ID
|
|
235
|
+
C29_4 = 'C29*4' # A WMATA Route ID
|
|
236
|
+
C29_ = 'C29/' # A WMATA Route ID
|
|
237
|
+
C290 = 'C290' # A WMATA Route ID
|
|
238
|
+
C4 = 'C4' # A WMATA Route ID
|
|
239
|
+
C4_V1 = 'C4v1' # A WMATA Route ID
|
|
240
|
+
C4_V2 = 'C4v2' # A WMATA Route ID
|
|
241
|
+
C4_V3 = 'C4v3' # A WMATA Route ID
|
|
242
|
+
C8 = 'C8' # A WMATA Route ID
|
|
243
|
+
C8_V1 = 'C8v1' # A WMATA Route ID
|
|
244
|
+
C8_V2 = 'C8v2' # A WMATA Route ID
|
|
245
|
+
C8_V3 = 'C8v3' # A WMATA Route ID
|
|
246
|
+
D1 = 'D1' # A WMATA Route ID
|
|
247
|
+
D12 = 'D12' # A WMATA Route ID
|
|
248
|
+
D12_V1 = 'D12v1' # A WMATA Route ID
|
|
249
|
+
D12_V2 = 'D12v2' # A WMATA Route ID
|
|
250
|
+
D13 = 'D13' # A WMATA Route ID
|
|
251
|
+
D13_V1 = 'D13v1' # A WMATA Route ID
|
|
252
|
+
D14 = 'D14' # A WMATA Route ID
|
|
253
|
+
D14_V1 = 'D14v1' # A WMATA Route ID
|
|
254
|
+
D14_V2 = 'D14v2' # A WMATA Route ID
|
|
255
|
+
D2 = 'D2' # A WMATA Route ID
|
|
256
|
+
D2_V1 = 'D2v1' # A WMATA Route ID
|
|
257
|
+
D31 = 'D31' # A WMATA Route ID
|
|
258
|
+
D32 = 'D32' # A WMATA Route ID
|
|
259
|
+
D33 = 'D33' # A WMATA Route ID
|
|
260
|
+
D34 = 'D34' # A WMATA Route ID
|
|
261
|
+
D4 = 'D4' # A WMATA Route ID
|
|
262
|
+
D4_V1 = 'D4v1' # A WMATA Route ID
|
|
263
|
+
D4_V2 = 'D4v2' # A WMATA Route ID
|
|
264
|
+
D5 = 'D5' # A WMATA Route ID
|
|
265
|
+
D51 = 'D51' # A WMATA Route ID
|
|
266
|
+
D6 = 'D6' # A WMATA Route ID
|
|
267
|
+
D6_V1 = 'D6v1' # A WMATA Route ID
|
|
268
|
+
D6_V2 = 'D6v2' # A WMATA Route ID
|
|
269
|
+
D6_V3 = 'D6v3' # A WMATA Route ID
|
|
270
|
+
D8 = 'D8' # A WMATA Route ID
|
|
271
|
+
D8_V1 = 'D8v1' # A WMATA Route ID
|
|
272
|
+
E2 = 'E2' # A WMATA Route ID
|
|
273
|
+
E4 = 'E4' # A WMATA Route ID
|
|
274
|
+
E4_V1 = 'E4v1' # A WMATA Route ID
|
|
275
|
+
E4_V2 = 'E4v2' # A WMATA Route ID
|
|
276
|
+
E6 = 'E6' # A WMATA Route ID
|
|
277
|
+
F1 = 'F1' # A WMATA Route ID
|
|
278
|
+
F12 = 'F12' # A WMATA Route ID
|
|
279
|
+
F12_V1 = 'F12v1' # A WMATA Route ID
|
|
280
|
+
F13 = 'F13' # A WMATA Route ID
|
|
281
|
+
F13_V1 = 'F13v1' # A WMATA Route ID
|
|
282
|
+
F13_V2 = 'F13v2' # A WMATA Route ID
|
|
283
|
+
F13_V3 = 'F13v3' # A WMATA Route ID
|
|
284
|
+
F14 = 'F14' # A WMATA Route ID
|
|
285
|
+
F14_V1 = 'F14v1' # A WMATA Route ID
|
|
286
|
+
F2 = 'F2' # A WMATA Route ID
|
|
287
|
+
F2_V1 = 'F2v1' # A WMATA Route ID
|
|
288
|
+
F2_V2 = 'F2v2' # A WMATA Route ID
|
|
289
|
+
F4 = 'F4' # A WMATA Route ID
|
|
290
|
+
F4_V1 = 'F4v1' # A WMATA Route ID
|
|
291
|
+
F4_V2 = 'F4v2' # A WMATA Route ID
|
|
292
|
+
F6 = 'F6' # A WMATA Route ID
|
|
293
|
+
F6_V1 = 'F6v1' # A WMATA Route ID
|
|
294
|
+
F6_V2 = 'F6v2' # A WMATA Route ID
|
|
295
|
+
F8 = 'F8' # A WMATA Route ID
|
|
296
|
+
F99 = 'F99' # A WMATA Route ID
|
|
297
|
+
G12 = 'G12' # A WMATA Route ID
|
|
298
|
+
G12_V1 = 'G12v1' # A WMATA Route ID
|
|
299
|
+
G12_V2 = 'G12v2' # A WMATA Route ID
|
|
300
|
+
G14 = 'G14' # A WMATA Route ID
|
|
301
|
+
G14_V1 = 'G14v1' # A WMATA Route ID
|
|
302
|
+
G14_V2 = 'G14v2' # A WMATA Route ID
|
|
303
|
+
G2 = 'G2' # A WMATA Route ID
|
|
304
|
+
G2_V1 = 'G2v1' # A WMATA Route ID
|
|
305
|
+
G8 = 'G8' # A WMATA Route ID
|
|
306
|
+
G8_V1 = 'G8v1' # A WMATA Route ID
|
|
307
|
+
G8_V2 = 'G8v2' # A WMATA Route ID
|
|
308
|
+
G8_V3 = 'G8v3' # A WMATA Route ID
|
|
309
|
+
G9 = 'G9' # A WMATA Route ID
|
|
310
|
+
G9_V1 = 'G9v1' # A WMATA Route ID
|
|
311
|
+
H1 = 'H1' # A WMATA Route ID
|
|
312
|
+
H11 = 'H11' # A WMATA Route ID
|
|
313
|
+
H12 = 'H12' # A WMATA Route ID
|
|
314
|
+
H12_V1 = 'H12v1' # A WMATA Route ID
|
|
315
|
+
H13 = 'H13' # A WMATA Route ID
|
|
316
|
+
H2 = 'H2' # A WMATA Route ID
|
|
317
|
+
H3 = 'H3' # A WMATA Route ID
|
|
318
|
+
H4 = 'H4' # A WMATA Route ID
|
|
319
|
+
H4_V1 = 'H4v1' # A WMATA Route ID
|
|
320
|
+
H6 = 'H6' # A WMATA Route ID
|
|
321
|
+
H6_V1 = 'H6v1' # A WMATA Route ID
|
|
322
|
+
H8 = 'H8' # A WMATA Route ID
|
|
323
|
+
H9 = 'H9' # A WMATA Route ID
|
|
324
|
+
J1 = 'J1' # A WMATA Route ID
|
|
325
|
+
J1_V1 = 'J1v1' # A WMATA Route ID
|
|
326
|
+
J12 = 'J12' # A WMATA Route ID
|
|
327
|
+
J12_V1 = 'J12v1' # A WMATA Route ID
|
|
328
|
+
J2 = 'J2' # A WMATA Route ID
|
|
329
|
+
J2_V1 = 'J2v1' # A WMATA Route ID
|
|
330
|
+
J2_V2 = 'J2v2' # A WMATA Route ID
|
|
331
|
+
J4 = 'J4' # A WMATA Route ID
|
|
332
|
+
K12 = 'K12' # A WMATA Route ID
|
|
333
|
+
K12_V1 = 'K12v1' # A WMATA Route ID
|
|
334
|
+
K12_V2 = 'K12v2' # A WMATA Route ID
|
|
335
|
+
K2 = 'K2' # A WMATA Route ID
|
|
336
|
+
K6 = 'K6' # A WMATA Route ID
|
|
337
|
+
K6_V1 = 'K6v1' # A WMATA Route ID
|
|
338
|
+
K9 = 'K9' # A WMATA Route ID
|
|
339
|
+
K9_V1 = 'K9v1' # A WMATA Route ID
|
|
340
|
+
L1 = 'L1' # A WMATA Route ID
|
|
341
|
+
L2 = 'L2' # A WMATA Route ID
|
|
342
|
+
L2_V1 = 'L2v1' # A WMATA Route ID
|
|
343
|
+
L2_V2 = 'L2v2' # A WMATA Route ID
|
|
344
|
+
L99 = 'L99' # A WMATA Route ID
|
|
345
|
+
L8 = 'L8' # A WMATA Route ID
|
|
346
|
+
M4 = 'M4' # A WMATA Route ID
|
|
347
|
+
M4_V1 = 'M4v1' # A WMATA Route ID
|
|
348
|
+
M4_V2 = 'M4v2' # A WMATA Route ID
|
|
349
|
+
M6 = 'M6' # A WMATA Route ID
|
|
350
|
+
M6_V1 = 'M6v1' # A WMATA Route ID
|
|
351
|
+
MW1 = 'MW1' # A WMATA Route ID
|
|
352
|
+
M99 = 'M99' # A WMATA Route ID
|
|
353
|
+
N2 = 'N2' # A WMATA Route ID
|
|
354
|
+
N4 = 'N4' # A WMATA Route ID
|
|
355
|
+
N4_V1 = 'N4v1' # A WMATA Route ID
|
|
356
|
+
N6 = 'N6' # A WMATA Route ID
|
|
357
|
+
NH1 = 'NH1' # A WMATA Route ID
|
|
358
|
+
NH2 = 'NH2' # A WMATA Route ID
|
|
359
|
+
P12 = 'P12' # A WMATA Route ID
|
|
360
|
+
P12_V1 = 'P12v1' # A WMATA Route ID
|
|
361
|
+
P12_V2 = 'P12v2' # A WMATA Route ID
|
|
362
|
+
P18 = 'P18' # A WMATA Route ID
|
|
363
|
+
P19 = 'P19' # A WMATA Route ID
|
|
364
|
+
P6 = 'P6' # A WMATA Route ID
|
|
365
|
+
P6_V1 = 'P6v1' # A WMATA Route ID
|
|
366
|
+
P6_V2 = 'P6v2' # A WMATA Route ID
|
|
367
|
+
P6_V3 = 'P6v3' # A WMATA Route ID
|
|
368
|
+
P6_V4 = 'P6v4' # A WMATA Route ID
|
|
369
|
+
P99 = 'P99' # A WMATA Route ID
|
|
370
|
+
Q1 = 'Q1' # A WMATA Route ID
|
|
371
|
+
Q2 = 'Q2' # A WMATA Route ID
|
|
372
|
+
Q2_V1 = 'Q2v1' # A WMATA Route ID
|
|
373
|
+
Q2_V2 = 'Q2v2' # A WMATA Route ID
|
|
374
|
+
Q4 = 'Q4' # A WMATA Route ID
|
|
375
|
+
Q4_V1 = 'Q4v1' # A WMATA Route ID
|
|
376
|
+
Q5 = 'Q5' # A WMATA Route ID
|
|
377
|
+
Q6 = 'Q6' # A WMATA Route ID
|
|
378
|
+
Q6_V1 = 'Q6v1' # A WMATA Route ID
|
|
379
|
+
R1 = 'R1' # A WMATA Route ID
|
|
380
|
+
R12 = 'R12' # A WMATA Route ID
|
|
381
|
+
R12_V1 = 'R12v1' # A WMATA Route ID
|
|
382
|
+
R2 = 'R2' # A WMATA Route ID
|
|
383
|
+
R2_V1 = 'R2v1' # A WMATA Route ID
|
|
384
|
+
R2_V2 = 'R2v2' # A WMATA Route ID
|
|
385
|
+
R4 = 'R4' # A WMATA Route ID
|
|
386
|
+
REX = 'REX' # A WMATA Route ID
|
|
387
|
+
REX_V1 = 'REXv1' # A WMATA Route ID
|
|
388
|
+
REX_V2 = 'REXv2' # A WMATA Route ID
|
|
389
|
+
REX_V3 = 'REXv3' # A WMATA Route ID
|
|
390
|
+
REX_V4 = 'REXv4' # A WMATA Route ID
|
|
391
|
+
S1 = 'S1' # A WMATA Route ID
|
|
392
|
+
S2 = 'S2' # A WMATA Route ID
|
|
393
|
+
S2_V1 = 'S2v1' # A WMATA Route ID
|
|
394
|
+
S35 = 'S35' # A WMATA Route ID
|
|
395
|
+
S4 = 'S4' # A WMATA Route ID
|
|
396
|
+
S41 = 'S41' # A WMATA Route ID
|
|
397
|
+
S80 = 'S80' # A WMATA Route ID
|
|
398
|
+
S80_V1 = 'S80v1' # A WMATA Route ID
|
|
399
|
+
S80_V2 = 'S80v2' # A WMATA Route ID
|
|
400
|
+
S9 = 'S9' # A WMATA Route ID
|
|
401
|
+
S9_V1 = 'S9v1' # A WMATA Route ID
|
|
402
|
+
S91 = 'S91' # A WMATA Route ID
|
|
403
|
+
S91_V1 = 'S91v1' # A WMATA Route ID
|
|
404
|
+
SH99 = 'SH99' # A WMATA Route ID
|
|
405
|
+
T14 = 'T14' # A WMATA Route ID
|
|
406
|
+
T14_V1 = 'T14v1' # A WMATA Route ID
|
|
407
|
+
T18 = 'T18' # A WMATA Route ID
|
|
408
|
+
T18_V1 = 'T18v1' # A WMATA Route ID
|
|
409
|
+
T2 = 'T2' # A WMATA Route ID
|
|
410
|
+
U4 = 'U4' # A WMATA Route ID
|
|
411
|
+
U4_V1 = 'U4v1' # A WMATA Route ID
|
|
412
|
+
U4_V2 = 'U4v2' # A WMATA Route ID
|
|
413
|
+
U5 = 'U5' # A WMATA Route ID
|
|
414
|
+
U6 = 'U6' # A WMATA Route ID
|
|
415
|
+
U6_V1 = 'U6v1' # A WMATA Route ID
|
|
416
|
+
U6_V2 = 'U6v2' # A WMATA Route ID
|
|
417
|
+
U7 = 'U7' # A WMATA Route ID
|
|
418
|
+
U7_V1 = 'U7v1' # A WMATA Route ID
|
|
419
|
+
U7_V2 = 'U7v2' # A WMATA Route ID
|
|
420
|
+
U7_V3 = 'U7v3' # A WMATA Route ID
|
|
421
|
+
U7_V4 = 'U7v4' # A WMATA Route ID
|
|
422
|
+
V1 = 'V1' # A WMATA Route ID
|
|
423
|
+
V12 = 'V12' # A WMATA Route ID
|
|
424
|
+
V14 = 'V14' # A WMATA Route ID
|
|
425
|
+
V14_V1 = 'V14v1' # A WMATA Route ID
|
|
426
|
+
V2 = 'V2' # A WMATA Route ID
|
|
427
|
+
V2_V1 = 'V2v1' # A WMATA Route ID
|
|
428
|
+
V4 = 'V4' # A WMATA Route ID
|
|
429
|
+
V4_V1 = 'V4v1' # A WMATA Route ID
|
|
430
|
+
V7 = 'V7' # A WMATA Route ID
|
|
431
|
+
V8 = 'V8' # A WMATA Route ID
|
|
432
|
+
W1 = 'W1' # A WMATA Route ID
|
|
433
|
+
W14 = 'W14' # A WMATA Route ID
|
|
434
|
+
W14_V1 = 'W14v1' # A WMATA Route ID
|
|
435
|
+
W14_V2 = 'W14v2' # A WMATA Route ID
|
|
436
|
+
W2 = 'W2' # A WMATA Route ID
|
|
437
|
+
W2_V1 = 'W2v1' # A WMATA Route ID
|
|
438
|
+
W2_V2 = 'W2v2' # A WMATA Route ID
|
|
439
|
+
W2_V3 = 'W2v3' # A WMATA Route ID
|
|
440
|
+
W2_V4 = 'W2v4' # A WMATA Route ID
|
|
441
|
+
W2_V5 = 'W2v5' # A WMATA Route ID
|
|
442
|
+
W2_V6 = 'W2v6' # A WMATA Route ID
|
|
443
|
+
W2_V7 = 'W2v7' # A WMATA Route ID
|
|
444
|
+
W3 = 'W3' # A WMATA Route ID
|
|
445
|
+
W3_V1 = 'W3v1' # A WMATA Route ID
|
|
446
|
+
W4 = 'W4' # A WMATA Route ID
|
|
447
|
+
W4_V1 = 'W4v1' # A WMATA Route ID
|
|
448
|
+
W4_V2 = 'W4v2' # A WMATA Route ID
|
|
449
|
+
W45 = 'W45' # A WMATA Route ID
|
|
450
|
+
W47 = 'W47' # A WMATA Route ID
|
|
451
|
+
W5 = 'W5' # A WMATA Route ID
|
|
452
|
+
W6 = 'W6' # A WMATA Route ID
|
|
453
|
+
W6_V1 = 'W6v1' # A WMATA Route ID
|
|
454
|
+
W8 = 'W8' # A WMATA Route ID
|
|
455
|
+
W8_V1 = 'W8v1' # A WMATA Route ID
|
|
456
|
+
W8_V2 = 'W8v2' # A WMATA Route ID
|
|
457
|
+
X1 = 'X1' # A WMATA Route ID
|
|
458
|
+
X2 = 'X2' # A WMATA Route ID
|
|
459
|
+
X2_V1 = 'X2v1' # A WMATA Route ID
|
|
460
|
+
X2_V2 = 'X2v2' # A WMATA Route ID
|
|
461
|
+
X2_V3 = 'X2v3' # A WMATA Route ID
|
|
462
|
+
X3 = 'X3' # A WMATA Route ID
|
|
463
|
+
X3_V1 = 'X3v1' # A WMATA Route ID
|
|
464
|
+
X8 = 'X8' # A WMATA Route ID
|
|
465
|
+
X9 = 'X9' # A WMATA Route ID
|
|
466
|
+
X9_V1 = 'X9v1' # A WMATA Route ID
|
|
467
|
+
X9_V2 = 'X9v2' # A WMATA Route ID
|
|
468
|
+
Y2 = 'Y2' # A WMATA Route ID
|
|
469
|
+
Y7 = 'Y7' # A WMATA Route ID
|
|
470
|
+
Y8 = 'Y8' # A WMATA Route ID
|
|
471
|
+
Z11 = 'Z11' # A WMATA Route ID
|
|
472
|
+
Z11_V1 = 'Z11v1' # A WMATA Route ID
|
|
473
|
+
Z2 = 'Z2' # A WMATA Route ID
|
|
474
|
+
Z2_V1 = 'Z2v1' # A WMATA Route ID
|
|
475
|
+
Z2_V2 = 'Z2v2' # A WMATA Route ID
|
|
476
|
+
Z2_V3 = 'Z2v3' # A WMATA Route ID
|
|
477
|
+
Z6 = 'Z6' # A WMATA Route ID
|
|
478
|
+
Z6_V1 = 'Z6v1' # A WMATA Route ID
|
|
479
|
+
Z6_V2 = 'Z6v2' # A WMATA Route ID
|
|
480
|
+
Z7 = 'Z7' # A WMATA Route ID
|
|
481
|
+
Z7_V1 = 'Z7v1' # A WMATA Route ID
|
|
482
|
+
Z8 = 'Z8' # A WMATA Route ID
|
|
483
|
+
Z8_V1 = 'Z8v1' # A WMATA Route ID
|
|
484
|
+
Z8_V2 = 'Z8v2' # A WMATA Route ID
|
|
485
|
+
Z8_V3 = 'Z8v3' # A WMATA Route ID
|
|
486
|
+
Z8_V4 = 'Z8v4' # A WMATA Route ID
|
|
487
|
+
Z8_V5 = 'Z8v5' # A WMATA Route ID
|
|
488
|
+
Z8_V6 = 'Z8v6' # A WMATA Route ID
|
|
489
|
+
end
|
|
490
|
+
|
|
491
|
+
# These requests require a Route
|
|
492
|
+
module RequiresRoute
|
|
493
|
+
include Requests::Requester
|
|
494
|
+
|
|
495
|
+
#
|
|
496
|
+
# Bus positions for the given route at radius around coordinates
|
|
497
|
+
# {https://developer.wmata.com/docs/services/54763629281d83086473f231/operations/5476362a281d830c946a3d68 WMATA Documentation}
|
|
498
|
+
#
|
|
499
|
+
# @param [String] route A Route ID
|
|
500
|
+
# @param [RadiusAtCoordinates] radius_at_coordinates Radius in meters at a lat/long
|
|
501
|
+
|
|
502
|
+
# @raise [WeeseError] If request or JSON parse fails
|
|
503
|
+
#
|
|
504
|
+
# @return [Hash] JSON Response
|
|
505
|
+
#
|
|
506
|
+
def positions(route = nil, radius_at_coordinates = nil)
|
|
507
|
+
query = {}
|
|
508
|
+
|
|
509
|
+
query['Route'] = route if route
|
|
510
|
+
|
|
511
|
+
query.update(radius_at_coordinates.to_h) if radius_at_coordinates
|
|
512
|
+
|
|
513
|
+
fetch(
|
|
514
|
+
Requests::Request.new(
|
|
515
|
+
@api_key,
|
|
516
|
+
Bus::Urls::POSITIONS,
|
|
517
|
+
query
|
|
518
|
+
)
|
|
519
|
+
)
|
|
520
|
+
end
|
|
521
|
+
|
|
522
|
+
#
|
|
523
|
+
# Reported bus incidents/delays for a given route.
|
|
524
|
+
# {https://developer.wmata.com/docs/services/54763641281d83086473f232/operations/54763641281d830c946a3d75 WMATA Documentation}
|
|
525
|
+
#
|
|
526
|
+
# @param [String] route A Route ID
|
|
527
|
+
#
|
|
528
|
+
# @raise [WeeseError] If request or JSON parse fails
|
|
529
|
+
#
|
|
530
|
+
# @return [Hash] JSON Response
|
|
531
|
+
#
|
|
532
|
+
def incidents(route = nil)
|
|
533
|
+
query = {}
|
|
534
|
+
|
|
535
|
+
query['Route'] = route if route
|
|
536
|
+
|
|
537
|
+
fetch(
|
|
538
|
+
Requests::Request.new(
|
|
539
|
+
@api_key,
|
|
540
|
+
Bus::Urls::INCIDENTS,
|
|
541
|
+
query
|
|
542
|
+
)
|
|
543
|
+
)
|
|
544
|
+
end
|
|
545
|
+
|
|
546
|
+
#
|
|
547
|
+
# For an optional given date, returns the set of ordered latitude/longitude
|
|
548
|
+
# points along a route variant along with the list of stops served.
|
|
549
|
+
# {https://developer.wmata.com/docs/services/54763629281d83086473f231/operations/5476362a281d830c946a3d69 WMATA Documentation}
|
|
550
|
+
#
|
|
551
|
+
# @param [String] route A Route ID
|
|
552
|
+
# @param [Date] date A Date
|
|
553
|
+
#
|
|
554
|
+
# @raise [WeeseError] If request or JSON parse fails
|
|
555
|
+
#
|
|
556
|
+
# @return [Hash] JSON Response
|
|
557
|
+
#
|
|
558
|
+
def path(route, date = nil)
|
|
559
|
+
query = { 'RouteID': route }
|
|
560
|
+
|
|
561
|
+
query['Date'] = date.to_s if date
|
|
562
|
+
|
|
563
|
+
fetch(
|
|
564
|
+
Requests::Request.new(
|
|
565
|
+
@api_key,
|
|
566
|
+
Bus::Urls::PATH_DETAILS,
|
|
567
|
+
query
|
|
568
|
+
)
|
|
569
|
+
)
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
#
|
|
573
|
+
# Schedules for a given route variant for an optional given date.
|
|
574
|
+
# {https://developer.wmata.com/docs/services/54763629281d83086473f231/operations/5476362a281d830c946a3d6b}
|
|
575
|
+
#
|
|
576
|
+
# @note Date: Omit date for current date
|
|
577
|
+
# @note Variations: Whether or not to include variations if a base route is specified in Route. For example, if B30 is specified and IncludingVariations is set to true, data for all variations of B30 such as B30v1, B30v2, etc. will be returned.
|
|
578
|
+
#
|
|
579
|
+
# @param [String] route A Route ID
|
|
580
|
+
# @param [bool] including_variations If variations of Route should be included
|
|
581
|
+
# @param [Date] date Date of check schedule of
|
|
582
|
+
#
|
|
583
|
+
# @raise [WeeseError] If request or JSON parse fails
|
|
584
|
+
#
|
|
585
|
+
# @return [Hash] JSON Response
|
|
586
|
+
#
|
|
587
|
+
def route_schedule(route, including_variations, date = nil)
|
|
588
|
+
query = { 'RouteID': route }
|
|
589
|
+
|
|
590
|
+
query['IncludingVariations'] = including_variations if including_variations
|
|
591
|
+
|
|
592
|
+
query['Date'] = date.to_s if date
|
|
593
|
+
|
|
594
|
+
fetch(
|
|
595
|
+
Requests::Request.new(
|
|
596
|
+
@api_key,
|
|
597
|
+
Bus::Urls::ROUTE_SCHEDULE,
|
|
598
|
+
query
|
|
599
|
+
)
|
|
600
|
+
)
|
|
601
|
+
end
|
|
602
|
+
end
|
|
603
|
+
end
|
|
604
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'weese/bus/urls'
|
|
4
|
+
|
|
5
|
+
module Weese
|
|
6
|
+
module Bus
|
|
7
|
+
# A MetroBus stop.
|
|
8
|
+
class Stop
|
|
9
|
+
# @return [Integer] The WMATA Stop ID of this Stop
|
|
10
|
+
attr_accessor :id
|
|
11
|
+
|
|
12
|
+
#
|
|
13
|
+
# Create a Stop
|
|
14
|
+
#
|
|
15
|
+
# @param [Integer] id WMATA Stop ID
|
|
16
|
+
#
|
|
17
|
+
def initialize(id)
|
|
18
|
+
@id = id
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# These requests require a Stop
|
|
23
|
+
module RequiresStop
|
|
24
|
+
include Requests::Requester
|
|
25
|
+
|
|
26
|
+
#
|
|
27
|
+
# Next bus arrivals at a given stop.
|
|
28
|
+
# {https://developer.wmata.com/docs/services/5476365e031f590f38092508/operations/5476365e031f5909e4fe331d WMATA Documentation}
|
|
29
|
+
#
|
|
30
|
+
# @param [Stop] stop A Stop
|
|
31
|
+
#
|
|
32
|
+
# @raise [WeeseError] If request or JSON parse fails
|
|
33
|
+
#
|
|
34
|
+
# @return [Hash] JSON Response
|
|
35
|
+
#
|
|
36
|
+
def next_buses(stop)
|
|
37
|
+
fetch(
|
|
38
|
+
Requests::Request.new(
|
|
39
|
+
@api_key,
|
|
40
|
+
Bus::Urls::NEXT_BUSES,
|
|
41
|
+
StopID: stop.id
|
|
42
|
+
)
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
#
|
|
47
|
+
# Buses scheduled at a stop for an optional given date.
|
|
48
|
+
# {https://developer.wmata.com/docs/services/54763629281d83086473f231/operations/5476362a281d830c946a3d6c WMATA Documentation}
|
|
49
|
+
#
|
|
50
|
+
# @param [Stop] stop A Stop
|
|
51
|
+
# @param [Date] date An optional Date
|
|
52
|
+
#
|
|
53
|
+
# @raise [WeeseError] If request or JSON parse fails
|
|
54
|
+
#
|
|
55
|
+
# @return [Hash] JSON Response
|
|
56
|
+
#
|
|
57
|
+
def stop_schedule(stop, date = nil)
|
|
58
|
+
query = { StopID: stop.id }
|
|
59
|
+
|
|
60
|
+
query['Date'] = date.to_s if date
|
|
61
|
+
|
|
62
|
+
fetch(
|
|
63
|
+
Requests::Request.new(
|
|
64
|
+
@api_key,
|
|
65
|
+
Bus::Urls::STOP_SCHEDULE,
|
|
66
|
+
query
|
|
67
|
+
)
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Weese
|
|
4
|
+
module Bus
|
|
5
|
+
# URLs for MetroBus related endpoints
|
|
6
|
+
module Urls
|
|
7
|
+
ROUTES = 'HTTPS://api.wmata.com/Bus.svc/json/jRoutes' # A WMATA endpoint
|
|
8
|
+
STOPS = 'https://api.wmata.com/Bus.svc/json/jStops' # A WMATA endpoint
|
|
9
|
+
INCIDENTS = 'https://api.wmata.com/Incidents.svc/json/BusIncidents' # A WMATA endpoint
|
|
10
|
+
POSITIONS = 'https://api.wmata.com/Bus.svc/json/jBusPositions' # A WMATA endpoint
|
|
11
|
+
PATH_DETAILS = 'https://api.wmata.com/Bus.svc/json/jRouteDetails' # A WMATA endpoint
|
|
12
|
+
ROUTE_SCHEDULE = 'https://api.wmata.com/Bus.svc/json/jRouteSchedule' # A WMATA endpoint
|
|
13
|
+
NEXT_BUSES = 'https://api.wmata.com/NextBusService.svc/json/jPredictions' # A WMATA endpoint
|
|
14
|
+
STOP_SCHEDULE = 'https://api.wmata.com/Bus.svc/json/jStopSchedule' # A WMATA endpoint
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|