The default slug generator offers functionality to check slug candidates for availability.
# File lib/friendly_id/slug_generator.rb, line 6 def initialize(scope, config) @scope = scope @config = config end
# 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
# File lib/friendly_id/slug_generator.rb, line 19 def generate(candidates) candidates.each {|c| return c if available?(c)} nil end