class Cielli::Slug

Constants

Join

Public Class Methods

for(*args) click to toggle source
# File lib/cielli/slug.rb, line 5
def Slug.for(*args)
  options = args.last.is_a?(Hash) ? args.pop : {}

  join = (options[:join] || options['join'] || Join).to_s

  string = args.flatten.compact.join(' ')

  tokens = string.scan(%r`[^\s#{ join }]+`)

  tokens.map! do |token|
    token.gsub(%r`[^\p{L}/.]`, '').downcase
  end

  tokens.map! do |token|
    token.gsub(%r`[/.]`, join * 2)
  end

  tokens.join(join)
end