Module: Ace::Demo::Atoms::PlaybackSpeedParser

Defined in:
lib/ace/demo/atoms/playback_speed_parser.rb

Constant Summary collapse

SPEED_FACTORS =
{
  "1x" => 1.0,
  "2x" => 2.0,
  "4x" => 4.0,
  "8x" => 8.0
}.freeze

Class Method Summary collapse

Class Method Details

.parse(value) ⇒ Object

Raises:

  • (ArgumentError)


16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ace/demo/atoms/playback_speed_parser.rb', line 16

def parse(value)
  return nil if value.nil?

  normalized = value.to_s.strip.downcase
  return nil if normalized.empty?

  factor = SPEED_FACTORS[normalized]
  raise ArgumentError, "Invalid playback speed: #{value}. Use one of: #{SPEED_FACTORS.keys.join(", ")}." unless factor

  {label: normalized, factor: factor}
end