-
Notifications
You must be signed in to change notification settings - Fork 901
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Problem ------- `has_paper_trail` adds too many methods to the ActiveRecord model. > If I'm counting correctly, installing the paper_trail gem adds 36 instance > methods and 10 class methods to all of your active record models. Of those > 46, 13 have a prefix, either "pt_" or "paper_trail_". I don't know what the > best way to deal with this is. Ideally, we'd add far fewer methods to > people's models. If we were able to add fewer methods to models, then I > wouldn't mind prefixing all of them. > #703 Solution -------- Add only two methods to the AR model. 1. An instance method `#paper_trail` 2. A class method `.paper_trail` The instance method would return a `RecordTrail` and the class method would return a `ClassTrail`. Those names are totally up for debate. Advantages ---------- - Plain ruby, easy to understand - Adding new methods to e.g. the `RecordTrail` does not add any methods to the AR model. - Methods privacy is more strongly enforced. - Enables isolated testing of e.g. `RecordTrail`; it can be constructed with a mock AR instance. Disadvantages ------------- - Two new classes, though they are simple.
- Loading branch information
Showing
14 changed files
with
345 additions
and
245 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.