29 lines
541 B
Ruby
29 lines
541 B
Ruby
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 |