On Tue, May 6, 2008 at 4:55 AM, Tim Booher <ads / theboohers.org> wrote: > This function should work, but when I wrote it, I had the feeling that > there would be a much better way to code this function. In particular, I > don't let creating the discount_out variable. anyone want to give me a > nudge in the right direction? > > def discount(discount_category) > # 0 => no discount > # 1 => friend > # 2 => vet > # 3 => super-vet > case discount_category > when 1 > discount_out = 40 > when 2 > discount_out = 100 > when 3 > discount_out = 160 > else > discount_out = 0 > end > discount_out > end > > best, > > tim You already have a hash structure... def discount category #I'll set up the hash for demonstration #You would probably use class instance #variables instead, or a const for your #id to category mapping outside of the def (h = Hash[1, 40, 2, 100, 3, 160]).default = 0 #grab the category h[category] end ...in which case you could do away with the def altogether depending on what you're trying to do. Todd