From: stephen O'D Date: 2009-04-09T05:40:06+09:00 Subject: Instantiate different class based on variable contents Lets say I have a two classes, Foo and Bar. In some code, I have a variable that can either contain the test 'Foo' or the text 'Bar'. If it contains Foo, I would like to call Foo.new (v1, v2), if it contains Bar, I would like to call Bar.new(v1, v2). Obviously I could create an IF statement, such as if var == 'Foo' then Foo.new(...) elsif var == 'Bar' then Bar.new(...) end if Or if I want to get fancy, maybe a dispatch table: dispatch = { 'Foo' => Foo, 'Bar' => Bar } obj = dispatch[var].new(...) Is there another Ruby way to do this sort of thing? Thanks, Stephen.