From: Martin DeMello Date: 2010-07-06T20:24:26+09:00 Subject: Re: Golf on CLI code On Tue, Jul 6, 2010 at 4:59 AM, Intransition wrote: > >   def command(argv) >      lookup = registry.map{ |cc| [cc, cc.cli] }.sort{ |a,b| b[1].size > <=> a[1].size } at the least this should be registry.map {|cc| [cc, cc.cli]}.sort_by {|a| -a[1].size} also, you're never using cc, so why carry it around? lookup = registry.map {|cc| cc.cli}.sort_by {|cli| -cli.size} and using the ever-handy symbol.to_proc lookup = registry.map(&:cli).sort_by(&:size).reverse >      x = lookup.find do |cc, cli| >        t = true >        cli.each_with_index do |r, i| >          t = t && (r === argv[i]) >        end >        t >      end # untested lookup.find do |cli| cli.zip(argv).inject(true) {|e, (i, j)| e && (i === j)} end >      cmdc = x[0] >      argv = argv[x[1].size..-1] >      return cmdc, argv >    end martin