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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +12 -0
- data/CONTRIBUTING.md +33 -0
- data/LICENSE +662 -0
- data/NOTICE +10 -0
- data/PROVIDERS.md +123 -0
- data/README.md +108 -0
- data/RELEASING.md +44 -0
- data/data/ATTRIBUTION.txt +290 -0
- data/data/geojson/ch_cantons.json +53 -0
- data/data/geojson/japan_prefectures.json +49 -0
- data/data/geojson/penang.json +63 -0
- data/data/graphql/charichari.graphql +12 -0
- data/data/graphql/ganxeta.graphql +22 -0
- data/data/graphql/otp.graphql +68 -0
- data/data/providers.json +1 -0
- data/data/pybikes/aksu.json +49 -0
- data/data/pybikes/ambici.json +166 -0
- data/data/pybikes/baksi.json +41 -0
- data/data/pybikes/batumvelo.json +19 -0
- data/data/pybikes/bcycle.json +326 -0
- data/data/pybikes/beryl.json +195 -0
- data/data/pybikes/bicicard.json +205 -0
- data/data/pybikes/bicicas.json +20 -0
- data/data/pybikes/bicielx.json +19 -0
- data/data/pybikes/biciferrolterra.json +21 -0
- data/data/pybikes/bicimad.json +16 -0
- data/data/pybikes/bicincitta.json +1551 -0
- data/data/pybikes/bicing.json +37 -0
- data/data/pybikes/bikeshare_ie.json +46 -0
- data/data/pybikes/bikeu.json +17 -0
- data/data/pybikes/bixi.json +21 -0
- data/data/pybikes/bizkaibizi.json +105 -0
- data/data/pybikes/careem.json +40 -0
- data/data/pybikes/charichari.json +106 -0
- data/data/pybikes/chartered_bike.json +86 -0
- data/data/pybikes/clujbike.json +17 -0
- data/data/pybikes/cyclocity.json +211 -0
- data/data/pybikes/cyclopolis.json +78 -0
- data/data/pybikes/cykleo.json +39 -0
- data/data/pybikes/decobike.json +18 -0
- data/data/pybikes/derp.json +114 -0
- data/data/pybikes/deutschebahn.json +97 -0
- data/data/pybikes/digitransit.json +123 -0
- data/data/pybikes/docomo.json +215 -0
- data/data/pybikes/easybike.json +160 -0
- data/data/pybikes/ecovelo.json +307 -0
- data/data/pybikes/emovity.json +17 -0
- data/data/pybikes/encicla.json +17 -0
- data/data/pybikes/fifteen.json +50 -0
- data/data/pybikes/fsm.json +16 -0
- data/data/pybikes/ganxeta.json +20 -0
- data/data/pybikes/gbfs.json +1578 -0
- data/data/pybikes/gira.json +20 -0
- data/data/pybikes/gyorbike.json +19 -0
- data/data/pybikes/hellocycling.json +248 -0
- data/data/pybikes/joco.json +22 -0
- data/data/pybikes/keolis.json +22 -0
- data/data/pybikes/kolumbus.json +18 -0
- data/data/pybikes/lastenvelo.json +30 -0
- data/data/pybikes/linkbike.json +17 -0
- data/data/pybikes/meiob.json +18 -0
- data/data/pybikes/mobhis.json +43 -0
- data/data/pybikes/movus.json +72 -0
- data/data/pybikes/nextbike.json +2443 -0
- data/data/pybikes/nextbike_gbfs.json +5 -0
- data/data/pybikes/nubija.json +18 -0
- data/data/pybikes/open_source_bike_share.json +28 -0
- data/data/pybikes/open_source_bike_share_v2.json +17 -0
- data/data/pybikes/openmove.json +20 -0
- data/data/pybikes/ov_fiets.json +20 -0
- data/data/pybikes/pedalada.json +66 -0
- data/data/pybikes/publibike.json +127 -0
- data/data/pybikes/qrobici.json +20 -0
- data/data/pybikes/roovee.json +245 -0
- data/data/pybikes/samba.json +52 -0
- data/data/pybikes/sejong.json +19 -0
- data/data/pybikes/seoulbike.json +18 -0
- data/data/pybikes/sharedmobility.json +63 -0
- data/data/pybikes/slovnaft_bajk.json +21 -0
- data/data/pybikes/smartbike.json +28 -0
- data/data/pybikes/smoove.json +26 -0
- data/data/pybikes/soltrafego.json +39 -0
- data/data/pybikes/tashu.json +20 -0
- data/data/pybikes/urbansharing.json +22 -0
- data/data/pybikes/velib.json +23 -0
- data/data/pybikes/velobike_kz.json +17 -0
- data/data/pybikes/velok.json +16 -0
- data/data/pybikes/veloway.json +20 -0
- data/data/pybikes/weelo.json +45 -0
- data/data/pybikes/wegoshare.json +141 -0
- data/data/pybikes/xian.json +19 -0
- data/data/pybikes/yelovelo.json +22 -0
- data/data/pybikes/youbike.json +173 -0
- data/data/upstream.json +7 -0
- data/lib/rubybikes/engine.rb +3 -0
- data/lib/rubybikes/native/authenticated.rb +95 -0
- data/lib/rubybikes/native/engine.rb +103 -0
- data/lib/rubybikes/native/gbfs.rb +169 -0
- data/lib/rubybikes/native/geometry.rb +53 -0
- data/lib/rubybikes/native/graphql.rb +135 -0
- data/lib/rubybikes/native/html_clients.rb +313 -0
- data/lib/rubybikes/native/json_providers.rb +174 -0
- data/lib/rubybikes/native/more_json.rb +126 -0
- data/lib/rubybikes/native/nextbike.rb +50 -0
- data/lib/rubybikes/native/provider.rb +84 -0
- data/lib/rubybikes/native/remaining_clients.rb +102 -0
- data/lib/rubybikes/native/response_cache.rb +78 -0
- data/lib/rubybikes/native/transport.rb +163 -0
- data/lib/rubybikes/native/xml_details.rb +159 -0
- data/lib/rubybikes/native.rb +30 -0
- data/lib/rubybikes/version.rb +5 -0
- data/lib/rubybikes.rb +201 -0
- data/sig/external.rbs +30 -0
- data/sig/manifest.yaml +8 -0
- data/sig/native.rbs +230 -0
- data/sig/rubybikes.rbs +143 -0
- metadata +230 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: c46f063c4bf4ca6d9802682c3819e09e0e6e36d8c7334be3176efc989df57307
|
|
4
|
+
data.tar.gz: 6cccb6ae72155832f18a7e820868c4c14f28032755a2871b67d9a41c5c059fa1
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 204e7aaa205dd5d32d97dcb074855d05693d50bb03cfd93ed861a73af0614d9b1df2aa3fecadf979ebca705359b3642dc900c2fc378d67b06089f362db725f32
|
|
7
|
+
data.tar.gz: b238752b803b69e63379660793c72dfb796960299d849470b4309faae949a2f2a6d88c37c7efdd2a8dd8d5b5dc87908a12ccb94b1d412f601e8b9aaf7aefc10b
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.3.0 — 2026-11-05
|
|
4
|
+
|
|
5
|
+
- Native Ruby provider engine and packaged provider catalog.
|
|
6
|
+
- Ruby gem packaging, offline provider fixtures, coverage, signatures, and quality checks.
|
|
7
|
+
- Automatic releases from the Ruby version file using RubyGems OIDC trusted publishing.
|
|
8
|
+
|
|
9
|
+
## 0.2.0
|
|
10
|
+
|
|
11
|
+
- Discover all 85 PyBikes clients and construct custom networks.
|
|
12
|
+
- Verify all 815 catalog entries and preserve provider capability metadata.
|
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Use Ruby 3.4 for development; runtime tests cover Ruby 3.1–3.4 and 4.0.
|
|
4
|
+
Run `bin/setup`, then `bundle exec rake test build`. Quality checks use
|
|
5
|
+
`BUNDLE_GEMFILE=gemfiles/quality.gemfile bundle exec rake lint typecheck` after
|
|
6
|
+
installing that bundle. `docker build -f Dockerfile.test -t rubybikes-test .`
|
|
7
|
+
and `docker run --rm --network none rubybikes-test` reproduce the offline checks.
|
|
8
|
+
|
|
9
|
+
For a provider change, add an anonymized response fixture and explicit expected
|
|
10
|
+
station/vehicle fields. Assert HTTP method, body, query parameters, and relevant
|
|
11
|
+
headers. Test geography, authentication, unknown counts, and failure behavior
|
|
12
|
+
where applicable. Preserve network tags and identity hashes. A client is only
|
|
13
|
+
covered after it produces a nonempty snapshot in an offline test; construction
|
|
14
|
+
alone is insufficient. Never introduce skips or hide a shipped source file to
|
|
15
|
+
meet coverage requirements.
|
|
16
|
+
|
|
17
|
+
The catalog and metadata are adapted from the revision in `data/upstream.json`.
|
|
18
|
+
Update the baseline revision, source JSON, geographic resources, client inventory,
|
|
19
|
+
fixtures, and catalog counts together. Vendored duplicate JSON keys are normalized
|
|
20
|
+
with last-value semantics, matching the upstream parser. Catalog data is packaged; response fixtures
|
|
21
|
+
and development tools are not. Keep client signatures synchronized with Ruby
|
|
22
|
+
implementations. Native provider modules retain original attribution in NOTICE
|
|
23
|
+
and data/ATTRIBUTION.txt.
|
|
24
|
+
|
|
25
|
+
Public feed checks are explicit: `bundle exec ruby bin/audit-providers --tag
|
|
26
|
+
velib --output provider-status.json`, or run the manual GitHub workflow. Omitting
|
|
27
|
+
`--tag` checks all predefined networks with two workers. The timeout defaults to
|
|
28
|
+
15 seconds per update. Credentials are not used by this audit. Do not capture
|
|
29
|
+
private responses or secrets in fixtures, issue reports, logs, or screenshots.
|
|
30
|
+
|
|
31
|
+
Working catalog entries and unavailable operator feeds are distinct. Retain
|
|
32
|
+
retired/unreachable entries and describe the evidence and check date in
|
|
33
|
+
PROVIDERS.md. Every fix to a live parser requires an offline regression fixture.
|