aq1018 / dm-is-slug
- Source
- Commits
- Network (3)
- Issues (2)
- Downloads (0)
- Wiki (1)
- Graphs
-
Tree:
3e5d855
commit 3e5d855ea849cad2230b320d439e9086cd7b0505
tree ff2ec9ceb73b428dc59ae7daae975c5de753f542
parent a863a978c6fc780fea8a6ebdeb18fb1c9ab65875
tree ff2ec9ceb73b428dc59ae7daae975c5de753f542
parent a863a978c6fc780fea8a6ebdeb18fb1c9ab65875
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed Dec 24 17:48:37 -0800 2008 | |
| |
History.txt | Thu Aug 28 21:47:23 -0700 2008 | |
| |
LICENSE | Sun Jan 11 23:40:12 -0800 2009 | |
| |
Manifest.txt | Thu Aug 28 21:47:23 -0700 2008 | |
| |
README.txt | ||
| |
Rakefile | Mon Jan 12 00:14:46 -0800 2009 | |
| |
TODO | Mon Jan 12 00:14:46 -0800 2009 | |
| |
dm-is-slug.gemspec | ||
| |
lib/ | ||
| |
spec/ | ||
| |
tasks/ | Sun Jan 11 19:24:37 -0800 2009 |
README.txt
= dm-is-slug
DataMapper plugin for creating and slugs(permalinks).
== Installation
NOTE: You no longer need to download dm-more source code in order to install
this.
All you need to do is:
$ sudo rake install
Remember to require it in your app's init.rb
dependency 'dm-is-slug'
== Getting started
Lets say we have a post-class, and we want to generate permalinks or slugs for all posts.
class Post
include DataMapper::Resource
property :id, Serial
property :title, String
property :content, String
# here we define that it should have a slug that uses title as the permalink
# it will generate an extra slug property of String type, with the same size as title
is :slug, :source => :title
end
Let's Say we need to define a permalink based on a method instead of a property.
class User
include DataMapper::Resource
property :id, Serial
property :email, String
property :password, String
# we only want to strip out the domain name
# and use only the email account name as the permalink
def slug_for_email
email.split("@").first
end
# here we define that it should have a slug that uses title as the permalink
# it will generate an extra slug property of String type, with the same size as title
is :slug, :source => :slug_for_email, :size => 255
end
You can now find objects by slug like this:
post = Post.first(:slug => "your_slug")

