This is the final refactoring I want to do on IssueMovesController for now. Using pull up method, I moved the last duplicated method from IssueMovesController to ApplicationController. Before 1 2 3 4 5 6 class IssuesController unsaved_issue_ids.size, :total => issues.size, :ids => '#' + unsaved_issue_ids.join(', #')) end end endclass IssuesController unsaved_issue_ids.size, :total => issues.size, :ids …
Problems when you don’t Refactor Rails: Test Duplication
I’ve already written about the problem of code duplication when you don’t refactor Rails. A similar problem I see all the time is test duplication. Test Duplication As Rubyists, we are lucky to have unit testing deeply ingrained in our community. Many developers write tests, some even writing the tests first. But a big problem …
Redmine Refactor #90: Pull Up Method to ApplicationController
Now, in order to finish up IssueMovesController, I need to refactor the duplicated methods that I copied from IssuesController. Pull up method is a great refactoring to use in this case. Before 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class IssuesController < ApplicationController # Filter …
Redmine Refactor #89: Extract Controller: IssueMovesController
With #move and #perform_move separated in the IssuesController, I can now see a clear path to using extract controller to move them to a new controller. (Extract controller is a Rails specific refactoring that is based on extract class). Before 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …
Problems when you don’t Refactor Rails: Code Duplication
I’ve written about refactoring Redmine here but I feel I haven’t explained why refactoring is important. The most common reason is to remove code duplication. Code Duplication Code duplication occurs when an application has two sections of code that are identical or almost identical. Sometimes this happens because the application requires the duplication but most …