module Convert

Constants

FORMULAS

Public Class Methods

convert(input, input_format) click to toggle source
# File lib/byteme/convert.rb, line 22
def self.convert(input, input_format)
  # Sanitize input
  if !FORMULAS.keys.include?(input_format.to_sym)
    puts "Error: input format (#{input_format}) is incorrect."
    puts @usage
    return
  end

  rows = []
  FORMULAS.keys.each do |key|
    numerator = FORMULAS[input_format.to_sym][0]
    raw_value = input.to_f * numerator / FORMULAS[key.to_sym][0]
    if Parse.get
      output = ( "%.5f" % raw_value ).sub(/\.?0*$/, '')
    else
      output = raw_value.to_s.sub(/\.0*$/, '')
    end
    output_format = FORMULAS[key.to_sym][1]
    rows.push([output_format, output])
    # Add seperator between output categories.
    if ([key.to_s] & ['PB', 'pb']).any? 
      rows << :separator
    end
  end

  table = Terminal::Table.new :headings => ['Type', 'Value'], :rows => rows
  puts table
end