Module: FriendlyId::SequentiallySlugged

Defined in:
lib/friendly_id/sequentially_slugged.rb,
lib/friendly_id/sequentially_slugged/calculator.rb

Defined Under Namespace

Classes: Calculator

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.setup(model_class) ⇒ Object



5
6
7
# File 'lib/friendly_id/sequentially_slugged.rb', line 5

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

Instance Method Details

#resolve_friendly_id_conflict(candidate_slugs) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/friendly_id/sequentially_slugged.rb', line 9

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

#slug_base_classObject (private)



24
25
26
27
28
29
30
# File 'lib/friendly_id/sequentially_slugged.rb', line 24

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

#slug_columnObject (private)



32
33
34
35
36
37
38
# File 'lib/friendly_id/sequentially_slugged.rb', line 32

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