0.0
No commit activity in last 3 years
No release in over 3 years
Simple slugs for ActiveRecord.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 3.0.3
>= 0
 Project Readme

SimpleSlugs

simple_slugs aims to be an as-simple-as-possible implementation of slugging/permalink functionality for ActiveRecord 3, but still be I18n-ready by providing transliteration support.

Usage

simple_slugs adds an act_macro to activate slugging support for an ActiveRecord model:

  class Post
    has_slug
  end

simple_slugs has the following assumptions/defaults:

  • The model has a column named “slug” which is used for the slug.
  • The model has a column named “title” or “name” which is used as a source for the slug.
  • There’s no scope to be taken into account when checking for uniqueness of slugs.
  • The slug only needs to be updated if the slug column is blank.

You can overwrite these defaults as follows:

  class Post
    has_slug :slug_name => :permalink,  # use the permalink column for storing the slug
             :source    => :heading,    # use the heading column as a source
             :on_blank  => false,       # always update the slug
             :scope     => :blog_id     # scope uniqueness of slugs to the current blog_id
  end

Slugging

simple_slugs performs the following operations on the source value (e.g. post.title):

  transliterate! # using the current locale, e.g. German "Ä" => "Ae"
  spacify!       # replace everything except word chars with spaces
  join_spaces!   # replace duplicate spaces with single spaces
  strip!         # strip leading and tailing spaces
  downcase!      # downcase the string
  dasherize!     # replace spaces with dashes