Module: PagesCore::HumanizableParam

Extended by:
ActiveSupport::Concern
Includes:
ActiveSupport::Inflector
Included in:
Page, Tag
Defined in:
app/models/concerns/pages_core/humanizable_param.rb

Instance Method Summary collapse

Instance Method Details

#humanized_param(slug) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'app/models/concerns/pages_core/humanizable_param.rb', line 8

def humanized_param(slug)
  return id.to_s unless slug&.present?

  "#{id}-" + transliterate(slug)
             .downcase
             .gsub(/[\[{]/, "(")
             .gsub(/}\]/, ")")
             .gsub(/[^[[:alnum:]]()-]+/, "-")
             .gsub(/-{2,}/, "-")
             .gsub(/(^-|-$)/, "")
end