Because of aliasing issues, users of strings should be aware of the methods that modify the contents of a String object. Typically, methods with names ending in “!” modify their receiver, while those without a “!” return a new String. However, there are exceptions, such as String#=.
ext/nkf/lib/kconv.rb ext/bigdecimal/lib/bigdecimal/util.rb lib/scanf.rb lib/rake/ext/string.rb lib/shellwords.rb lib/csv.rb pack.c string.c transcode.c rational.c complex.c
ncancelliere gave us a very useful tip below, and I just want to make an addendum for it:
If you are using Rails, there is a CoreExtension for this called String#constantize.
"Foo::BarKeeper".constantize #=> Foo::BarKeeper
You can use it with String#camelize if you have to convert the name too
"foo/bar_keeper".camelize #=> "Foo::BarKeeper" "foo/bar_keeper".camelize.constantize #=> Foo::BarKeeper
Don’t forget to rescue NameError in case there was an invalid class name. :-)