class CalculatorController < ApplicationController def index end def calculate input = params[:input] output_unit = params[:output_unit] data = {errors: [], output: ''} begin unit = UnitConversion.parse(input) if output_unit.present? unit = unit.convert(output_unit) data[:output] = unit.to_s else data[:output] = unit.auto_unit.to_s end rescue UnitConversion::UnparseableUnitError => e data[:errors] << e.message end render json: data end end