Module: Ramverk::String

Defined in:
lib/ramverk/string.rb

Overview

Conveniences for inflecting and working with string manipulation.

Class Method Summary collapse

Class Method Details

.classify(string) ⇒ String

Return a CamelCase version of the string.

Examples:

string = "ramverk_string"
Ramverk::String.classify(string) # => 'RamverkString'

Parameters:

  • string (String)

    String to be transformed.

Returns:

  • (String)

    The transformed string



40
41
42
43
44
45
# File 'lib/ramverk/string.rb', line 40

def classify(string)
  words = underscore(string).split(%r{_|::|\/|\-}).map!(&:capitalize)
  delimiters = underscore(string).scan(%r{_|::|\/|\-})
  delimiters.map! { |delimiter| delimiter == "_" ? "" : "::" }
  words.zip(delimiters).join
end

.underscore(string) ⇒ String

Return a downcased and underscore separated version of the string.

Examples:

string = "RamverkString"
Ramverk::String.underscore(string) # => 'ramverk_string'

Parameters:

  • string (String)

    String to be transformed.

Returns:

  • (String)

    The transformed string.



19
20
21
22
23
24
25
26
27
# File 'lib/ramverk/string.rb', line 19

def underscore(string)
  string = +string.to_s
  string.gsub!("::", "/")
  string.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
  string.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
  string.gsub!(/[[:space:]]|\-/, '\1_\2')
  string.downcase!
  string
end