gitlabhq/gitlabhq — pull request #1675 by robbkidd (2012-10-10 22:15:51+00:00)
Title: Separate observing of Note and MergeRequests

It's been awhile since I tackled the observers. `Note` and `MergeRequest` had not seen any love yet and were still mashed together in `MailerObserver`. Here is my latest on fixing that with separate observers for `Note` and `MergeRequest`.

* Move `is_assigned?` and `is_being_xx?` methods to `IssueCommonality`

This is behavior merge requests have in common with issues. Moved
methods to `IssueCommonality` role. Put specs directly into
`merge_request_spec.rb` because setup differs for issues and MRs
specifically in the "closed" factory to use.

* Add `MergeRequestObserver`. Parallels `IssueObserver` in almost every way.

Ripe for refactoring, but tricky because of the different mailer methods and views.

* Rename `MailerObserver` to `NoteObserver`

With merge request observing moved out of `MailerObserver`, all that
was left was `Note` logic. Renamed to `NoteObserver`, added tests and
updated application config for new observer names. Refactored
`NoteObserver` to use the note's author and not rely on `current_user`.

* Set `current_user` for `MergeRequestObserver`

`IssueObserver` and `MergeRequestObserver` are the only observers that
need a reference to the `current_user` that they cannot look up on
the objects they are observing.