The Refactoring I picked a big refactoring today. What started out as a small isolated change, grew and grew as I found dependencies all over the plugin. I used move method primarily but there are several other refactorings along for the ride. Before you get hit with the wall of code, look for the code …
Tag: ruby
Daily Refactor #54: Move Method to KanbanPane
The Refactoring Today I did another simple refactoring by moving a method from Kanban to KanbanPane. Before 1 2 3 4 5 6 7 8 9 10 11 12 # app/models/kanban.rb class Kanban # Sort and group a set of issues based on IssuePriority#position def group_by_priority_position(issues) return issues.group_by {|issue| issue.priority }.sort {|a,b| a[0].position b[0].position } …
Daily Refactor #53: Move Method to KanbanPane
The Refactoring Since creating the new KanbanPane class, there has been some wrapper methods to access Kanban’s private utility methods. This refactoring uses move method to move that utility method from Kanban to KanbanPane. Before 1 2 3 4 5 6 7 8 9 10 11 12 # app/models/kanban.rb class Kanban def missing_settings(pane, options={}) skip_status …
Daily Refactor #52: Remove Middle Man Kanban#find
The Refactoring Now that everything has been refactored out of Kanban#find, there really is no use for it. All that it does is to wrap the constructor so it’s now useless code. Before 1 2 3 4 5 6 # app/models/kanban.rb class Kanban def self.find Kanban.new end end# app/models/kanban.rb class Kanban def self.find Kanban.new end …
Daily Refactor #51: Lazy Load Issues in Kanban
This change isn’t a strict refactoring since it’s adding a new feature, but since it was done with the intent of cleaning up the code I’m going to let it pass…. this time. The Refactoring The big problem with Kanban is that all callers have to use Kanban#find in order to setup the data. This …