Class: Plurimath::Formatter::Numbers::PrecisionResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/plurimath/formatter/numbers/precision_resolver.rb

Overview

Chooses which precision source wins for one render call.

Instance Method Summary collapse

Instance Method Details

#resolve(source, precision:, base:, significant:, notation_supported:) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/plurimath/formatter/numbers/precision_resolver.rb', line 8

def resolve(source, precision:, base:, significant:, notation_supported:)
  return precision if precision

  significant_precision = significant_base_precision(source, base, significant)
  return significant_precision if significant_precision

  # Source owns input-derived digit lengths; this resolver only decides
  # which precision rule wins. Plain decimal rendering preserves
  # fractional scale, while notation precision controls coefficient
  # digits after the leading digit.
  return source.notation_precision if notation_supported

  source.decimal_precision
end