Module: Pageflow::AutoGeneratedPermaId

Extended by:
ActiveSupport::Concern
Included in:
Chapter, Page, RevisionComponent
Defined in:
app/models/concerns/pageflow/auto_generated_perma_id.rb

Overview

Add a perma_id attribute of type integer. The perma_id is automatically generated on create and remains unchanged throughout the models lifecycle.

Instance Method Summary collapse

Instance Method Details

#ensure_perma_idObject



12
13
14
15
16
17
18
19
20
21
# File 'app/models/concerns/pageflow/auto_generated_perma_id.rb', line 12

def ensure_perma_id
  return if perma_id.present?

  entry = entry_for_auto_generated_perma_id

  entry.with_lock do
    entry.increment!(:perma_id_counter)
    self.perma_id = entry.perma_id_counter
  end
end

#entry_for_auto_generated_perma_idObject

Raises:

  • (NotImplementedError)


23
24
25
26
# File 'app/models/concerns/pageflow/auto_generated_perma_id.rb', line 23

def entry_for_auto_generated_perma_id
  raise NotImplementedError,
        "#{self.class.name} must implement #entry_for_auto_generated_perma_id"
end