Sha256: 7a68e92d9096af176c0a4eae17fcd2e18f2e766d60f545449bc1fb3192fbed00

Contents?: true

Size: 820 Bytes

Versions: 3

Compression:

Stored size: 820 Bytes

Contents

require_relative "sequentially_slugged/calculator"

module FriendlyId
  module SequentiallySlugged
    def self.setup(model_class)
      model_class.friendly_id_config.use :slugged
    end

    def resolve_friendly_id_conflict(candidate_slugs)
      candidate = candidate_slugs.first
      return if candidate.nil?

      Calculator.new(
        scope_for_slug_generator,
        candidate,
        slug_column,
        friendly_id_config.sequence_separator,
        slug_base_class
      ).next_slug
    end

    private

    def slug_base_class
      if friendly_id_config.uses?(:history)
        Slug
      else
        self.class.base_class
      end
    end

    def slug_column
      if friendly_id_config.uses?(:history)
        :slug
      else
        friendly_id_config.slug_column
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/friendly_id-5.5.1/lib/friendly_id/sequentially_slugged.rb
friendly_id-5.5.1 lib/friendly_id/sequentially_slugged.rb
friendly_id-5.5.0 lib/friendly_id/sequentially_slugged.rb