Merge pull request #1680 from robbkidd/reduce_note_observer_complexity
Reduce complexity: replace case statement with method lookup.
This commit is contained in:
commit
3950b8e8c7
|
@ -16,16 +16,11 @@ class NoteObserver < ActiveRecord::Observer
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def notify_team_of_new_note(note)
|
def notify_team_of_new_note(note)
|
||||||
team_without_note_author(note).map do |u|
|
notify_method = 'note_' + note.noteable_type.underscore + '_email'
|
||||||
case note.noteable_type
|
|
||||||
when "Commit"; Notify.note_commit_email(u.id, note.id).deliver
|
if Notify.respond_to? notify_method
|
||||||
when "Issue"; Notify.note_issue_email(u.id, note.id).deliver
|
team_without_note_author(note).map do |u|
|
||||||
when "Wiki"; Notify.note_wiki_email(u.id, note.id).deliver
|
Notify.send(notify_method.to_sym, u.id, note.id).deliver
|
||||||
when "MergeRequest"; Notify.note_merge_request_email(u.id, note.id).deliver
|
|
||||||
when "Wall"; Notify.note_wall_email(u.id, note.id).deliver
|
|
||||||
when "Snippet"; true # no notifications for snippets?
|
|
||||||
else
|
|
||||||
true
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -90,7 +90,7 @@ describe NoteObserver do
|
||||||
it 'does nothing for a new note on a snippet' do
|
it 'does nothing for a new note on a snippet' do
|
||||||
note.stub(:noteable_type).and_return('Snippet')
|
note.stub(:noteable_type).and_return('Snippet')
|
||||||
|
|
||||||
subject.send(:notify_team_of_new_note, note).should == [true, true]
|
subject.send(:notify_team_of_new_note, note).should be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue