rubybikes 0.3.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 (118) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +12 -0
  3. data/CONTRIBUTING.md +33 -0
  4. data/LICENSE +662 -0
  5. data/NOTICE +10 -0
  6. data/PROVIDERS.md +123 -0
  7. data/README.md +108 -0
  8. data/RELEASING.md +44 -0
  9. data/data/ATTRIBUTION.txt +290 -0
  10. data/data/geojson/ch_cantons.json +53 -0
  11. data/data/geojson/japan_prefectures.json +49 -0
  12. data/data/geojson/penang.json +63 -0
  13. data/data/graphql/charichari.graphql +12 -0
  14. data/data/graphql/ganxeta.graphql +22 -0
  15. data/data/graphql/otp.graphql +68 -0
  16. data/data/providers.json +1 -0
  17. data/data/pybikes/aksu.json +49 -0
  18. data/data/pybikes/ambici.json +166 -0
  19. data/data/pybikes/baksi.json +41 -0
  20. data/data/pybikes/batumvelo.json +19 -0
  21. data/data/pybikes/bcycle.json +326 -0
  22. data/data/pybikes/beryl.json +195 -0
  23. data/data/pybikes/bicicard.json +205 -0
  24. data/data/pybikes/bicicas.json +20 -0
  25. data/data/pybikes/bicielx.json +19 -0
  26. data/data/pybikes/biciferrolterra.json +21 -0
  27. data/data/pybikes/bicimad.json +16 -0
  28. data/data/pybikes/bicincitta.json +1551 -0
  29. data/data/pybikes/bicing.json +37 -0
  30. data/data/pybikes/bikeshare_ie.json +46 -0
  31. data/data/pybikes/bikeu.json +17 -0
  32. data/data/pybikes/bixi.json +21 -0
  33. data/data/pybikes/bizkaibizi.json +105 -0
  34. data/data/pybikes/careem.json +40 -0
  35. data/data/pybikes/charichari.json +106 -0
  36. data/data/pybikes/chartered_bike.json +86 -0
  37. data/data/pybikes/clujbike.json +17 -0
  38. data/data/pybikes/cyclocity.json +211 -0
  39. data/data/pybikes/cyclopolis.json +78 -0
  40. data/data/pybikes/cykleo.json +39 -0
  41. data/data/pybikes/decobike.json +18 -0
  42. data/data/pybikes/derp.json +114 -0
  43. data/data/pybikes/deutschebahn.json +97 -0
  44. data/data/pybikes/digitransit.json +123 -0
  45. data/data/pybikes/docomo.json +215 -0
  46. data/data/pybikes/easybike.json +160 -0
  47. data/data/pybikes/ecovelo.json +307 -0
  48. data/data/pybikes/emovity.json +17 -0
  49. data/data/pybikes/encicla.json +17 -0
  50. data/data/pybikes/fifteen.json +50 -0
  51. data/data/pybikes/fsm.json +16 -0
  52. data/data/pybikes/ganxeta.json +20 -0
  53. data/data/pybikes/gbfs.json +1578 -0
  54. data/data/pybikes/gira.json +20 -0
  55. data/data/pybikes/gyorbike.json +19 -0
  56. data/data/pybikes/hellocycling.json +248 -0
  57. data/data/pybikes/joco.json +22 -0
  58. data/data/pybikes/keolis.json +22 -0
  59. data/data/pybikes/kolumbus.json +18 -0
  60. data/data/pybikes/lastenvelo.json +30 -0
  61. data/data/pybikes/linkbike.json +17 -0
  62. data/data/pybikes/meiob.json +18 -0
  63. data/data/pybikes/mobhis.json +43 -0
  64. data/data/pybikes/movus.json +72 -0
  65. data/data/pybikes/nextbike.json +2443 -0
  66. data/data/pybikes/nextbike_gbfs.json +5 -0
  67. data/data/pybikes/nubija.json +18 -0
  68. data/data/pybikes/open_source_bike_share.json +28 -0
  69. data/data/pybikes/open_source_bike_share_v2.json +17 -0
  70. data/data/pybikes/openmove.json +20 -0
  71. data/data/pybikes/ov_fiets.json +20 -0
  72. data/data/pybikes/pedalada.json +66 -0
  73. data/data/pybikes/publibike.json +127 -0
  74. data/data/pybikes/qrobici.json +20 -0
  75. data/data/pybikes/roovee.json +245 -0
  76. data/data/pybikes/samba.json +52 -0
  77. data/data/pybikes/sejong.json +19 -0
  78. data/data/pybikes/seoulbike.json +18 -0
  79. data/data/pybikes/sharedmobility.json +63 -0
  80. data/data/pybikes/slovnaft_bajk.json +21 -0
  81. data/data/pybikes/smartbike.json +28 -0
  82. data/data/pybikes/smoove.json +26 -0
  83. data/data/pybikes/soltrafego.json +39 -0
  84. data/data/pybikes/tashu.json +20 -0
  85. data/data/pybikes/urbansharing.json +22 -0
  86. data/data/pybikes/velib.json +23 -0
  87. data/data/pybikes/velobike_kz.json +17 -0
  88. data/data/pybikes/velok.json +16 -0
  89. data/data/pybikes/veloway.json +20 -0
  90. data/data/pybikes/weelo.json +45 -0
  91. data/data/pybikes/wegoshare.json +141 -0
  92. data/data/pybikes/xian.json +19 -0
  93. data/data/pybikes/yelovelo.json +22 -0
  94. data/data/pybikes/youbike.json +173 -0
  95. data/data/upstream.json +7 -0
  96. data/lib/rubybikes/engine.rb +3 -0
  97. data/lib/rubybikes/native/authenticated.rb +95 -0
  98. data/lib/rubybikes/native/engine.rb +103 -0
  99. data/lib/rubybikes/native/gbfs.rb +169 -0
  100. data/lib/rubybikes/native/geometry.rb +53 -0
  101. data/lib/rubybikes/native/graphql.rb +135 -0
  102. data/lib/rubybikes/native/html_clients.rb +313 -0
  103. data/lib/rubybikes/native/json_providers.rb +174 -0
  104. data/lib/rubybikes/native/more_json.rb +126 -0
  105. data/lib/rubybikes/native/nextbike.rb +50 -0
  106. data/lib/rubybikes/native/provider.rb +84 -0
  107. data/lib/rubybikes/native/remaining_clients.rb +102 -0
  108. data/lib/rubybikes/native/response_cache.rb +78 -0
  109. data/lib/rubybikes/native/transport.rb +163 -0
  110. data/lib/rubybikes/native/xml_details.rb +159 -0
  111. data/lib/rubybikes/native.rb +30 -0
  112. data/lib/rubybikes/version.rb +5 -0
  113. data/lib/rubybikes.rb +201 -0
  114. data/sig/external.rbs +30 -0
  115. data/sig/manifest.yaml +8 -0
  116. data/sig/native.rbs +230 -0
  117. data/sig/rubybikes.rbs +143 -0
  118. metadata +230 -0
