From 0e9b4caf5893676651f4d2bbaddf62f76db2b04d Mon Sep 17 00:00:00 2001 From: Skud Date: Fri, 29 Mar 2013 16:33:37 +1100 Subject: [PATCH] added sunniness field to plantings --- app/models/planting.rb | 3 +++ .../20130329045744_add_sunniness_to_planting.rb | 5 +++++ db/schema.rb | 3 ++- spec/factories/planting.rb | 1 + spec/models/planting_spec.rb | 17 +++++++++++++++++ 5 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20130329045744_add_sunniness_to_planting.rb diff --git a/app/models/planting.rb b/app/models/planting.rb index 311d711cf..df83ab2b8 100644 --- a/app/models/planting.rb +++ b/app/models/planting.rb @@ -13,6 +13,9 @@ class Planting < ActiveRecord::Base :to => :crop, :prefix => true + validates :sunniness, :inclusion => { :in => %w(sun semi-shade shade), + :message => "%{value} is not a valid sunniness value" } + def planting_slug "#{owner.login_name}-#{garden}-#{crop}".downcase.gsub(' ', '-') end diff --git a/db/migrate/20130329045744_add_sunniness_to_planting.rb b/db/migrate/20130329045744_add_sunniness_to_planting.rb new file mode 100644 index 000000000..8fae8d1d0 --- /dev/null +++ b/db/migrate/20130329045744_add_sunniness_to_planting.rb @@ -0,0 +1,5 @@ +class AddSunninessToPlanting < ActiveRecord::Migration + def change + add_column :plantings, :sunniness, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 4b23284c5..c652f0a99 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20130327120024) do +ActiveRecord::Schema.define(:version => 20130329045744) do create_table "comments", :force => true do |t| t.integer "post_id", :null => false @@ -130,6 +130,7 @@ ActiveRecord::Schema.define(:version => 20130327120024) do t.datetime "created_at", :null => false t.datetime "updated_at", :null => false t.string "slug" + t.string "sunniness" end add_index "plantings", ["slug"], :name => "index_plantings_on_slug", :unique => true diff --git a/spec/factories/planting.rb b/spec/factories/planting.rb index 6cda6ab21..531247609 100644 --- a/spec/factories/planting.rb +++ b/spec/factories/planting.rb @@ -5,5 +5,6 @@ FactoryGirl.define do planted_at Time.now quantity 33 description "This is a *really* good plant." + sunniness 'sun' end end diff --git a/spec/models/planting_spec.rb b/spec/models/planting_spec.rb index 53cc1b7fb..5ed234894 100644 --- a/spec/models/planting_spec.rb +++ b/spec/models/planting_spec.rb @@ -38,4 +38,21 @@ describe Planting do @planting.planted_at_string.should == "2013-03-01" end + it 'should have a sunniness value' do + @planting.sunniness.should eq 'sun' + end + + it 'all three valid sunniness values should work' do + ['sun', 'shade', 'semi-shade'].each do |s| + @planting = FactoryGirl.build(:planting, :sunniness => s) + @planting.should be_valid + end + end + + it 'should refuse invalid sunniness values' do + @planting = FactoryGirl.build(:planting, :sunniness => 'not valid') + @planting.should_not be_valid + @planting.errors[:sunniness].should include("not valid is not a valid sunniness value") + end + end