Now I want to start refactoring IssuesController#move so it’s two separate actions; one to display the form and one to do the actual move. This will make adding more RESTful urls and APIs to Redmine easier. To start, I create a second method that wraps the existing #move method so I can change the routing …
Tag: refactoring
Redmine Refactor #85: Extract Method in IssuesController#move
Whenever I work with legacy code I always turn to extract method and move method for most of my refactoring. Redmine’s IssuesController is no exception. Using extract method on the #move action I was able to extract several lines of code deep in the method and also remove a temporary variable. Before 1 2 3 …
Redmine Refactor #84: Extract Method in IssuesController#context_menu
I’m starting to refactor Redmine’s IssuesController again. It’s a very cluttered controller that hasn’t been refactored as it’s grown, so I’ll need to build up my confidence with it over the next few refactorings. To start I used extract method to pull out a new useful utility method to the ApplicationController. Before 1 2 3 …
Redmine Refactor #83: Self Encapsulate Field in User
I wanted to do a refactoring that I noticed while working on my redmine_lock_users plugin. Redmine tracks the User status with a single integer field and provides some constants to access them. The problem with this is that every other class has to know and use those constants to change a status. By using self …
Redmine Refactor #82: Extract Method to shoulda Macro in AccountControllerTest
I’m starting on my daily refactors again but this time I’m going to focus on the Redmine core codebase. With Redmine’s recent 1.0 release, I now have the flexibility to make some major changes to it’s internal code to get it ready for some new features. To start, I wanted to use extract method to …