- consolidate Haversine: CoordinateUtils delegates to GeoUtils; InfoLive.haversine/4 reuses it (m -> km) - AprsSymbol: collapse 3 sprite-info builders onto build_sprite_info/2 and add a sprite_info @type - DataBuilder: 3 weather unit converters share convert_unit/4 with explicit clauses for "N/A", numeric, and binary inputs - mobile_channel: do_callsign_match/2 uses pattern-match clauses for wildcard handling instead of nested if - info_live: replace nested case in position_changed? with multi-clause coords_changed?/1; format_timestamp_for_display pipelines into a guarded build_timestamp_display/1 - api_docs_live: collapse chained single-key assigns into keyword-list assign/2 calls - add strict @spec coverage on all touched helpers; tighten new specs to match dialyzer success typing (no contract_supertype warnings) |
||
|---|---|---|
| .. | ||
| aprsme | ||
| aprsme_web | ||
| mix/tasks | ||
| aprs_web.ex | ||
| aprsme.ex | ||