Scott Comboni wrote:

> Paul Lutus wrote:

/ ...

>> Also, look at case ... when ... then sample code online for the correct
>> syntax to use.
> 
> Thanks so much Paul for the quick response.. I have about 100 codes to
> search

Oh, that's something different! In such a case, you should consider writing
something called a "dispatcher" for the sake of efficiency and
maintainability.

This is an example where stating the problem fully at the outset can really
help in finding a solution. At the level of 100 comparisons, you really
don't want to use "if ... else" or "case ...when" either. There are simply
too many comparisons for efficient use of either of the discussed
alternatives.

Here is an example dispatcher, with just a few defined command resolutions,
just to show you the pattern:

------------------------------------------

#!/usr/bin/ruby -w

class Dispatcher

   def initialize()
      @dispatch_hash = {
         "a" => :first_case,
         "b" => :second_case,
         "c" => :third_case
      }
   end

   def first_case()
      puts "first"
   end

   def second_case()
      puts "second"
   end

   def third_case()
      puts "third"
   end

   def default()
      puts "unrecognized"
   end

   def dispatch(*s)
      s.each do |com|
         send(@dispatch_hash[com] || :default)
      end
   end

end

disp = Dispatcher.new

disp.dispatch("a","b","c","d")

------------------------------------------

Output:

first
second
third
unrecognized

The idea of this design is to maximize the speed and efficiency of
dispatching entered commands, without having to write a long, inefficient
series of "if ... else" or "case ... when" structures. It is useful when
the number of commands becomes too large to handle efficiently any other
way.

This dispatcher will connect your entered string to its associated command
very quickly, and it is easy to write and maintain. It is much easier to
understand and add to than the alternatives we discussed earlier.

-- 
Paul Lutus
http://www.arachnoid.com