Sha256: 2b8ca0ddf79bee7ec8130bb696cafb5a68b27224b58b6c1c7cd62e262da31e02

Contents?: true

Size: 529 Bytes

Versions: 7

Compression:

Stored size: 529 Bytes

Contents

class String

  # The reverse of +camelcase+. Makes an underscored of a camelcase string.
  #
  # Changes '::' to '/' to convert namespaces to paths.
  #
  # Examples
  #   "SnakeCase".snakecase           #=> "snake_case"
  #   "Snake-Case".snakecase          #=> "snake_case"
  #   "SnakeCase::Errors".underscore  #=> "snake_case/errors"

  def snakecase
    gsub(/::/, '/').  # NOT SO SURE ABOUT THIS -T
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
  end

end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
facets-2.4.0 lib/facets/string/snakecase.rb
facets-2.4.1 lib/facets/string/snakecase.rb
facets-2.4.2 lib/core/facets/string/snakecase.rb
facets-2.4.3 lib/core/facets/string/snakecase.rb
facets-2.4.4 lib/core/facets/string/snakecase.rb
facets-2.4.5 lib/core/facets/string/snakecase.rb
mack-facets-0.8.2 lib/gems/facets-2.4.5/lib/core/facets/string/snakecase.rb