mosTrack 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/lib/data/file.yml +466 -0
- data/lib/mosTrack.rb +64 -0
- data/lib/mosTrack/data.rb +27 -0
- data/lib/mosTrack/table.rb +74 -0
- data/lib/mosTrack/track.rb +56 -0
- data/lib/mosTrack/track_collection.rb +55 -0
- metadata +94 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 33cbb1d665d19691c855c827d14017699839bc8a
|
|
4
|
+
data.tar.gz: 91f0b3eb913365e058bbcef42674534ac840d5de
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: b4db4637c087499d56dc913c407d9c0bc4416d70e5646e928b4e0e4f48465683c2e4287b5e91f3e93f9ecdd3064438d1cbc7eec08d1ad02d40e9e42335f5f5c0
|
|
7
|
+
data.tar.gz: 424f988ffa5d2e2762007e905b5ffc0535876487459f83080aa1f4af13f162918499fe1e087ffc3d7a4ac43bee88afe04cba5c9c126c3fe7a38ac8183e9c0de7
|
data/lib/data/file.yml
ADDED
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
---
|
|
2
|
+
- :district:
|
|
3
|
+
- "район Выхино-Жулебино - YML"
|
|
4
|
+
:address: "Рязанский проспект, дом 82, корпус 4"
|
|
5
|
+
:helpPhone: "(495) 376-61-44"
|
|
6
|
+
:objectHasWifi: "нет"
|
|
7
|
+
- :district:
|
|
8
|
+
- "район Текстильщики"
|
|
9
|
+
:address: "Волгоградский проспект, дом 46/15, строение 1"
|
|
10
|
+
:helpPhone: "(499) 178-65-38"
|
|
11
|
+
:objectHasWifi: "нет"
|
|
12
|
+
- :district:
|
|
13
|
+
- "район Западное Дегунино"
|
|
14
|
+
:address: "Дегунинская улица, дом 18"
|
|
15
|
+
:helpPhone: "(499) 905-82-55"
|
|
16
|
+
:objectHasWifi: "нет"
|
|
17
|
+
- :district:
|
|
18
|
+
- "Таганский район"
|
|
19
|
+
:address: "Таганская улица, дом 40-42"
|
|
20
|
+
:helpPhone: "(495) 632-64-20"
|
|
21
|
+
:objectHasWifi: "да"
|
|
22
|
+
- :district:
|
|
23
|
+
- "Бабушкинский район"
|
|
24
|
+
:address: "Олонецкий проезд, дом 5"
|
|
25
|
+
:helpPhone: "(499) 798-03-85"
|
|
26
|
+
:objectHasWifi: "нет"
|
|
27
|
+
- :district:
|
|
28
|
+
- "район Измайлово"
|
|
29
|
+
:address: "аллея Большого Круга, дом 7"
|
|
30
|
+
:helpPhone: "(499) 166-61-19"
|
|
31
|
+
:objectHasWifi: "да"
|
|
32
|
+
- :district:
|
|
33
|
+
- "район Некрасовка"
|
|
34
|
+
:address: 1-я Вольская улица, дом 22, корпус 2
|
|
35
|
+
:helpPhone: "(499) 211-25-30"
|
|
36
|
+
:objectHasWifi: "нет"
|
|
37
|
+
- :district:
|
|
38
|
+
- "район Перово"
|
|
39
|
+
:address: "улица Лазо, дом 7, строение 2"
|
|
40
|
+
:helpPhone: "(495) 309-53-42"
|
|
41
|
+
:objectHasWifi: "да"
|
|
42
|
+
- :district:
|
|
43
|
+
- "район Савёлки"
|
|
44
|
+
:address: "город Зеленоград, корпус 509"
|
|
45
|
+
:helpPhone: "(499) 734-13-40"
|
|
46
|
+
:objectHasWifi: "нет"
|
|
47
|
+
- :district:
|
|
48
|
+
- "район Савёлки"
|
|
49
|
+
:address: "город Зеленоград, корпус 509"
|
|
50
|
+
:helpPhone: "(499) 734-13-40"
|
|
51
|
+
:objectHasWifi: "нет"
|
|
52
|
+
- :district:
|
|
53
|
+
- "район Восточный"
|
|
54
|
+
:address: "Западная улица, дом 16Б"
|
|
55
|
+
:helpPhone: "(499) 780-15-82"
|
|
56
|
+
:objectHasWifi: "да"
|
|
57
|
+
- :district:
|
|
58
|
+
- "район Вешняки"
|
|
59
|
+
:address: "улица Красный Казанец, дом 3А"
|
|
60
|
+
:helpPhone: "(499) 374-12-60"
|
|
61
|
+
:objectHasWifi: "нет"
|
|
62
|
+
- :district:
|
|
63
|
+
- "Южнопортовый район"
|
|
64
|
+
:address: 3-й Кожуховский проезд, дом 3А
|
|
65
|
+
:helpPhone: "(495) 710-19-94"
|
|
66
|
+
:objectHasWifi: "нет"
|
|
67
|
+
- :district:
|
|
68
|
+
- "район Южное Бутово"
|
|
69
|
+
:address: "Южнобутовская улица, дом 76, корпус 1"
|
|
70
|
+
:helpPhone: "(495) 715-80-54"
|
|
71
|
+
:objectHasWifi: "нет"
|
|
72
|
+
- :district:
|
|
73
|
+
- "район Чертаново Центральное"
|
|
74
|
+
:address: "улица Красного Маяка, дом 3Г"
|
|
75
|
+
:helpPhone: "(495) 389-27-36"
|
|
76
|
+
:objectHasWifi: "нет"
|
|
77
|
+
- :district:
|
|
78
|
+
- "район Филёвский Парк"
|
|
79
|
+
:address: "Новозаводская улица, дом 27"
|
|
80
|
+
:helpPhone: "(499) 749-86-64"
|
|
81
|
+
:objectHasWifi: "нет"
|
|
82
|
+
- :district:
|
|
83
|
+
- "район Выхино-Жулебино"
|
|
84
|
+
:address: "Жулебинский бульвар, дом 38"
|
|
85
|
+
:helpPhone: "(495) 704-00-31"
|
|
86
|
+
:objectHasWifi: "нет"
|
|
87
|
+
- :district:
|
|
88
|
+
- "Рязанский район"
|
|
89
|
+
:address: "улица Васильцовский Стан, дом 6"
|
|
90
|
+
:helpPhone: "(499) 754-13-67"
|
|
91
|
+
:objectHasWifi: "нет"
|
|
92
|
+
- :district:
|
|
93
|
+
- "район Выхино-Жулебино"
|
|
94
|
+
:address: "Лермонтовский проспект, дом 14, корпус 2"
|
|
95
|
+
:helpPhone: "(495) 705-61-96"
|
|
96
|
+
:objectHasWifi: "нет"
|
|
97
|
+
- :district:
|
|
98
|
+
- "район Свиблово"
|
|
99
|
+
:address: "Тенистый проезд, дом 2, строение 1"
|
|
100
|
+
:helpPhone:
|
|
101
|
+
:objectHasWifi: "нет"
|
|
102
|
+
- :district:
|
|
103
|
+
- "район Некрасовка"
|
|
104
|
+
:address: 2-я Вольская улица, дом 16, строение 1
|
|
105
|
+
:helpPhone: "(499) 211-25-79"
|
|
106
|
+
:objectHasWifi: "нет"
|
|
107
|
+
- :district:
|
|
108
|
+
- "район Кузьминки"
|
|
109
|
+
:address: "Есенинский бульвар, дом 9, корпус 2"
|
|
110
|
+
:helpPhone: "(499) 175-54-12"
|
|
111
|
+
:objectHasWifi: "нет"
|
|
112
|
+
- :district:
|
|
113
|
+
- "район Марьино"
|
|
114
|
+
:address: "улица Маршала Голованова, дом 9"
|
|
115
|
+
:helpPhone: "(495) 356-77-91"
|
|
116
|
+
:objectHasWifi: "нет"
|
|
117
|
+
- :district:
|
|
118
|
+
- "район Марьино"
|
|
119
|
+
:address: "Братиславская улица, дом 8, корпус 1"
|
|
120
|
+
:helpPhone: "(495) 349-19-90"
|
|
121
|
+
:objectHasWifi: "нет"
|
|
122
|
+
- :district:
|
|
123
|
+
- "район Царицыно"
|
|
124
|
+
:address: "Кавказский бульвар, дом 16, корпус 2"
|
|
125
|
+
:helpPhone: "(495) 325-41-11"
|
|
126
|
+
:objectHasWifi: "нет"
|
|
127
|
+
- :district:
|
|
128
|
+
- "район Гольяново"
|
|
129
|
+
:address: "Алтайская улица, дом 4"
|
|
130
|
+
:helpPhone: "(499) 166-61-19"
|
|
131
|
+
:objectHasWifi: "нет"
|
|
132
|
+
- :district:
|
|
133
|
+
- "район Чертаново Южное"
|
|
134
|
+
:address: "Варшавское шоссе, дом 156Б"
|
|
135
|
+
:helpPhone: "(495) 386-12-59"
|
|
136
|
+
:objectHasWifi: "нет"
|
|
137
|
+
- :district:
|
|
138
|
+
- "район Бибирево"
|
|
139
|
+
:address: "улица Корнейчука, дом 37А"
|
|
140
|
+
:helpPhone: "(499) 206-62-00"
|
|
141
|
+
:objectHasWifi: "нет"
|
|
142
|
+
- :district:
|
|
143
|
+
- "Академический район"
|
|
144
|
+
:address: "улица Кедрова, дом 11"
|
|
145
|
+
:helpPhone: "(499) 124-43-07"
|
|
146
|
+
:objectHasWifi: "нет"
|
|
147
|
+
- :district:
|
|
148
|
+
- "район Лианозово"
|
|
149
|
+
:address: "Новгородская улица, дом 12"
|
|
150
|
+
:helpPhone: "(499) 909-29-01"
|
|
151
|
+
:objectHasWifi: "нет"
|
|
152
|
+
- :district:
|
|
153
|
+
- "район Бибирево"
|
|
154
|
+
:address: "Белозерская улица, дом 15"
|
|
155
|
+
:helpPhone: "(499) 206-32-00"
|
|
156
|
+
:objectHasWifi: "нет"
|
|
157
|
+
- :district:
|
|
158
|
+
- "Академический район"
|
|
159
|
+
:address: "улица Дмитрия Ульянова, дом 35, строение 1"
|
|
160
|
+
:helpPhone: "(499) 125-31-62"
|
|
161
|
+
:objectHasWifi: "нет"
|
|
162
|
+
- :district:
|
|
163
|
+
- "Академический район"
|
|
164
|
+
:address: "улица Шверника, дом 17, корпус 2"
|
|
165
|
+
:helpPhone: "(499) 126-48-20"
|
|
166
|
+
:objectHasWifi: "нет"
|
|
167
|
+
- :district:
|
|
168
|
+
- "Бескудниковский район"
|
|
169
|
+
:address: "Бескудниковский переулок, дом 4А"
|
|
170
|
+
:helpPhone: "(495) 488-45-85"
|
|
171
|
+
:objectHasWifi: "нет"
|
|
172
|
+
- :district:
|
|
173
|
+
- "район Марьино"
|
|
174
|
+
:address: "улица Перерва, дом 36"
|
|
175
|
+
:helpPhone: "(495) 348-33-61"
|
|
176
|
+
:objectHasWifi: "нет"
|
|
177
|
+
- :district:
|
|
178
|
+
- "район Печатники"
|
|
179
|
+
:address: "улица Полбина, дом 72, строение 1"
|
|
180
|
+
:helpPhone: "(495) 354-90-29"
|
|
181
|
+
:objectHasWifi: "нет"
|
|
182
|
+
- :district:
|
|
183
|
+
- "район Люблино"
|
|
184
|
+
:address: "Цимлянская улица, дом 7, строение 1"
|
|
185
|
+
:helpPhone: "(495) 358-05-68"
|
|
186
|
+
:objectHasWifi: "нет"
|
|
187
|
+
- :district:
|
|
188
|
+
- "район Текстильщики"
|
|
189
|
+
:address: "Волжский бульвар, дом 6, корпус 3"
|
|
190
|
+
:helpPhone: "(499) 177-56-77"
|
|
191
|
+
:objectHasWifi: "нет"
|
|
192
|
+
- :district:
|
|
193
|
+
- "район Вешняки"
|
|
194
|
+
:address: "улица Юности, дом 2, строение 1"
|
|
195
|
+
:helpPhone: "(495) 367-36-81"
|
|
196
|
+
:objectHasWifi: "нет"
|
|
197
|
+
- :district:
|
|
198
|
+
- "район Богородское"
|
|
199
|
+
:address: "улица Богатырский Мост, дом 17А"
|
|
200
|
+
:helpPhone: "(499) 268-60-45"
|
|
201
|
+
:objectHasWifi: "нет"
|
|
202
|
+
- :district:
|
|
203
|
+
- "район Орехово-Борисово Южное"
|
|
204
|
+
:address: "Каширское шоссе, дом 116, корпус 3"
|
|
205
|
+
:helpPhone: "(495) 392-27-27"
|
|
206
|
+
:objectHasWifi: "нет"
|
|
207
|
+
- :district:
|
|
208
|
+
- "район Бибирево"
|
|
209
|
+
:address: "улица Корнейчука, дом 52А"
|
|
210
|
+
:helpPhone: "(499) 206-90-74"
|
|
211
|
+
:objectHasWifi: "нет"
|
|
212
|
+
- :district:
|
|
213
|
+
- "район Старое Крюково"
|
|
214
|
+
:address: "город Зеленоград, корпус 864"
|
|
215
|
+
:helpPhone: "(499) 729-81-82"
|
|
216
|
+
:objectHasWifi: "нет"
|
|
217
|
+
- :district:
|
|
218
|
+
- "район Сокол"
|
|
219
|
+
:address: "улица Сальвадора Альенде, дом 9"
|
|
220
|
+
:helpPhone: "(499) 198-04-81"
|
|
221
|
+
:objectHasWifi: "нет"
|
|
222
|
+
- :district:
|
|
223
|
+
- "район Якиманка"
|
|
224
|
+
:address: "улица Крымский Вал, дом 10"
|
|
225
|
+
:helpPhone: "(499) 238-33-96"
|
|
226
|
+
:objectHasWifi: "да"
|
|
227
|
+
- :district:
|
|
228
|
+
- "район Гольяново"
|
|
229
|
+
:address: "Курганская улица, дом 3"
|
|
230
|
+
:helpPhone: "(499) 268-60-16"
|
|
231
|
+
:objectHasWifi: "нет"
|
|
232
|
+
- :district:
|
|
233
|
+
- "район Сокольники"
|
|
234
|
+
:address: "улица Сокольнический Вал, дом 1, строение 1"
|
|
235
|
+
:helpPhone: "(499) 393-92-22"
|
|
236
|
+
:objectHasWifi: "да"
|
|
237
|
+
- :district:
|
|
238
|
+
- "район Бирюлёво Западное"
|
|
239
|
+
:address: "Востряковский проезд, дом 5Б"
|
|
240
|
+
:helpPhone: "(495) 383-84-56"
|
|
241
|
+
:objectHasWifi: "нет"
|
|
242
|
+
- :district:
|
|
243
|
+
- "район Косино-Ухтомский"
|
|
244
|
+
:address: "Лухмановская улица, дом 17"
|
|
245
|
+
:helpPhone:
|
|
246
|
+
:objectHasWifi: "нет"
|
|
247
|
+
- :district:
|
|
248
|
+
- "район Вешняки"
|
|
249
|
+
:address: "Вешняковская улица, дом 16"
|
|
250
|
+
:helpPhone: "(495) 309-53-42"
|
|
251
|
+
:objectHasWifi: "нет"
|
|
252
|
+
- :district:
|
|
253
|
+
- "район Измайлово"
|
|
254
|
+
:address: "Измайловский проезд, дом 3, корпус 1"
|
|
255
|
+
:helpPhone: "(495) 291-27-34"
|
|
256
|
+
:objectHasWifi: "нет"
|
|
257
|
+
- :district:
|
|
258
|
+
- "район Косино-Ухтомский"
|
|
259
|
+
:address: "Лухмановская улица, дом 17"
|
|
260
|
+
:helpPhone:
|
|
261
|
+
:objectHasWifi: "нет"
|
|
262
|
+
- :district:
|
|
263
|
+
- "Дмитровский район"
|
|
264
|
+
:address: "улица Софьи Ковалевской, дом 8А"
|
|
265
|
+
:helpPhone: "(495) 484-90-88"
|
|
266
|
+
:objectHasWifi: "нет"
|
|
267
|
+
- :district:
|
|
268
|
+
- "район Отрадное"
|
|
269
|
+
:address: "Олонецкая улица, дом 13"
|
|
270
|
+
:helpPhone: "(499) 202-17-40"
|
|
271
|
+
:objectHasWifi: "нет"
|
|
272
|
+
- :district:
|
|
273
|
+
- "район Новокосино"
|
|
274
|
+
:address: "Салтыковская улица, дом 33, корпус 1"
|
|
275
|
+
:helpPhone:
|
|
276
|
+
:objectHasWifi: "нет"
|
|
277
|
+
- :district:
|
|
278
|
+
- "Алексеевский район"
|
|
279
|
+
:address: "Новоалексеевская улица, дом 6"
|
|
280
|
+
:helpPhone: "(495) 687-54-12"
|
|
281
|
+
:objectHasWifi: "нет"
|
|
282
|
+
- :district:
|
|
283
|
+
- "район Якиманка"
|
|
284
|
+
:address: "улица Крымский Вал, дом 9, строение 1"
|
|
285
|
+
:helpPhone: "(495) 995-00-20"
|
|
286
|
+
:objectHasWifi: "да"
|
|
287
|
+
- :district:
|
|
288
|
+
- "Ломоносовский район"
|
|
289
|
+
:address: "улица Кравченко, дом 14, корпус 1"
|
|
290
|
+
:helpPhone: "(499) 138-38-28"
|
|
291
|
+
:objectHasWifi: "нет"
|
|
292
|
+
- :district:
|
|
293
|
+
- "район Силино"
|
|
294
|
+
:address: "город Зеленоград, корпус 1017"
|
|
295
|
+
:helpPhone: "(499) 731-25-12"
|
|
296
|
+
:objectHasWifi: "нет"
|
|
297
|
+
- :district:
|
|
298
|
+
- "район Северное Тушино"
|
|
299
|
+
:address: "улица Свободы, дом 56"
|
|
300
|
+
:helpPhone: "(495) 640-73-55"
|
|
301
|
+
:objectHasWifi: "да"
|
|
302
|
+
- :district:
|
|
303
|
+
- "район Преображенское"
|
|
304
|
+
:address: "Большая Черкизовская улица, дом 21, строение 1"
|
|
305
|
+
:helpPhone: "(499) 780-25-41"
|
|
306
|
+
:objectHasWifi: "нет"
|
|
307
|
+
- :district:
|
|
308
|
+
- "район Косино-Ухтомский"
|
|
309
|
+
:address: "Заозёрная улица, дом 19"
|
|
310
|
+
:helpPhone: "(495) 291-27-34"
|
|
311
|
+
:objectHasWifi: "нет"
|
|
312
|
+
- :district:
|
|
313
|
+
- "поселение Внуковское"
|
|
314
|
+
:address: "улица Авиаконструктора Петлякова, дом 17"
|
|
315
|
+
:helpPhone: "(495) 827-02-66"
|
|
316
|
+
:objectHasWifi: "нет"
|
|
317
|
+
- :district:
|
|
318
|
+
- "район Черёмушки"
|
|
319
|
+
:address: "Перекопская улица, дом 28"
|
|
320
|
+
:helpPhone: "(495) 332-64-22"
|
|
321
|
+
:objectHasWifi: "нет"
|
|
322
|
+
- :district:
|
|
323
|
+
- "Алтуфьевский район"
|
|
324
|
+
:address: "Бибиревская улица, дом 6, корпус 1"
|
|
325
|
+
:helpPhone: "(499) 901-87-81"
|
|
326
|
+
:objectHasWifi: "нет"
|
|
327
|
+
- :district:
|
|
328
|
+
- "район Очаково-Матвеевское"
|
|
329
|
+
:address: "Озёрная улица, дом 27, корпус 2"
|
|
330
|
+
:helpPhone: "(495) 430-74-06"
|
|
331
|
+
:objectHasWifi: "нет"
|
|
332
|
+
- :district:
|
|
333
|
+
- "район Тропарёво-Никулино"
|
|
334
|
+
:address: "улица Академика Анохина, дом 48"
|
|
335
|
+
:helpPhone: "(495) 438-67-00"
|
|
336
|
+
:objectHasWifi: "нет"
|
|
337
|
+
- :district:
|
|
338
|
+
- "район Бибирево"
|
|
339
|
+
:address: "Белозерская улица, дом 15"
|
|
340
|
+
:helpPhone: "(499) 206-32-00"
|
|
341
|
+
:objectHasWifi: "нет"
|
|
342
|
+
- :district:
|
|
343
|
+
- "район Выхино-Жулебино"
|
|
344
|
+
:address: "улица Академика Скрябина, дом 23, строение 2"
|
|
345
|
+
:helpPhone: "(495) 377-72-84"
|
|
346
|
+
:objectHasWifi: "нет"
|
|
347
|
+
- :district:
|
|
348
|
+
- "район Якиманка"
|
|
349
|
+
:address: "улица Крымский Вал, дом 9, строение 11"
|
|
350
|
+
:helpPhone: "(925) 504-62-21"
|
|
351
|
+
:objectHasWifi: "нет"
|
|
352
|
+
- :district:
|
|
353
|
+
- "район Преображенское"
|
|
354
|
+
:address: "набережная Шитова, дом 2, сооружение 1"
|
|
355
|
+
:helpPhone: "(495) 777-28-03"
|
|
356
|
+
:objectHasWifi: "нет"
|
|
357
|
+
- :district:
|
|
358
|
+
- "район Хамовники"
|
|
359
|
+
:address: "улица Лужники, дом 24, строение 11Ж"
|
|
360
|
+
:helpPhone: "(495) 780-08-08"
|
|
361
|
+
:objectHasWifi: "нет"
|
|
362
|
+
- :district:
|
|
363
|
+
- "район Крюково"
|
|
364
|
+
:address: "город Зеленоград, корпус 2001"
|
|
365
|
+
:helpPhone: "(499) 734-00-40"
|
|
366
|
+
:objectHasWifi: "нет"
|
|
367
|
+
- :district:
|
|
368
|
+
- "район Коптево"
|
|
369
|
+
:address: "Большая Академическая улица, дом 77А"
|
|
370
|
+
:helpPhone: "(495) 482-59-41"
|
|
371
|
+
:objectHasWifi: "нет"
|
|
372
|
+
- :district:
|
|
373
|
+
- "Ярославский район"
|
|
374
|
+
:address: "Федоскинская улица, дом 4"
|
|
375
|
+
:helpPhone: "(495) 732-98-74"
|
|
376
|
+
:objectHasWifi: "нет"
|
|
377
|
+
- :district:
|
|
378
|
+
- "район Савёлки"
|
|
379
|
+
:address: "город Зеленоград, корпус 529"
|
|
380
|
+
:helpPhone: "(499) 736-08-46"
|
|
381
|
+
:objectHasWifi: "нет"
|
|
382
|
+
- :district:
|
|
383
|
+
- "Академический район"
|
|
384
|
+
:address: "улица Шверника, дом 10, строение 1"
|
|
385
|
+
:helpPhone: "(499) 126-93-44"
|
|
386
|
+
:objectHasWifi: "нет"
|
|
387
|
+
- :district:
|
|
388
|
+
- "район Орехово-Борисово Южное"
|
|
389
|
+
:address: "Ясеневая улица, дом 8, корпус 2"
|
|
390
|
+
:helpPhone: "(495) 399-48-28"
|
|
391
|
+
:objectHasWifi: "нет"
|
|
392
|
+
- :district:
|
|
393
|
+
- "Басманный район"
|
|
394
|
+
:address: "Михалковская улица, дом 52"
|
|
395
|
+
:helpPhone: "(495) 601-46-73"
|
|
396
|
+
:objectHasWifi: "нет"
|
|
397
|
+
- :district:
|
|
398
|
+
- "Академический район"
|
|
399
|
+
:address: "Новочерёмушкинская улица, дом 3А, корпус 1"
|
|
400
|
+
:helpPhone: "(499) 126-04-48"
|
|
401
|
+
:objectHasWifi: "нет"
|
|
402
|
+
- :district:
|
|
403
|
+
- "район Силино"
|
|
404
|
+
:address: "город Зеленоград, корпус 1128"
|
|
405
|
+
:helpPhone: "(499) 732-25-43"
|
|
406
|
+
:objectHasWifi: "нет"
|
|
407
|
+
- :district:
|
|
408
|
+
- "район Орехово-Борисово Южное"
|
|
409
|
+
:address: "Шипиловский проезд, дом 73"
|
|
410
|
+
:helpPhone: "(495) 398-88-54"
|
|
411
|
+
:objectHasWifi: "нет"
|
|
412
|
+
- :district:
|
|
413
|
+
- "район Очаково-Матвеевское"
|
|
414
|
+
:address: "Веерная улица, дом 38, корпус 2"
|
|
415
|
+
:helpPhone: "(495) 441-74-11"
|
|
416
|
+
:objectHasWifi: "нет"
|
|
417
|
+
- :district:
|
|
418
|
+
- "район Крюково"
|
|
419
|
+
:address: "город Зеленоград, корпус 1464"
|
|
420
|
+
:helpPhone: "(499) 717-02-01"
|
|
421
|
+
:objectHasWifi: "нет"
|
|
422
|
+
- :district:
|
|
423
|
+
- "район Коньково"
|
|
424
|
+
:address: "улица Введенского, дом 27А"
|
|
425
|
+
:helpPhone: "(495) 335-39-51"
|
|
426
|
+
:objectHasWifi: "нет"
|
|
427
|
+
- :district:
|
|
428
|
+
- "район Крюково"
|
|
429
|
+
:address: "город Зеленоград, корпус 1632"
|
|
430
|
+
:helpPhone: "(499) 717-14-29"
|
|
431
|
+
:objectHasWifi: "нет"
|
|
432
|
+
- :district:
|
|
433
|
+
- "Алтуфьевский район"
|
|
434
|
+
:address: "Костромская улица, дом 14, корпус 1"
|
|
435
|
+
:helpPhone: "(499) 902-22-27"
|
|
436
|
+
:objectHasWifi: "нет"
|
|
437
|
+
- :district:
|
|
438
|
+
- "район Люблино"
|
|
439
|
+
:address: "улица Марьинский Парк, дом 43"
|
|
440
|
+
:helpPhone: "(495) 658-47-47"
|
|
441
|
+
:objectHasWifi: "нет"
|
|
442
|
+
- :district:
|
|
443
|
+
- "район Печатники"
|
|
444
|
+
:address: "улица Полбина, дом 18"
|
|
445
|
+
:helpPhone: "(495) 353-33-86"
|
|
446
|
+
:objectHasWifi: "нет"
|
|
447
|
+
- :district:
|
|
448
|
+
- "Южнопортовый район"
|
|
449
|
+
:address: 5-я Кожуховская улица, дом 26, строение 1
|
|
450
|
+
:helpPhone: "(495) 679-47-21"
|
|
451
|
+
:objectHasWifi: "нет"
|
|
452
|
+
- :district:
|
|
453
|
+
- "район Печатники"
|
|
454
|
+
:address: "улица Полбина, дом 44"
|
|
455
|
+
:helpPhone: "(495) 354-28-07"
|
|
456
|
+
:objectHasWifi: "нет"
|
|
457
|
+
- :district:
|
|
458
|
+
- "район Лефортово"
|
|
459
|
+
:address: "Красноказарменная улица, дом 3, корпус 1"
|
|
460
|
+
:helpPhone: "(499) 267-76-55"
|
|
461
|
+
:objectHasWifi: "нет"
|
|
462
|
+
- :district:
|
|
463
|
+
- "район Печатники"
|
|
464
|
+
:address: "улица Полбина, дом 68, строение 1"
|
|
465
|
+
:helpPhone: "(495) 354-07-10"
|
|
466
|
+
:objectHasWifi: "нет"
|
data/lib/mosTrack.rb
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require_relative 'mosTrack/data'
|
|
4
|
+
require_relative 'mosTrack/table'
|
|
5
|
+
|
|
6
|
+
module RunningTrack
|
|
7
|
+
|
|
8
|
+
def self.print
|
|
9
|
+
begin
|
|
10
|
+
data = Data.import
|
|
11
|
+
rescue Timeout::Error, RunningTrack::Data::RunningTrackNoDataError => e
|
|
12
|
+
puts "----------------------------------------------------"
|
|
13
|
+
puts "Ошибка: #{e.message}"
|
|
14
|
+
puts "Данные будут загружены из локального хранилища"
|
|
15
|
+
puts "----------------------------------------------------"
|
|
16
|
+
end
|
|
17
|
+
begin
|
|
18
|
+
Table.new(data).print
|
|
19
|
+
rescue Exception => e
|
|
20
|
+
puts "Ошибка: #{e.message}"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# RunningTrack.print
|
|
27
|
+
|
|
28
|
+
# @cache = {}
|
|
29
|
+
|
|
30
|
+
# # # def self.headers
|
|
31
|
+
# # # end
|
|
32
|
+
|
|
33
|
+
# def self.print type = :web
|
|
34
|
+
# # data(type).print
|
|
35
|
+
# data = data(type)
|
|
36
|
+
# puts @cache.keys
|
|
37
|
+
# data.print
|
|
38
|
+
# end
|
|
39
|
+
|
|
40
|
+
# def self.show_cache
|
|
41
|
+
# @cache
|
|
42
|
+
# end
|
|
43
|
+
|
|
44
|
+
# def self.drop_cache!
|
|
45
|
+
# @cache = {}
|
|
46
|
+
# end
|
|
47
|
+
|
|
48
|
+
# def self.data type
|
|
49
|
+
# data = Data.import type
|
|
50
|
+
# # Table.new data
|
|
51
|
+
# @cache[type] ||= Table.new data
|
|
52
|
+
# end
|
|
53
|
+
|
|
54
|
+
# def self.data type
|
|
55
|
+
# data = Data.import type
|
|
56
|
+
# # Table.new data
|
|
57
|
+
# @cache[type] ||= Table.new data
|
|
58
|
+
# end
|
|
59
|
+
|
|
60
|
+
# puts RunningTrack.print(:file)
|
|
61
|
+
# RunningTrack.drop_cache!
|
|
62
|
+
# puts RunningTrack.print(:file)
|
|
63
|
+
# RunningTrack.print :file
|
|
64
|
+
# p RunningTrack.show_cache.keys
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'open-uri'
|
|
4
|
+
require 'json'
|
|
5
|
+
require 'timeout'
|
|
6
|
+
|
|
7
|
+
module RunningTrack
|
|
8
|
+
module Data
|
|
9
|
+
|
|
10
|
+
class RunningTrackNoDataError < Exception
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
REQUEST_TIMEOUT = 100
|
|
14
|
+
DATA_URL = "http://api.data.mos.ru/v1/datasets/899/rows"
|
|
15
|
+
|
|
16
|
+
def self.import
|
|
17
|
+
Timeout::timeout(REQUEST_TIMEOUT) do
|
|
18
|
+
# sleep 5
|
|
19
|
+
data = open(DATA_URL).read
|
|
20
|
+
# data = ""
|
|
21
|
+
raise RunningTrackNoDataError, "Нет данных" if data.length == 0
|
|
22
|
+
JSON.parse data
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'terminal-table'
|
|
4
|
+
require 'active_support/all'
|
|
5
|
+
|
|
6
|
+
require_relative 'track_collection'
|
|
7
|
+
|
|
8
|
+
module RunningTrack
|
|
9
|
+
class Table
|
|
10
|
+
|
|
11
|
+
COLUMNS = ["District", "Address", "HelpPhone", "ObjectHasWifi"]
|
|
12
|
+
|
|
13
|
+
def print
|
|
14
|
+
puts create_table
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def initialize data
|
|
18
|
+
if data
|
|
19
|
+
rows = slice_rows data
|
|
20
|
+
@track_collection = TrackCollection.new rows
|
|
21
|
+
else
|
|
22
|
+
@track_collection = TrackCollection.new
|
|
23
|
+
@track_collection.load!
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def create_table
|
|
30
|
+
rows = @track_collection.tracks.map do |e|
|
|
31
|
+
e.to_hash.values
|
|
32
|
+
end
|
|
33
|
+
sep_rows = rows.zip(Array.new(rows.count - 1) { :separator }).flatten(1).compact
|
|
34
|
+
Terminal::Table.new rows: sep_rows, headings: COLUMNS
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def slice_rows rows
|
|
38
|
+
rows.map! do |row|
|
|
39
|
+
row["Cells"].slice(*COLUMNS)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
#
|
|
47
|
+
|
|
48
|
+
# SPLITTER = ';'
|
|
49
|
+
|
|
50
|
+
# attr_reader :rows
|
|
51
|
+
|
|
52
|
+
# def initialize data
|
|
53
|
+
# puts "[RunningTrack::Table]: Create running track table"
|
|
54
|
+
# @rows = prepare data
|
|
55
|
+
# end
|
|
56
|
+
|
|
57
|
+
# def print
|
|
58
|
+
# @table ||= create_table
|
|
59
|
+
# # puts @table
|
|
60
|
+
# end
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# # private
|
|
64
|
+
|
|
65
|
+
# def prepare data
|
|
66
|
+
# data.map{ |line| line.split(SPLITTER) }
|
|
67
|
+
# end
|
|
68
|
+
|
|
69
|
+
# def create_table
|
|
70
|
+
# puts "[RunningTrack::Table]: Create terminal table"
|
|
71
|
+
# headings = @rows.shift
|
|
72
|
+
# sep_rows = @rows.zip(Array.new(@rows.count - 1){ :separator }).flatten(1).compact
|
|
73
|
+
# Terminal::Table.new headings: headings, rows: sep_rows
|
|
74
|
+
# end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
require 'workflow'
|
|
2
|
+
|
|
3
|
+
module RunningTrack
|
|
4
|
+
class Track
|
|
5
|
+
|
|
6
|
+
include Workflow
|
|
7
|
+
|
|
8
|
+
TRACK_DISTRICT_KEY = :district
|
|
9
|
+
TRACK_ADDRESS_KEY = :address
|
|
10
|
+
TRACK_PHONE_KEY = :helpPhone
|
|
11
|
+
TRACK_HAS_WIFI_KEY = :objectHasWifi
|
|
12
|
+
|
|
13
|
+
def initialize track_data
|
|
14
|
+
@district = track_data[TRACK_DISTRICT_KEY]
|
|
15
|
+
@address = track_data[TRACK_ADDRESS_KEY]
|
|
16
|
+
@helpPhone = track_data[TRACK_PHONE_KEY]
|
|
17
|
+
@objectHasWifi = track_data[TRACK_HAS_WIFI_KEY]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def to_hash
|
|
21
|
+
{
|
|
22
|
+
TRACK_DISTRICT_KEY => @district,
|
|
23
|
+
TRACK_ADDRESS_KEY => @address,
|
|
24
|
+
TRACK_PHONE_KEY => @helpPhone,
|
|
25
|
+
TRACK_HAS_WIFI_KEY => @objectHasWifi
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
workflow do
|
|
30
|
+
state :new do
|
|
31
|
+
event :good_state, transitions_to: :good
|
|
32
|
+
event :normal_state, transitions_to: :normal
|
|
33
|
+
event :bad_state, transitions_to: :bad
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
state :good do
|
|
37
|
+
event :normal_state, transitions_to: :normal
|
|
38
|
+
event :bad_state, transitions_to: :bad
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
state :normal do
|
|
42
|
+
event :bad_state, transitions_to: :bad
|
|
43
|
+
event :good_state, transitions_to: :good
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
state :bad do
|
|
47
|
+
event :normal_state, transitions_to: :normal
|
|
48
|
+
event :good_state, transitions_to: :good
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def to_s
|
|
53
|
+
"District: #{@district}, address: #{@address}, phone: #{@helpPhone}, has Wi-Fi: #{@objectHasWifi}"
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
|
|
2
|
+
require 'yaml'
|
|
3
|
+
require_relative 'track'
|
|
4
|
+
|
|
5
|
+
module RunningTrack
|
|
6
|
+
class TrackCollection
|
|
7
|
+
|
|
8
|
+
attr_reader :tracks
|
|
9
|
+
|
|
10
|
+
class RunningTrackLoadLocalDataError < Exception
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def initialize data = Array.new
|
|
14
|
+
@tracks = data.map do |e|
|
|
15
|
+
Track.new({
|
|
16
|
+
Track::TRACK_DISTRICT_KEY => e["District"],
|
|
17
|
+
Track::TRACK_ADDRESS_KEY => e["Address"],
|
|
18
|
+
Track::TRACK_PHONE_KEY => e["HelpPhone"],
|
|
19
|
+
Track::TRACK_HAS_WIFI_KEY => e["ObjectHasWifi"]
|
|
20
|
+
})
|
|
21
|
+
end
|
|
22
|
+
# p find(Track::TRACK_HAS_WIFI_KEY, "нет")
|
|
23
|
+
@tracks = random(@tracks.count)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def random count = 1
|
|
27
|
+
@tracks.shuffle.slice(0..count-1)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def find key, value
|
|
31
|
+
@tracks.select do |e|
|
|
32
|
+
e.to_hash[key] == value
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def save!
|
|
37
|
+
File.open('./data/file.yml', 'w') {|f| f.write self.to_hash.to_yaml }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def load!
|
|
41
|
+
local_data = YAML.load_file('./data/file.yml')
|
|
42
|
+
raise RunningTrackLoadLocalDataError, "Локальных данных нет!" if !local_data
|
|
43
|
+
@tracks = YAML.load_file('./data/file.yml').map do |e|
|
|
44
|
+
Track.new(e)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def to_hash
|
|
49
|
+
hash = @tracks.map do |e|
|
|
50
|
+
e.to_hash
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
|
55
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: mosTrack
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Evgeniy Fateev
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2015-09-09 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: terminal-table
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.4'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.4'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: workflow
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '1.2'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '1.2'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: activesupport
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '4.2'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '4.2'
|
|
55
|
+
description: A simple gem that prints running tracks information from data.mos.ru
|
|
56
|
+
site
|
|
57
|
+
email: spaceflow@gmail.com
|
|
58
|
+
executables: []
|
|
59
|
+
extensions: []
|
|
60
|
+
extra_rdoc_files: []
|
|
61
|
+
files:
|
|
62
|
+
- lib/data/file.yml
|
|
63
|
+
- lib/mosTrack.rb
|
|
64
|
+
- lib/mosTrack/data.rb
|
|
65
|
+
- lib/mosTrack/table.rb
|
|
66
|
+
- lib/mosTrack/track.rb
|
|
67
|
+
- lib/mosTrack/track_collection.rb
|
|
68
|
+
homepage: http://rubygems.org/gems/mosTrack
|
|
69
|
+
licenses:
|
|
70
|
+
- MIT
|
|
71
|
+
metadata: {}
|
|
72
|
+
post_install_message:
|
|
73
|
+
rdoc_options: []
|
|
74
|
+
require_paths:
|
|
75
|
+
- lib
|
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '0'
|
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
|
+
requirements:
|
|
83
|
+
- - ">="
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: '0'
|
|
86
|
+
requirements:
|
|
87
|
+
- Internet connection
|
|
88
|
+
- A good mood
|
|
89
|
+
rubyforge_project:
|
|
90
|
+
rubygems_version: 2.5.1
|
|
91
|
+
signing_key:
|
|
92
|
+
specification_version: 4
|
|
93
|
+
summary: Find your running track
|
|
94
|
+
test_files: []
|