Commit 2416e3cb19d6a668fc3274b1ae3382f4119dac1d

Authored by Robb Kidd
1 parent f6035552

Add new utility method for an issue to know whether it is being reassigned

Showing 2 changed files with 25 additions and 5 deletions   Show diff stats
app/models/issue.rb
@@ -27,7 +27,7 @@ class Issue < ActiveRecord::Base @@ -27,7 +27,7 @@ class Issue < ActiveRecord::Base
27 validates :title, 27 validates :title,
28 :presence => true, 28 :presence => true,
29 :length => { :within => 0..255 } 29 :length => { :within => 0..255 }
30 - 30 +
31 validates :description, 31 validates :description,
32 :length => { :within => 0..2000 } 32 :length => { :within => 0..2000 }
33 33
@@ -55,6 +55,15 @@ class Issue < ActiveRecord::Base @@ -55,6 +55,15 @@ class Issue < ActiveRecord::Base
55 def new? 55 def new?
56 today? && created_at == updated_at 56 today? && created_at == updated_at
57 end 57 end
  58 +
  59 + # Return the number of +1 comments (upvotes)
  60 + def upvotes
  61 + notes.select(&:upvote?).size
  62 + end
  63 +
  64 + def is_being_reassigned?
  65 + assignee_id_changed?
  66 + end
58 end 67 end
59 # == Schema Information 68 # == Schema Information
60 # 69 #
spec/models/issue_spec.rb
@@ -20,10 +20,21 @@ describe Issue do @@ -20,10 +20,21 @@ describe Issue do
20 it { Issue.should respond_to :opened } 20 it { Issue.should respond_to :opened }
21 end 21 end
22 22
23 - it { Factory.create(:issue,  
24 - :author => Factory(:user),  
25 - :assignee => Factory(:user),  
26 - :project => Factory.create(:project)).should be_valid } 23 + subject { Factory.create(:issue,
  24 + :author => Factory(:user),
  25 + :assignee => Factory(:user),
  26 + :project => Factory.create(:project)) }
  27 + it { should be_valid }
  28 +
  29 + describe '#is_being_reassigned?' do
  30 + it 'returns true if the issue assignee has changed' do
  31 + subject.assignee = Factory(:user)
  32 + subject.is_being_reassigned?.should be_true
  33 + end
  34 + it 'returns false if the issue assignee has not changed' do
  35 + subject.is_being_reassigned?.should be_false
  36 + end
  37 + end
27 38
28 describe "plus 1" do 39 describe "plus 1" do
29 let(:project) { Factory(:project) } 40 let(:project) { Factory(:project) }