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