Skip to content

ActiveRecord plugin for automatically converting fields to permalinks.

Notifications You must be signed in to change notification settings

cyu/permalink_fu

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PermalinkFu

This is a simple plugin extracted from Mephisto for creating permalinks from attributes.

class Article < ActiveRecord::Base
  has_permalink :title
end

This will escape the title, making it fit to use in a URL in the after_validation callback.

Use PermalinkFu.escape to escape a string manually if you like.

If you’re having issues with Iconv, you can manually tweak PermalinkFu.translation_to PermalinkFu.translation_from. These are set to nil if Iconv is not loaded. You can also manually set them to nil if you don’t want to use iconv.

Added 3.13.2008 by Pat Nakajima

You can now add conditions to #has_permalink like so:

class Article < ActiveRecord::Base
  has_permalink :title, :if => Proc.new { |article| article.needs_permalink? }
end

Use the :if or :unless options to specify a Proc, method, or string to be called or evaluated. The permalink will only be generated if the option evaluates to true.

Added 3.11.2009 by Martin Emde

Make permalink_fu update your permalink everytime the dependent field(s) change.

class Article < ActiveRecord::Base
  has_permalink :title, :update => true
end

This will update your permalink every time title changes. Rails versions with _changed? methods will reduce the checks for uniqueness to only when the permalink field is changed.

Without :update set to true, your permalink will be set one time and subsequent changes to the field (title in this example) will not affect the permalink field. To regenerate the permalink field, set it to nil or a blank string within your model.

Old versions of rails without _changed? attribute support will result in the permalink field being regenerated every save.

Bug Fixed 3.11.2009

Permalink was not being checked for uniqueness when set directly with permalink= on rails versions with _changed?

Added 10.6.2009 by Alex Coomans

Eliminate SEO words when the size of the title is 50 characters or greater. You can either pass the value of true:

class Article < ActiveRecord::Base
  has_permalink :title, :strip_words => true
end

or pass options, like

class Article < ActiveRecord::Base
  has_permalink :title, :strip_words => {:min_length => 40, :words => %w(blah blah)}
end

About

ActiveRecord plugin for automatically converting fields to permalinks.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%