Alternative to switch statements

Hi,

I am trying to write a ‘keyword-driven test automation framework’ in
Ruby.

Using a case statement

def field(name, args) case name

when ‘username’
name=‘login’

when ‘password’
name=‘password’
end

return $ie.text_field(:name, name).set(args)

end

def button(name)
case name

when ‘login’
name = ‘Login’

end

return $ie.button(:value, name).click

end

Calling code

field 'username', '[email protected]' field 'password', 'password123' button 'login'

I don’t like it because

  1. It is procedural
  2. Lengthy switch statements may affect performance

Could anyone suggest a way using, collections or symbols or something
else?

Thanks

aidy

On 26.03.2007 18:04, aidy wrote:

end

I don’t like it because

  1. It is procedural
  2. Lengthy switch statements may affect performance

Could anyone suggest a way using, collections or symbols or something
else?

This is an obvious case for Hash with a custom default value handler:

MAP_FIELD = Hash.new {|h,k| k}.update(
‘username’ => ‘login’
)

def field(name,args)
$ie.text_field(:name, MAP_FIELD[name]).set(args)
end

Kind regards

robert