module SlugFu

Constants

VERSION

Public Class Methods

SlugFu(str, context: NoContext.instance, naming_strategy: DefaultNamingStrategy) click to toggle source
# File lib/slug_fu.rb, line 9
def SlugFu(str, context: NoContext.instance, naming_strategy: DefaultNamingStrategy)
  namer = naming_strategy.new(::SlugFu.slugify(str))

  begin
    result = namer.next
  end while context.include?(result)
  result
end
slugify(str) click to toggle source
# File lib/slug_fu.rb, line 19
def self.slugify(str)
  str.to_s.gsub(/^\s\s*/, "") # Trim left
    .gsub(/\s\s*$/, "") # Trim right
    .gsub(/\_/, "-")   # Convert underscores to hyphens
    .gsub(/&/, " and ") # Replace ampersand with " and "
    .gsub(/\s+/, "-")  # Replace extra spaces with only one hyphen
    .gsub(/[^\w\-\u00E0-\u00FC]/, "") # Strip everything but alphanumeric, hypen, and accented characters
    .gsub(/\-+/, "-") # Replace multiple hypens with one
    .downcase
end

Private Instance Methods

SlugFu(str, context: NoContext.instance, naming_strategy: DefaultNamingStrategy) click to toggle source
# File lib/slug_fu.rb, line 9
def SlugFu(str, context: NoContext.instance, naming_strategy: DefaultNamingStrategy)
  namer = naming_strategy.new(::SlugFu.slugify(str))

  begin
    result = namer.next
  end while context.include?(result)
  result
end