class String def to_snake_case gsub!(/::/, "/") gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2') gsub!(/([a-z\d])([A-Z])/, '\1_\2') tr!("-", "_") downcase! self end def to_camel_case return self if self !~ /_/ && self =~ /[A-Z]+.*/ split("_").map(&:capitalize).join end def to_constant Object.const_get(self) end end