Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Small gem to create dynamic permalinks from an objects method

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 Gemfile
Octocat-spinner-32 README.md
Octocat-spinner-32 Rakefile
Octocat-spinner-32 make_permalink.gemspec
README.md

Make Permalink Build Status

make_permalink is a simple gem that allows you to easily create Permalinks (url-friendly-output) for methods in your objects. You don't need any database storage to make it work which is just awesome!

Example

  class Post
    make_permalink :title
  end

  p = Post.create(:title => "Hello World!")
  p.permalink   # => "1-hello-world"

If you're using Rails and you want your URLs to have the Permalink and not only the id, just override the to_param method to your model:

  class Post < ActiveRecord::Base
    make_permalink :title

    def to_param
      permalink
    end
  end

Install

To install make_permalink just add it to your Gemfile and run bundle install

gem 'make_permalink'

Options

Non ascii characters

You can have a Permalink that won't change non-ascii.

:replace_non_ascii: If set to false non-ascii chars won't be replaced. Default is true

  class Post
    make_permalink :title, :replace_non_ascii => false
  end

  p = Post.create(:title => "Let's rock & roll")
  p.permalink   # => "1-let-s-rock-roll"

Notice that if you don't replace non-ascii chars the gem will try to convert the symbols to workds.

  # You will get this with the default behavior 
  p.permalink  # => "1-lets-rock-and-roll"

Remove id from permalink

I don't really like to have the ID of the object on the Permalink, so I just added an option to remove it. Just call the method with :include_id => false and you're done! The problem with this is that querying would be much harder, since you don't have a permalink column in your database.

:include_id: is true by default but just change it to remove the id from the Permalink.

Bugs/Contact

If you need to contact me about a bug or anythig, please open an issue.

Also, feel free to patch it as needed, every fix/refactoring/extension is more than welcome!

Nicolás Hock Isaza
@nhocki on Twitter
nhocki@gmail.com

Copyright (c) 2012 Nicolás Hock Isaza, released under the MIT license

Something went wrong with that request. Please try again.