From: Fabian Streitel Date: 2009-08-19T02:04:23+09:00 Subject: Re: exercise in DRY --000e0cd1e058f9d5e504716d6bbf Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit How 'bout that: class Tweet def agree agree_count += 1 end def disagree disagree_count += 1 end end # pass this method either :agree or :disagree def agree_or_not( method ) tweet = tweet.find(params[:id]) tweet.send(method) render :text => consensus(method, tweet.agree_count, tweet.disagree_count) end def consensus( method, agreed, disagreed ) if method == :agree agreed = "#{agreed-1} +1" else disagreed = "#{disagreed-1} +1" end "#{agreed} – #{disagreed}" end --000e0cd1e058f9d5e504716d6bbf--