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