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     ...