From 521c62d09b3d69d8d86f9f93229c62adafd85385 Mon Sep 17 00:00:00 2001 From: Dan Elbert Date: Sat, 22 Sep 2018 01:56:39 -0500 Subject: [PATCH] add serving logic --- app/models/recipe.rb | 8 ++++++-- docker-compose-rlyeh.yml | 1 + spec/models/recipe_spec.rb | 10 ++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/models/recipe.rb b/app/models/recipe.rb index afdfced..ada1cf0 100644 --- a/app/models/recipe.rb +++ b/app/models/recipe.rb @@ -90,8 +90,12 @@ class Recipe < Ingredient def yields_list @yields_list ||= self.yields.to_s.split(',').concat(['1 each']).map { |y| y.strip }.select { |y| y.present? }.map do |y| begin - UnitConversion::parse(y) - rescue UntConversion::UnparseableUnitError + vu = UnitConversion::parse(y) + if vu.unit.nil? + vu = UnitConversion::ValueUnit.for(vu.value, 'servings') + end + vu + rescue UnitConversion::UnparseableUnitError nil end end.compact diff --git a/docker-compose-rlyeh.yml b/docker-compose-rlyeh.yml index d88a575..ed5e04a 100644 --- a/docker-compose-rlyeh.yml +++ b/docker-compose-rlyeh.yml @@ -14,6 +14,7 @@ services: environment: - RAILS_USE_MEMCACHE=true - PASSENGER_APP_ENV=production + - RAILS_ENV=production env_file: /etc/default/parsley volumes: - /var/log/parsley/:/home/app/parsley/log diff --git a/spec/models/recipe_spec.rb b/spec/models/recipe_spec.rb index 587094e..8ed8775 100644 --- a/spec/models/recipe_spec.rb +++ b/spec/models/recipe_spec.rb @@ -46,6 +46,16 @@ RSpec.describe Recipe, type: :model do expect(l1.first).not_to equal(l2.first) end + + it 'converts a bare value into a servings unit' do + r = create(:recipe, yields: '3') + l = r.yields_list + expect(l.length).to eq 2 + s = l.detect { |y| y.unit.unit == 'servings' } + expect(s).to be_a UnitConversion::ValueUnit + expect(s.raw_value).to eq 3 + expect(s.unit.unit).to eq 'servings' + end end describe '#custom_units' do