diff options
author | Eric Wong <e@80x24.org> | 2015-07-18 08:25:59 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-07-18 08:25:59 +0000 |
commit | c3bb7810709a99a9886c7f96aed6fa62690a12cb (patch) | |
tree | 3bb4bc39af7ab665168efd8385b4c1b8eb10ec8e /lib/dtas/parse_freq.rb | |
parent | 2f3c9d105ab13c730c497da7d8c63f6ed11cf91f (diff) | |
download | dtas-c3bb7810709a99a9886c7f96aed6fa62690a12cb.tar.gz |
Seems a bit stupid, but oh well.
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 |