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



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

def humanized_param(slug)
  return id.to_s unless slug && slug.present?
  "#{id}-" + transliterate(slug)
             .downcase
             .gsub(/[\[\{]/, "(")
             .gsub(/[\]\}]/, ")")
             .gsub(/[^[[:alnum:]]()\-]+/, "-")
             .gsub(/[\-]{2,}/, "-")
             .gsub(/(^\-|\-$)/, "")
end