swap-candidates #26
@ -17,9 +17,7 @@ module Tables
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def discomfort
 | 
					    def discomfort
 | 
				
			||||||
      @tables.map do |table|
 | 
					      @tables.map(&:discomfort).sum
 | 
				
			||||||
        local_discomfort(table)
 | 
					 | 
				
			||||||
      end.sum
 | 
					 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def inspect
 | 
					    def inspect
 | 
				
			||||||
@ -28,7 +26,7 @@ module Tables
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def pretty_print
 | 
					    def pretty_print
 | 
				
			||||||
      @tables.map.with_index do |table, i|
 | 
					      @tables.map.with_index do |table, i|
 | 
				
			||||||
        "Table #{i + 1} (#{table.count} ppl): (#{local_discomfort(table)}) #{table.map(&:full_name).join(', ')}"
 | 
					        "Table #{i + 1} (#{table.count} ppl): (#{table.discomfort}) #{table.map(&:full_name).join(', ')}"
 | 
				
			||||||
      end.join("\n")
 | 
					      end.join("\n")
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -55,11 +53,5 @@ module Tables
 | 
				
			|||||||
        arrangement.update!(discomfort:)
 | 
					        arrangement.update!(discomfort:)
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def local_discomfort(table)
 | 
					 | 
				
			||||||
      table.discomfort ||= DiscomfortCalculator.new(table).calculate
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,15 +1,20 @@
 | 
				
			|||||||
module Tables
 | 
					module Tables
 | 
				
			||||||
  class Table < Array
 | 
					  class Table < Array
 | 
				
			||||||
    attr_accessor :discomfort
 | 
					    attr_writer :discomfort
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def initialize(*args)
 | 
					    def initialize(*args)
 | 
				
			||||||
      super
 | 
					      super
 | 
				
			||||||
      reset
 | 
					      reset
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def reset
 | 
					    def reset
 | 
				
			||||||
      original_discomfort = discomfort
 | 
					      original_discomfort = @discomfort
 | 
				
			||||||
      @discomfort = nil
 | 
					      @discomfort = nil
 | 
				
			||||||
      original_discomfort
 | 
					      original_discomfort
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def discomfort
 | 
				
			||||||
 | 
					      @discomfort ||= DiscomfortCalculator.new(self).calculate
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user