parsley/app/controllers/calculator_controller.rb

42 lines
999 B
Ruby
Raw Normal View History

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