On Sep 27, 2009, at 11:50 AM, ThomasW wrote:
> I'm parsing text files and am using a lot of regexps for this.
> Initially I was doing something like this:
>
> file.each_line { |line|
>  if line =~ /^pattern[a]*/
>    process_pattern_a(line)
>  elsif line =~ /pat+e(rn)? b\s*$/
>    process_pattern_b(line)
>  # some more elsifs
>  end
> }

This example is perfect for Ruby's case statement:

file.each_line { |line|
   case line
   when /^pattern[a]*/o
    process_pattern_a(line)
   when /pat+e(rn)? b\s*$/o
    process_pattern_b(line)
   # more when clauses
   else
     # handle no match
   end
}



Gary Wright