#!/usr/bin/ruby def Foo puts 'foo' end def Bar x puts x end
At call time, to avoid Ruby to interpret them as constants, you must make clear that you are using them as functions, by using parenthesis or parameters:
Foo() #=> 'foo' Bar 3 #=> 3 Foo #=> Error: not initialized constant
Sequel uses this feature to define methods named String, Integer, etc. for creating/altering tables.