#!/usr/bin/ruby VERSION = "2.1.0" BINARY_NAME = "units" begin args = ARGV.dup if args.empty? input = STDIN.gets else input = "" args.each do |arg| if input != "" input = input + " " + arg.dup else input = arg.dup end end end input.strip! if input == "-v" or input == "--version" puts "blaconvert v"+VERSION exit end mid = 0 from = "" to = "" num = 0 words = input.split(" ") for i in 0..words.length-1 if words[i] == "in" or words[i] == "to" mid = i end end if words.length == 3 && mid == 0 num = Float(words[0]) from = words[1] to = words[2] elsif words.length == 2 && mid == 0 num = 1 from = words[0] to = words[1] elsif mid > 0 for i in 1..mid-1 from += words[i] end for i in mid+1..words.length-1 to += words[i] end num = Float(words[0]) else puts "Invalid input! Try !convert [amount] [from-unit] to [to-unit] e.g !convert 2 cm to inches" exit end if from == "F" && to == "C" temp = (num - 32) / 1.8 puts "#{num} F = #{temp} C" elsif from == "C" && to == "F" temp = (num * 1.8) + 32 puts "#{num} C = #{temp} F" else out = %x(#{BINARY_NAME} -t1 #{from} #{to}) outs = out.split(" ") if outs[0] == "Unknown" from.upcase! out = %x(#{BINARY_NAME} -t1 #{from} #{to}) outs = out.split(" ") if outs[0] == "Unknown" to.upcase! out = %x(#{BINARY_NAME} -t1 #{from} #{to}) outs = out.split(" ") if outs[0] == "Unknown" puts out exit end end elsif outs[0] == "conformability" puts "Incompatible units. Can't convert from #{from} to #{to}" exit end puts "#{num} #{from} = #{num * Float(out)} #{to}" end end