The Refactoring Going back to the flay report, I used a combination of extract method and move method to move some duplication from a Controller to a shared Model method. Before 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # app/controller/users_controller.rb class UsersController @user) @membership.attributes = params[:membership] @membership.save …
Tag: ruby
Daily Refactor #35: Pull up method for finding a controller’s model object
The Refactoring Now that yesterday’s split method is done, I can use pull up method to remove several similar before_filters. I had to add a declarative method (#model_object) so each controller can state which model should be used in the finders. Before 1 2 3 4 # app/controller/application_controller.rb class ApplicationController < ActionController::Base # ... end# …
Daily Refactor #34: Split Methods in the controllers
Back after a short personal break, I’m going to start on another set of refactorings in Redmine to remove some more duplication. The Refactoring This time I used split method to separate two behaviors in six similar before_filters. Before 1 2 3 4 5 6 7 8 9 10 11 12 13 # app/controller/issue_relations_controller.rb class …
Daily Refactor #33: Extract Method in IssuesController
I’ve decided to try something different with the next refactorings. Instead of working on a single section of code until it’s very well factored, I’m going to jump around a bit and tackle the sections that smell the worst. This will be good because I can work in different sections of Redmine and remove the …
Daily Refactor #32: Inline Method in IssuesHelper#show_detail
I did this refactoring after yesterday’s but I wanted to do a separate post to clearly show how I got to the end result. The Refactoring The big duplication in #show_detail is in the case statement. Yesterday’s refactoring got it cleaned up enough so that seven cases where identical. So now refactoring the duplication is …