With this refactoring I start making some major changes to IssuesController#move and #peform_move. Before 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class IssuesController params, :issue => issue, :target_project => @target_project, :copy => !!@copy }) if r = issue.move_to_project(@target_project, new_tracker, {:copy => @copy, :attributes …
Tag: redmine
Redmine Refactor #86: Extract Method to split IssuesController#move into two actions
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 …
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 …