about summary refs log tree commit homepage
path: root/lib/dtas/parse_freq.rb
blob: afc904884bd451a9f32738dd06c5aa95ce254932 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Copyright (C) 2015-2016 all contributors <dtas-all@nongnu.org>
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
# frozen_string_literal: true
require_relative '../dtas'
module DTAS::ParseFreq # :nodoc:

  # may return a negative frequency meaning lowpass
  def parse_freq(val, round = true)
    case val
    when String
      val = val.dup
      mult = val.sub!(/k\z/, '') ? 1000 : 1
      val = (val.to_f * mult)
    when Numeric
      val
    else
      raise ArgumentError, "non-numeric value given"
    end

    case round
    when true, :int
      val.round
    when :float
      val.to_f
    else
      raise ArgumentError, "usage: parse_freq(val, (true|:round))"
    end
  end
end