Module: OvertureMaps::Releases
- Defined in:
- lib/overture_maps/releases.rb
Overview
Discovers available Overture releases. Primary source is the official STAC catalog; falls back to listing the bucket's release/ prefixes. Results are memoized per process.
Defined Under Namespace
Classes: Error
Constant Summary collapse
- STAC_CATALOG_URL =
"https://stac.overturemaps.org/catalog.json"- RELEASE_FORMAT =
/\A\d{4}-\d{2}-\d{2}(?:\.\d+)?\z/- RELEASE_PATTERN =
/\d{4}-\d{2}-\d{2}(?:\.\d+)?/
Class Method Summary collapse
-
.all ⇒ Object
All known releases, newest first.
-
.current ⇒ Object
The release to use: explicit config wins, otherwise latest.
- .latest ⇒ Object
- .reset! ⇒ Object
- .validate!(release) ⇒ Object
Class Method Details
.all ⇒ Object
All known releases, newest first.
18 19 20 |
# File 'lib/overture_maps/releases.rb', line 18 def all @all ||= (from_stac || from_bucket).sort.reverse.freeze end |
.current ⇒ Object
The release to use: explicit config wins, otherwise latest.
27 28 29 30 31 32 |
# File 'lib/overture_maps/releases.rb', line 27 def current configured = OvertureMaps.configuration.release return validate!(configured) if configured latest end |
.latest ⇒ Object
22 23 24 |
# File 'lib/overture_maps/releases.rb', line 22 def latest all.first or raise Error, "no Overture releases found" end |
.reset! ⇒ Object
42 43 44 |
# File 'lib/overture_maps/releases.rb', line 42 def reset! @all = nil end |
.validate!(release) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/overture_maps/releases.rb', line 34 def validate!(release) unless release.to_s.match?(RELEASE_FORMAT) raise Error, "invalid release #{release.inspect} (expected e.g. 2026-06-17.0)" end release.to_s end |