class FriendlyId::SlugGenerator

The default slug generator offers functionality to check slug candidates for availability.

Public Class Methods

new(scope, config) click to toggle source
# File lib/friendly_id/slug_generator.rb, line 6
def initialize(scope, config)
  @scope = scope
  @config = config
end

Public Instance Methods

available?(slug) click to toggle source
# File lib/friendly_id/slug_generator.rb, line 11
def available?(slug)
  if @config.uses?(::FriendlyId::Reserved) && @config.reserved_words.present? && @config.treat_reserved_as_conflict
    return false if @config.reserved_words.include?(slug)
  end

  !@scope.exists_by_friendly_id?(slug)
end
generate(candidates) click to toggle source
# File lib/friendly_id/slug_generator.rb, line 19
def generate(candidates)
  candidates.each {|c| return c if available?(c)}
  nil
end