@@ -0,0 +1,63 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "tag": "carvelo",
5
+ "meta": {
6
+ "name": "carvelo eCargo-Bike Sharing",
7
+ "city": "Switzerland",
8
+ "country": "CH",
9
+ "latitude": 46.9829,
10
+ "longitude": 8.2331,
11
+ "company": [
12
+ "Mobilitätsakademie AG",
13
+ "Touring Club Switzerland (TCS)"
14
+ ]
15
+ },
16
+ "feed_url": "https://gbfs.prod.sharedmobility.ch/v2/gbfs/carvelo2go/gbfs"
17
+ },
18
+ {
19
+ "tag": "pickebike-aubonne",
20
+ "meta": {
21
+ "name": "PickeBike Aubonne",
22
+ "city": "Aubonne",
23
+ "country": "CH",
24
+ "latitude": 46.4949,
25
+ "longitude": 6.3963,
26
+ "company": [
27
+ "PickeBike"
28
+ ]
29
+ },
30
+ "feed_url": "https://gbfs.prod.sharedmobility.ch/v2/gbfs/pickebike_aubonne/gbfs"
31
+ },
32
+ {
33
+ "tag": "pickebike-basel",
34
+ "meta": {
35
+ "name": "PickeBike Basel",
36
+ "city": "Basel",
37
+ "country": "CH",
38
+ "latitude": 47.5579,
39
+ "longitude": 7.5902,
40
+ "company": [
41
+ "PickeBike"
42
+ ]
43
+ },
44
+ "feed_url": "https://gbfs.prod.sharedmobility.ch/v2/gbfs/pickebike_basel/gbfs"
45
+ },
46
+ {
47
+ "tag": "pickebike-fribourg",
48
+ "meta": {
49
+ "name": "PickeBike Fribourg",
50
+ "city": "Fribourg",
51
+ "country": "CH",
52
+ "latitude": 46.8039,
53
+ "longitude": 7.1505,
54
+ "company": [
55
+ "PickeBike"
56
+ ]
57
+ },
58
+ "feed_url": "https://gbfs.prod.sharedmobility.ch/v2/gbfs/pickebike_fribourg/gbfs"
59
+ }
60
+ ],
61
+ "system": "sharedmobility",
62
+ "class": "SharedMobility"
63
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "tag": "slovnaft-bajk",
5
+ "meta": {
6
+ "latitude": 48.1514,
7
+ "longitude": 17.1056,
8
+ "city": "Bratislava",
9
+ "country": "SK",
10
+ "name": "Slovnaft BAjk",
11
+ "company": [
12
+ "Dopravný podnik Bratislava",
13
+ "Bratislavská integrovaná doprava, a.s.",
14
+ "Hlavné mesto SR Bratislava"
15
+ ]
16
+ }
17
+ }
18
+ ],
19
+ "system": "slovnaft_bajk",
20
+ "class": "SlovnaftBajk"
21
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "system": "smartbike",
3
+ "class": "SmartBike",
4
+ "instances": [
5
+ {
6
+ "tag": "malmobybike",
7
+ "meta": {
8
+ "latitude": 55.6050,
9
+ "city": "Malmö",
10
+ "name": "Malmö by bike",
11
+ "longitude": 13.0038,
12
+ "country": "SE"
13
+ },
14
+ "endpoint": "https://cc-smartbike-opendata.s3.eu-west-1.amazonaws.com/malmo"
15
+ },
16
+ {
17
+ "tag": "velo-antwerpen",
18
+ "meta": {
19
+ "latitude": 51.216667,
20
+ "city": "Antwerpen",
21
+ "name": "Velo Antwerpen",
22
+ "longitude": 4.4,
23
+ "country": "BE"
24
+ },
25
+ "endpoint": "https://cc-smartbike-opendata.s3.eu-west-1.amazonaws.com/antwerp"
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "system":"smoove",
3
+ "class":{
4
+ "CityBikeLima": {
5
+ "instances": [
6
+ {
7
+ "tag": "citybike-lima",
8
+ "meta": {
9
+ "city": "Lima",
10
+ "name": "CityBike Lima",
11
+ "country": "PE",
12
+ "latitude": -12.1209,
13
+ "longitude": -77.0296,
14
+ "company": [
15
+ "CityBike Miraflores S.A.C.",
16
+ "CityBike San Isidro S.A.C",
17
+ "Fifteen",
18
+ "Moventia"
19
+ ]
20
+ },
21
+ "feed_url": "https://www.citybikelima.com/api/getStations"
22
+ }
23
+ ]
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "class": "Soltrafego",
3
+ "instances": [
4
+ {
5
+ "uid": "82609bf53fe4aa4a5cccf28a25d8868b979b1622",
6
+ "meta": {
7
+ "city": "Aveiro",
8
+ "country": "PT",
9
+ "latitude": 40.6388,
10
+ "longitude": -8.6479,
11
+ "name": "BUGA"
12
+ },
13
+ "tag": "buga"
14
+ },
15
+ {
16
+ "uid": "13fe90d9a574fe5346914d76fee8466d711db3cd",
17
+ "meta": {
18
+ "city": "Pombal",
19
+ "country": "PT",
20
+ "latitude": 39.915278,
21
+ "longitude": -8.632222,
22
+ "name": "Pombike"
23
+ },
24
+ "tag": "pombike"
25
+ },
26
+ {
27
+ "uid": "d02d3e4962abd7483727c2ba12d253bc2d06c225",
28
+ "meta": {
29
+ "city": "CIM Viseu Dão-Lafões",
30
+ "country": "PT",
31
+ "latitude": 40.656392,
32
+ "longitude": -7.912545,
33
+ "name": "Bora!"
34
+ },
35
+ "tag": "bora"
36
+ }
37
+ ],
38
+ "system": "soltrafego"
39
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "tag": "tashu",
5
+ "meta": {
6
+ "city": "대전 (Daejeon)",
7
+ "name": "Tashu",
8
+ "latitude": 36.3490,
9
+ "longitude": 127.3848,
10
+ "country": "KR",
11
+ "company": [
12
+ "Daejeon Metropolitan City"
13
+ ]
14
+ },
15
+ "endpoint": "https://bike.tashu.or.kr/main.do?lang=1"
16
+ }
17
+ ],
18
+ "class": "Tashu",
19
+ "system": "tashu"
20
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "tag": "skrova-bike",
5
+ "meta": {
6
+ "city": "Skrova",
7
+ "name": "Skrova Bysykkel",
8
+ "country": "NO",
9
+ "company": [
10
+ "UIP Drift AS",
11
+ "Skrova Outdoor Photo Spot (SOPS)",
12
+ "Skrova Næringsforening",
13
+ "Urban Sharing"
14
+ ],
15
+ "latitude": 68.1669,
16
+ "longitude": 14.6611
17
+ }
18
+ }
19
+ ],
20
+ "system": "urbansharing",
21
+ "class": "UrbanSharing"
22
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "tag": "velib",
5
+ "meta": {
6
+ "latitude": 48.856614,
7
+ "country": "FR",
8
+ "name": "Vélib' Métropole",
9
+ "longitude": 2.3522219,
10
+ "city": "Paris",
11
+ "license": {
12
+ "name": "OPEN LICENCE 2.0",
13
+ "url": "etalab.gouv.fr/wp-content/uploads/2018/11/open-licence.pdf"
14
+ },
15
+ "company": ["Smovengo"],
16
+ "ebikes": true
17
+ },
18
+ "feed_url": "https://velib-metropole-opendata.smovengo.cloud/opendata/Velib_Metropole/gbfs.json"
19
+ }
20
+ ],
21
+ "system": "velib",
22
+ "class": "Velib"
23
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "tag": "velobike",
5
+ "meta": {
6
+ "city": "Astana",
7
+ "name": "Astana Bike",
8
+ "country": "KZ",
9
+ "longitude": 71.4305,
10
+ "latitude": 51.1283
11
+ },
12
+ "feed_url": "https://velobike.kz/velostation"
13
+ }
14
+ ],
15
+ "system": "velobike_kz",
16
+ "class": "VelobikeKZ"
17
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "tag": "velok",
5
+ "meta": {
6
+ "city": "Esch-sur-alzette",
7
+ "name": "Vël'Ok",
8
+ "country": "LU",
9
+ "longitude": 5.9722,
10
+ "latitude": 49.5024
11
+ }
12
+ }
13
+ ],
14
+ "system": "velok",
15
+ "class": "VelokSystem"
16
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "system": "veloway",
3
+ "class": {
4
+ "Veloway": {
5
+ "instances": [
6
+ {
7
+ "tag": "vel-in",
8
+ "meta": {
9
+ "latitude": 50.95,
10
+ "city": "Calais",
11
+ "name": "Vél'in",
12
+ "longitude": 1.85,
13
+ "country": "FR"
14
+ },
15
+ "feed_url": "https://velo-vision-prod.azurewebsites.net/calais/oybike/stands.nsf/getsite?site=calais&format=json&key=veolia"
16
+ }
17
+ ]
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "system": "weelo",
3
+ "class": "Weelo",
4
+ "instances": [
5
+ {
6
+ "city_ids": [
7
+ 59
8
+ ],
9
+ "meta": {
10
+ "latitude": 45.4064349,
11
+ "city": "Padova",
12
+ "name": "GoodBike",
13
+ "longitude": 11.8767611,
14
+ "country": "IT"
15
+ },
16
+ "tag": "goodbike"
17
+ },
18
+ {
19
+ "city_ids": [
20
+ 175
21
+ ],
22
+ "meta": {
23
+ "latitude": 44.40430089372731,
24
+ "city": "Genova",
25
+ "name": "Zena By Bike",
26
+ "longitude": 8.92908986230462,
27
+ "country": "IT"
28
+ },
29
+ "tag": "zena-by-bike"
30
+ },
31
+ {
32
+ "city_ids": [
33
+ 230
34
+ ],
35
+ "meta": {
36
+ "latitude": 42.8116631,
37
+ "city": "Pamplona",
38
+ "name": "nbici",
39
+ "longitude": -1.6482653,
40
+ "country": "ES"
41
+ },
42
+ "tag": "nbici"
43
+ }
44
+ ]
45
+ }
@@ -0,0 +1,141 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "endpoint": "https://api.algira.almeirim.pt",
5
+ "meta": {
6
+ "city": "Almeirim",
7
+ "country": "PT",
8
+ "latitude": 39.2082,
9
+ "longitude": -8.6252,
10
+ "name": "AlGira",
11
+ "ebikes": true,
12
+ "company": [
13
+ "Município de Almeirim"
14
+ ]
15
+ },
16
+ "tag": "algira"
17
+ },
18
+ {
19
+ "endpoint": "https://api.rmbikes.cm-riomaior.pt",
20
+ "meta": {
21
+ "city": "Rio Maior",
22
+ "country": "PT",
23
+ "latitude": 39.3374,
24
+ "longitude": -8.9374,
25
+ "name": "RMBikes",
26
+ "ebikes": true,
27
+ "company": [
28
+ "Município de Rio Maior"
29
+ ]
30
+ },
31
+ "tag": "rmbikes"
32
+ },
33
+ {
34
+ "endpoint": "https://api.figas.cm-figfoz.pt",
35
+ "meta": {
36
+ "city": "Figueira da Foz",
37
+ "country": "PT",
38
+ "latitude": 40.1548,
39
+ "longitude": -8.8613,
40
+ "name": "Figas",
41
+ "company": [
42
+ "Município de Figueira da Foz"
43
+ ]
44
+ },
45
+ "tag": "figas"
46
+ },
47
+ {
48
+ "endpoint": "https://api.bike.infralobo.pt",
49
+ "meta": {
50
+ "city": "Vale do Lobo",
51
+ "country": "PT",
52
+ "latitude": 37.0550,
53
+ "longitude":-8.0643,
54
+ "name": "Smart Bikes by Infralobo",
55
+ "company": [
56
+ "Infralobo"
57
+ ]
58
+ },
59
+ "tag": "infralobo"
60
+ },
61
+ {
62
+ "endpoint": "https://api.summitbikeshare.com",
63
+ "meta": {
64
+ "city": "Park City, UT",
65
+ "country": "US",
66
+ "latitude": 40.6474,
67
+ "longitude": -111.4981,
68
+ "name": "Summit Bike Share",
69
+ "ebikes": true,
70
+ "company": [
71
+ "Summit County Department of Transportation"
72
+ ]
73
+ },
74
+ "tag": "summit-bike-share"
75
+ },
76
+ {
77
+ "endpoint": "https://api.rvabikes.com",
78
+ "meta": {
79
+ "city": "Richmond, VA",
80
+ "country": "US",
81
+ "latitude": 37.53833,
82
+ "longitude": -77.43464,
83
+ "name": "RVA Bike Share",
84
+ "ebikes": true,
85
+ "company": [
86
+ "Richmond Department of Public Works"
87
+ ]
88
+ },
89
+ "tag": "rva-bikes"
90
+ },
91
+ {
92
+ "endpoint": "https://api.bikeshare-peninsulapapagayo.com",
93
+ "meta": {
94
+ "city": "Península de Papagayo",
95
+ "country": "CR",
96
+ "latitude": 10.6246,
97
+ "longitude": -85.6796,
98
+ "name": "Peninsula Papagayo Bike-Share",
99
+ "ebikes": true,
100
+ "company": [
101
+ "Ecodesarrollo Papagayo Limitada"
102
+ ]
103
+ },
104
+ "tag": "bikeshare-peninsula-papagayo"
105
+ },
106
+ {
107
+ "endpoint": "https://api.hi-bike.co.uk",
108
+ "meta": {
109
+ "city": "Inverness",
110
+ "country": "GB",
111
+ "latitude": 57.4767,
112
+ "longitude": -4.2269,
113
+ "name": "Hi-Bike Inverness",
114
+ "ebikes": true,
115
+ "company": [
116
+ "HITRANS"
117
+ ]
118
+ },
119
+ "tag": "hi-bike-inverness",
120
+ "bbox": [[57.1918,-4.6709],[57.6603,-3.7518]]
121
+ },
122
+ {
123
+ "endpoint": "https://api.hi-bike.co.uk",
124
+ "meta": {
125
+ "city": "Fort William",
126
+ "country": "GB",
127
+ "latitude": 56.8171,
128
+ "longitude": -5.1054,
129
+ "name": "Hi-Bike Fort William",
130
+ "ebikes": true,
131
+ "company": [
132
+ "HITRANS"
133
+ ]
134
+ },
135
+ "tag": "hi-bike-fort-william",
136
+ "bbox": [[56.737564,-5.320007],[56.959523,-4.863472]]
137
+ }
138
+ ],
139
+ "system": "wegoshare",
140
+ "class": "WeGoShare"
141
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "system": "xian",
3
+ "class": "Xian",
4
+ "instances": [
5
+ {
6
+ "meta": {
7
+ "latitude": 34.2688,
8
+ "longitude": 108.9458,
9
+ "city": "西安 (Xi'an)",
10
+ "name": "Xi'an Public Bicycle",
11
+ "country": "CN",
12
+ "company": ["西安城市公共自行车服务管理有"]
13
+ },
14
+ "bbox": [[32.82,106.78],[36.44,111.54]],
15
+ "endpoint": "http://www.xazxc.com/service/IBikeSitesService?wsdl/findBikeSites",
16
+ "tag": "xian-public-bicycle"
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "system": "yelovelo",
3
+ "class": "YeloVelo",
4
+ "instances": [
5
+ {
6
+ "tag": "yelo-velo",
7
+ "meta": {
8
+ "city": "La Rochelle",
9
+ "name": "Yélo Vélo",
10
+ "country": "FR",
11
+ "latitude": 46.1591,
12
+ "longitude": -1.1509,
13
+ "company": ["Communauté d'Agglomération de La Rochelle"],
14
+ "license": {
15
+ "name": "Licence Ouverte",
16
+ "url": "https://www.etalab.gouv.fr/licence-ouverte-open-licence/"
17
+ }
18
+ },
19
+ "bbox": [[45.955328, -1.241923], [46.317459,-0.843708]]
20
+ }
21
+ ]
22
+ }