Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
states = ["alabama","alaska","arizona","arkansas","california","colorado", "connecticut","delaware","florida","georgia","hawaii","idaho", "illinois","indiana","iowa","kansas","kentucky","louisiana", "maine","maryland","massachusetts","michigan","minnesota", "mississippi","missouri","montana","nebraska","nevada", "newhampshire","newjersey","newmexico","newyork","northcarolina", "northdakota","ohio","oklahoma","oregon","pennsylvania","rhodeisland", "southcarolina","southdakota","tennessee","texas","utah","vermont", "virginia","washington","westvirginia","wisconsin","wyoming"] module Enumerable def unique_combinations a = dup result = [] length.times { el1 = a.shift; a.each { |el2| result << [el1, el2] } } result end def normalize_and_cluster dict = {} each { |el| (dict[ yield(el) ] ||= []) << el } dict end end states.unique_combinations.normalize_and_cluster { |state1, state2| (state1 + state2).split(//).sort }.each { |k, v| puts "#{v[0].join(' + ')} = #{v[1].join(' + ')}" if v.length > 1 } # >> northcarolina + southdakota = northdakota + southcarolina
This paste will be private.
From the Design Piracy series on my blog: