CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Thu, 07 Aug 2025 03:32:00 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20090903155513
location: https://web.archive.org/web/20090903155513/https://github.com/technoweenie/permalink_fu/tree
server-timing: captures_list;dur=0.807611, exclusion.robots;dur=0.029491, exclusion.robots.policy;dur=0.012688, esindex;dur=0.014415, cdx.remote;dur=26.714573, LoadShardBlock;dur=256.618526, PetaboxLoader3.datanode;dur=155.880880, PetaboxLoader3.resolve;dur=45.674460
x-app-server: wwwb-app214
x-ts: 302
x-tr: 348
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app214; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 301
server: nginx
date: Thu, 07 Aug 2025 03:32:00 GMT
content-type: text/html; charset=utf-8
content-length: 121
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Thu, 03 Sep 2009 15:55:09 GMT
x-archive-orig-connection: close
x-archive-orig-status: 301 Moved Permanently
location: https://web.archive.org/web/20090903155513/https://github.com/technoweenie/permalink_fu/tree/master
x-archive-orig-x-runtime: 187ms
x-archive-orig-cache-control: no-cache
x-archive-orig-content-length: 121
cache-control: max-age=1800
memento-datetime: Thu, 03 Sep 2009 15:55:13 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Thu, 27 Mar 2008 22:24:37 GMT", ; rel="prev memento"; datetime="Sat, 04 Jul 2009 21:17:02 GMT", ; rel="memento"; datetime="Thu, 03 Sep 2009 15:55:13 GMT", ; rel="next memento"; datetime="Mon, 02 Nov 2009 17:34:34 GMT", ; rel="last memento"; datetime="Mon, 02 Nov 2009 17:34:34 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_11_20090903140600_crawl100.gpg-c/52_11_20090903155310_crawl101.arc.gz
server-timing: captures_list;dur=1.390537, exclusion.robots;dur=0.016816, exclusion.robots.policy;dur=0.007147, esindex;dur=0.011098, cdx.remote;dur=133.382753, LoadShardBlock;dur=154.926080, PetaboxLoader3.datanode;dur=87.068513, PetaboxLoader3.resolve;dur=139.835447, load_resource;dur=121.205965
x-app-server: wwwb-app214
x-ts: 301
x-tr: 436
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Thu, 07 Aug 2025 03:32:01 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Thu, 03 Sep 2009 15:55:13 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-x-runtime: 782ms
x-archive-orig-etag: "c74dbf9942664e3020f0b141f264fc04"
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-orig-content-length: 22425
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Thu, 03 Sep 2009 15:55:13 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 23 Mar 2008 23:52:14 GMT", ; rel="prev memento"; datetime="Tue, 25 Aug 2009 03:43:54 GMT", ; rel="memento"; datetime="Thu, 03 Sep 2009 15:55:13 GMT", ; rel="next memento"; datetime="Sat, 26 Sep 2009 06:21:17 GMT", ; rel="last memento"; datetime="Tue, 12 Jul 2022 04:29:31 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_11_20090903140600_crawl100.gpg-c/52_11_20090903155310_crawl101.arc.gz
server-timing: captures_list;dur=0.510385, exclusion.robots;dur=0.019141, exclusion.robots.policy;dur=0.008596, esindex;dur=0.011135, cdx.remote;dur=44.684093, LoadShardBlock;dur=225.447128, PetaboxLoader3.datanode;dur=355.063248, PetaboxLoader3.resolve;dur=194.701370, load_resource;dur=369.346164
x-app-server: wwwb-app214
x-ts: 200
x-tr: 695
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
technoweenie's permalink_fu at master - GitHub
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Description: | ActiveRecord plugin for automatically converting fields to permalinks. edit |
Homepage: | edit |
Public Clone URL: |
git://github.com/technoweenie/permalink_fu.git
Give this clone URL to anyone.
git clone git://github.com/technoweenie/permalink_fu.git
|
Your Clone URL: |
Use this clone URL yourself.
git clone git@github.com:technoweenie/permalink_fu.git
|

Martin Emde (author)
Wed Mar 11 22:23:49 -0700 2009
name | age | message | |
---|---|---|---|
![]() |
README | Wed Mar 11 22:23:49 -0700 2009 | Test for permalinks that escape to nothing prin... [Martin Emde] |
![]() |
init.rb | Thu Sep 25 00:12:30 -0700 2008 | remove the last bits of self.included and self.... [technoweenie] |
![]() |
lib/ | Wed Mar 11 21:27:28 -0700 2009 | Don't check uniqueness if !permalink_changed? B... [Martin Emde] |
![]() |
test/ | Wed Mar 11 22:23:49 -0700 2009 | Test for permalinks that escape to nothing prin... [Martin Emde] |
README
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?
This feature is coming soon. Sit tight!