diff options
Diffstat (limited to 'lib/dtas/parse_freq.rb')
-rw-r--r-- | lib/dtas/parse_freq.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/dtas/parse_freq.rb b/lib/dtas/parse_freq.rb new file mode 100644 index 0000000..2fd418e --- /dev/null +++ b/lib/dtas/parse_freq.rb @@ -0,0 +1,29 @@ +# Copyright (C) 2015 all contributors <dtas-all@nongnu.org> +# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt) + +require_relative '../dtas' +module DTAS::ParseFreq + + # 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 |