From 52e80b4f564ae843f7c806f6910e34125326aba3 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Wed, 15 Oct 2008 09:43:22 -0700 Subject: [PATCH] Wrapped Deliverable.budget getter so it will return 0 if the budget is nil. #1708 --- app/models/deliverable.rb | 10 ++++++++++ spec/models/deliverable_spec.rb | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/app/models/deliverable.rb b/app/models/deliverable.rb index aed9315..19cb39c 100644 --- a/app/models/deliverable.rb +++ b/app/models/deliverable.rb @@ -123,6 +123,16 @@ class Deliverable < ActiveRecord::Base end end + # Wrap the budget getter so it returns 0 if budget is nil + def budget + raw_budget = read_attribute(:budget) + unless raw_budget.nil? + return raw_budget + else + return 0 + end + end + # Amount of the budget remaining to be spent def budget_remaining return self.budget - self.spent diff --git a/spec/models/deliverable_spec.rb b/spec/models/deliverable_spec.rb index 813e6bf..7a553d7 100644 --- a/spec/models/deliverable_spec.rb +++ b/spec/models/deliverable_spec.rb @@ -120,6 +120,15 @@ describe Deliverable, '.budget_ratio' do end end +describe Deliverable, '.budget' do + it 'should return 0 if the budget is nil' do + @deliverable = Deliverable.new({ :subject => 'test' }) + + @deliverable.budget.should eql(0) + @deliverable.read_attribute(:budget).should eql(nil) + end +end + describe Deliverable, '.score' do it 'should be calculated by the progress and the budget usage' do @deliverable = Deliverable.new({ :subject => 'test' })