Report

marola.Report
object Report

Pure text rendering for Main (MIP-0001 §3): the ranked list (with its water column), the detailed block for the top pick, and the sea-lore paragraph.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Report.type

Members list

Value members

Concrete methods

def answer(a: Answer): String
def briefLine(rank: Int, best: BestHour): String

The pre-MIP one-liner (--brief).

The pre-MIP one-liner (--brief).

Attributes

def compass(deg: Double): String
def detail(best: BestHour): String
def facilitiesLine(f: Facilities): Option[String]

MIP-0021 §3: only amenities OSM returned are named, folded into "no data" otherwise — never "no parking" / "no lifeguard" for a facility OSM simply has no coverage for.

MIP-0021 §3: only amenities OSM returned are named, folded into "no data" otherwise — never "no parking" / "no lifeguard" for a facility OSM simply has no coverage for.

Attributes

def line(rank: Int, best: BestHour): String

Ranked-list line with the water column.

Ranked-list line with the water column.

Attributes

def lore(today: LocalDate, beachName: String, origin: Coordinates): Option[String]
def nearestTrail(beachName: String, trails: List[Trail]): Option[Trail]

MIP-0030 §3: the nearest trail whose nearBeach names this beach, or None.

MIP-0030 §3: the nearest trail whose nearBeach names this beach, or None.

Attributes

def todayFor(best: BestHour): LocalDate

"Today" in the beach's own zone: the forecast hour is tomorrow there by construction.

"Today" in the beach's own zone: the forecast hour is tomorrow there by construction.

Attributes

def trailsLine(trail: Option[Trail]): String

MIP-0030 §3: one line per beach — the trail's own length/difficulty, never a guess.

MIP-0030 §3: one line per beach — the trail's own length/difficulty, never a guess.

Attributes

def waterSummary(best: BestHour): String