The Refactoring Today I used extract method to start cleaning up the new TimeGrid code I recently merged into the StuffToDo plugin. Before 1 2 3 4 5 # app/controllers/stuff_to_do_controller.rb class StuffToDoController "#{Issue.table_name}.id ASC") @time_entry = TimeEntry.new end end# app/controllers/stuff_to_do_controller.rb class StuffToDoController "#{Issue.table_name}.id ASC") @time_entry = TimeEntry.new end end After 1 2 3 4 5 …
Tag: refactoring
Daily Refactor #42: Consolidate Conditionals in StuffToDo#available
Last night I merged a large work in progress branch into StuffToDo so the refactoring I wanted to do wasn’t available anymore. But there’s always a replacement to be found (aka: always some bad code to fix). The Refactoring A few days ago I did some refactoring to StuffToDo#available in order to remove some of …
Daily Refactor #41: Consolidate Duplicate Conditional Fragments in StuffToDo
The Refactoring Today I refactored the conditional of StuffToDo#conditions_for_available using a little known library in Redmine called ARCondition. Before 1 2 3 4 5 6 7 8 9 10 11 12 13 # app/models/stuff_to_do.rb class StuffToDo < ActiveRecord::Base def self.conditions_for_available(filter_by, record_id) case filter_by when :user ["assigned_to_id = ? AND #{IssueStatus.table_name}.is_closed = ?", record_id, false ] …
Daily Refactor #40: Extract Method in StuffToDo#available
The Refactoring Working on the flay report for StuffToDo I tackled the #available method this morning. Before 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 # app/models/stuff_to_do.rb class StuffToDo :status, :conditions => ["assigned_to_id = ? AND …
Daily Refactor #39: Substitute Algorithm for Checking the Settings
Since I’m planning to release an update to my StuffToDo plugin next, I decided it could use a week of refactoring in order to clean it up. The Refactoring Today I did the second part of the refactoring from yesterday to clean up the StuffToDo plugin’s #using_projects_as_items? and #using_issues_as_items? methods. This time I used “substitute …