refactoring - How to refactor singleton methods in Ruby? -
currently have code following (simplified somewhat). eventually, i've added more , more new classes d1/d2, , think it's time refactoring make more elegant. goal of course make adding new class dx use little duplicate code possible. @ least, duplicate parts of calling fileimporter.import inside singleton method dx.import should factored out. module fileimporter def self.import(main_window, viewers) ... importer = yield file # delegate d1/d2 preparing importer object ... end end class d1 def self.import(main_window) viewers = [:v11, ] # d1 specific viewers fileimporter.import(main_window, viewers) |file| importer = self.new(file) ... # d1 specific handling of importer return importer end end end class d2 def self.import(main_window) viewers = [:v21,:v22, ] # d2 specific viewers fileimporter.import(main_window, viewers) |file| importer = self.new(file) ... # d2 specific handling of importer ...