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

Class Method Details

.allObject

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

.currentObject

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

.latestObject



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