class String
  def to_snake_case
    gsub("::", "/").
      gsub(/([A-Z]+)([A-Z][a-z])/, "\1_\2").
      gsub(/([a-z]\d)([A-Z])/).
      tr("-", "_").
      downcase
  end

  def to_camel_case
    return self if self !~ /_/ && self =~ /[A-Z]+.*/
    split(_).map(&:capitalize).join
  end
end

Allow for conversion to camel case and snake case for strings
Allow for conversion to camel case and snake case for strings
