Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/workarea/ext/freedom_patches/money.rb,
lib/workarea/ext/freedom_patches/string.rb

Direct Known Subclasses

Workarea::StringId

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.optionize_seperator_regexesObject



12
13
14
# File 'lib/workarea/ext/freedom_patches/string.rb', line 12

def self.optionize_seperator_regexes
  @optionize_seperator_regexes ||= {}
end

.optionize_unwanted_chars_regexObject

These two methods are to cut down on object allocation



8
9
10
# File 'lib/workarea/ext/freedom_patches/string.rb', line 8

def self.optionize_unwanted_chars_regex
  @optionize_unwanted_chars_regex ||= /[^a-z0-9\-_]+/
end

Instance Method Details

#optionize(sep = '-') ⇒ Object Also known as: slugify, systemize



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/workarea/ext/freedom_patches/string.rb', line 16

def optionize(sep = '-')
  result = downcase
  result.strip!

  # Turn unwanted chars into the separator
  result.gsub!(String.optionize_unwanted_chars_regex, sep)

  # No more than one of the separator in a row.
  String.optionize_seperator_regexes[sep] ||= /#{Regexp.escape(sep)}{2,}/
  result.gsub!(String.optionize_seperator_regexes[sep], sep)

  result.underscore
end