2016-01-31 00:00:32 -06:00
|
|
|
class CalculatorController < ApplicationController
|
|
|
|
|
|
|
|
def index
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
def calculate
|
|
|
|
input = params[:input]
|
|
|
|
output_unit = params[:output_unit]
|
2016-03-03 13:12:42 -06:00
|
|
|
density = params[:density]
|
|
|
|
density = nil unless density.present?
|
2016-01-31 00:00:32 -06:00
|
|
|
|
2016-02-02 15:48:20 -06:00
|
|
|
data = {errors: [], output: ''}
|
2016-01-31 00:00:32 -06:00
|
|
|
|
2016-02-02 15:48:20 -06:00
|
|
|
begin
|
|
|
|
unit = UnitConversion.parse(input)
|
|
|
|
if output_unit.present?
|
2016-03-03 13:12:42 -06:00
|
|
|
unit = unit.convert(output_unit, density)
|
2016-02-02 15:48:20 -06:00
|
|
|
data[:output] = unit.to_s
|
|
|
|
else
|
|
|
|
data[:output] = unit.auto_unit.to_s
|
2016-01-31 00:00:32 -06:00
|
|
|
end
|
|
|
|
|
2016-02-02 15:48:20 -06:00
|
|
|
rescue UnitConversion::UnparseableUnitError => e
|
|
|
|
data[:errors] << e.message
|
2016-01-31 00:00:32 -06:00
|
|
|
end
|
|
|
|
|
|
|
|
render json: data
|
|
|
|
end
|
|
|
|
|
2016-03-03 13:12:42 -06:00
|
|
|
def ingredient_search
|
2018-09-11 10:38:07 -05:00
|
|
|
@foods = Food.has_density.search(params[:query]).order(:name)
|
2016-03-03 13:12:42 -06:00
|
|
|
end
|
|
|
|
|
2016-01-31 00:00:32 -06:00
|
|
|
end
|