<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>db/migrate/20090611075753_add_slug_to_users.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -13,6 +13,8 @@ class User &lt; ActiveRecord::Base
   validates_uniqueness_of :email, :allow_blank =&gt; true
   validates_uniqueness_of :blog_url, :twitter_user, :github_user, :allow_blank =&gt; true  
   
+  sluggable_finder :name
+  
   # Returns the full github URL for this user if has a github user, or nil if not
   def github_url
     github_user.blank? ? nil : &quot;#{GITHUB_URL}#{github_user}&quot;
@@ -22,4 +24,5 @@ class User &lt; ActiveRecord::Base
   def twitter_url
     twitter_user.blank? ? nil : &quot;#{TWITTER_URL}#{twitter_user}&quot;
   end
+
 end</diff>
      <filename>app/models/user.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;p&gt;
-	&lt;strong&gt;&lt;%= link_to h(entry.title), entry.url %&gt;&lt;/strong&gt; published&lt;%= &quot; #{time_ago_in_words entry.published} ago&quot; if entry.published %&gt; by &lt;%= link_to h(entry.feed.user.name), entry.feed.user %&gt;
-	&lt;%= link_to image_tag(url_for_gravatar(entry.feed.user.email), :alt =&gt; h(entry.feed.user.name), :title =&gt; h(entry.feed.user.name), :align =&gt; 'absmiddle', :hspace =&gt; 10), entry.feed.user if PLANETOID_CONF[:layout][:entries][:show_avatar] %&gt;
+	&lt;strong&gt;&lt;%= link_to h(entry.title), entry.url %&gt;&lt;/strong&gt; published&lt;%= &quot; #{time_ago_in_words entry.published} ago&quot; if entry.published %&gt; by &lt;%= link_to h(entry.feed.user.name), member_path(entry.feed.user) %&gt;
+	&lt;%= link_to image_tag(url_for_gravatar(entry.feed.user.email), :alt =&gt; h(entry.feed.user.name), :title =&gt; h(entry.feed.user.name), :align =&gt; 'absmiddle', :hspace =&gt; 10), member_path(entry.feed.user) if PLANETOID_CONF[:layout][:entries][:show_avatar] %&gt;
 &lt;/p&gt;
 
 &lt;% if PLANETOID_CONF[:layout][:entries][:show_summary] &amp;&amp; entry.summary %&gt;</diff>
      <filename>app/views/entries/_entry.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -20,8 +20,4 @@
 	    &lt;%= f.submit 'Update' %&gt;
 	  &lt;/p&gt;
 	&lt;% end %&gt;
-
-	&lt;%= link_to 'Show', @feed %&gt; |
-	&lt;%= link_to 'Back', feeds_path %&gt;
-
 &lt;/div&gt;
\ No newline at end of file</diff>
      <filename>app/views/feeds/edit.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@
 
 	&lt;% @feeds.each do |feed| %&gt;
 	  &lt;tr&gt;
-	    &lt;td&gt;&lt;%=link_to h(feed.user.name), feed.user %&gt;&lt;/td&gt;
+	    &lt;td&gt;&lt;%=link_to h(feed.user.name), member_path(feed.user) %&gt;&lt;/td&gt;
 	    &lt;td&gt;&lt;%= auto_link feed.feed_url %&gt;&lt;/td&gt;
 			&lt;% if admin? %&gt;
 	    &lt;td&gt;&lt;%= link_to 'Edit', edit_feed_path(feed) %&gt;&lt;/td&gt;</diff>
      <filename>app/views/feeds/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -21,5 +21,4 @@
 	  &lt;/p&gt;
 	&lt;% end %&gt;
 
-	&lt;%= link_to 'Back', feeds_path %&gt;
 &lt;/div&gt;
\ No newline at end of file</diff>
      <filename>app/views/feeds/new.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 &lt;div class=&quot;span-12 last&quot;&gt;
-	&lt;h3&gt;&lt;strong&gt;&lt;%= h project.name %&gt;&lt;/strong&gt; &lt;small&gt;by &lt;%= project.users.map {|u| &quot;#{link_to(h(u.name), u)}&quot;}.join(&quot;, &quot;) %&gt;&lt;/small&gt;&lt;/h3&gt;
+	&lt;h3&gt;&lt;strong&gt;&lt;%= h project.name %&gt;&lt;/strong&gt; &lt;small&gt;by &lt;%= project.users.map {|u| &quot;#{link_to(h(u.name), member_path(u))}&quot;}.join(&quot;, &quot;) %&gt;&lt;/small&gt;&lt;/h3&gt;
 	&lt;p&gt;&lt;%= link_to h(project.url.gsub(&quot;http://&quot;, &quot;&quot;)), h(project.url) %&gt;&lt;/p&gt;
 	&lt;blockquote&gt;&lt;%= simple_format(project.description) %&gt;&lt;/blockquote&gt;
 	</diff>
      <filename>app/views/projects/_project.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 &lt;div class=&quot;span-3&quot;&gt;
-	&lt;%= link_to image_tag(url_for_gravatar(user.email), :alt =&gt; h(user.name), :title =&gt; h(user.name)), user  if PLANETOID_CONF[:layout][:users][:show_avatar] %&gt;
+	&lt;%= link_to image_tag(url_for_gravatar(user.email), :alt =&gt; h(user.name), :title =&gt; h(user.name)), member_path(user) if PLANETOID_CONF[:layout][:users][:show_avatar] %&gt;
 &lt;/div&gt;
 &lt;div class=&quot;span-12 last&quot;&gt;
 	&lt;h3&gt;&lt;strong&gt;&lt;%= h user.name %&gt;&lt;/strong&gt;&lt;/h3&gt;</diff>
      <filename>app/views/users/_user.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -20,6 +20,7 @@ Rails::Initializer.run do |config|
   # config.gem &quot;sqlite3-ruby&quot;, :lib =&gt; &quot;sqlite3&quot;
   # config.gem &quot;aws-s3&quot;, :lib =&gt; &quot;aws/s3&quot;
   config.gem 'pauldix-feedzirra', :version =&gt; '~&gt; 0.0.12', :lib =&gt; 'feedzirra', :source =&gt; 'http://gems.github.com'
+  config.gem &quot;ismasan-sluggable_finder&quot;, :source =&gt; &quot;http://gems.github.com&quot;, :lib =&gt; 'sluggable_finder'
 
   # Only load the plugins named here, in the order given (default is alphabetical).
   # :all can be used as a placeholder for all plugins not explicitly named</diff>
      <filename>config/environment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,6 +8,9 @@ ActionController::Routing::Routes.draw do |map|
   map.resources :entries
   map.resources :feeds
   map.resources :users
+  
+  map.members '/members', :controller =&gt; 'users', :action =&gt; 'index'
+  map.member '/members/:id', :controller =&gt; 'users', :action =&gt; 'show'
 
   # The priority is based upon order of creation: first created -&gt; highest priority.
 </diff>
      <filename>config/routes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,14 +1,75 @@
-CREATE TABLE &quot;entries&quot; (&quot;id&quot; INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, &quot;feed_id&quot; integer, &quot;title&quot; varchar(255), &quot;url&quot; varchar(255), &quot;author&quot; varchar(255), &quot;summary&quot; text, &quot;content&quot; text, &quot;published&quot; datetime, &quot;categories&quot; varchar(255), &quot;created_at&quot; datetime, &quot;updated_at&quot; datetime);
-CREATE TABLE &quot;feeds&quot; (&quot;id&quot; INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, &quot;user_id&quot; integer, &quot;title&quot; varchar(255), &quot;url&quot; varchar(255), &quot;feed_url&quot; varchar(255), &quot;etag&quot; varchar(255), &quot;last_modified&quot; datetime, &quot;created_at&quot; datetime, &quot;updated_at&quot; datetime);
-CREATE TABLE &quot;projects&quot; (&quot;id&quot; INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, &quot;name&quot; varchar(255), &quot;description&quot; text, &quot;url&quot; varchar(255), &quot;created_at&quot; datetime, &quot;updated_at&quot; datetime);
-CREATE TABLE &quot;projects_users&quot; (&quot;project_id&quot; integer, &quot;user_id&quot; integer);
-CREATE TABLE &quot;schema_migrations&quot; (&quot;version&quot; varchar(255) NOT NULL);
-CREATE TABLE &quot;users&quot; (&quot;id&quot; INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, &quot;name&quot; varchar(255), &quot;email&quot; varchar(255), &quot;blog_url&quot; varchar(255), &quot;twitter_url&quot; varchar(255), &quot;github_url&quot; varchar(255), &quot;created_at&quot; datetime, &quot;updated_at&quot; datetime);
-CREATE UNIQUE INDEX &quot;unique_schema_migrations&quot; ON &quot;schema_migrations&quot; (&quot;version&quot;);
+CREATE TABLE `entries` (
+  `id` int(11) NOT NULL auto_increment,
+  `feed_id` int(11) default NULL,
+  `title` varchar(255) default NULL,
+  `url` varchar(255) default NULL,
+  `author` varchar(255) default NULL,
+  `summary` text,
+  `content` text,
+  `published` datetime default NULL,
+  `categories` varchar(255) default NULL,
+  `created_at` datetime default NULL,
+  `updated_at` datetime default NULL,
+  PRIMARY KEY  (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
+
+CREATE TABLE `feeds` (
+  `id` int(11) NOT NULL auto_increment,
+  `user_id` int(11) default NULL,
+  `title` varchar(255) default NULL,
+  `url` varchar(255) default NULL,
+  `feed_url` varchar(255) default NULL,
+  `etag` varchar(255) default NULL,
+  `last_modified` datetime default NULL,
+  `created_at` datetime default NULL,
+  `updated_at` datetime default NULL,
+  PRIMARY KEY  (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
+
+CREATE TABLE `projects` (
+  `id` int(11) NOT NULL auto_increment,
+  `name` varchar(255) default NULL,
+  `description` text,
+  `url` varchar(255) default NULL,
+  `created_at` datetime default NULL,
+  `updated_at` datetime default NULL,
+  PRIMARY KEY  (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
+
+CREATE TABLE `projects_users` (
+  `project_id` int(11) default NULL,
+  `user_id` int(11) default NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `schema_migrations` (
+  `version` varchar(255) NOT NULL,
+  UNIQUE KEY `unique_schema_migrations` (`version`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `users` (
+  `id` int(11) NOT NULL auto_increment,
+  `name` varchar(255) default NULL,
+  `email` varchar(255) default NULL,
+  `blog_url` varchar(255) default NULL,
+  `twitter_user` varchar(255) default NULL,
+  `github_user` varchar(255) default NULL,
+  `created_at` datetime default NULL,
+  `updated_at` datetime default NULL,
+  `slug` varchar(255) default NULL,
+  PRIMARY KEY  (`id`),
+  KEY `index_users_on_slug` (`slug`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
+
 INSERT INTO schema_migrations (version) VALUES ('20090520134455');
 
 INSERT INTO schema_migrations (version) VALUES ('20090520145728');
 
 INSERT INTO schema_migrations (version) VALUES ('20090520155946');
 
-INSERT INTO schema_migrations (version) VALUES ('20090528214708');
\ No newline at end of file
+INSERT INTO schema_migrations (version) VALUES ('20090528214049');
+
+INSERT INTO schema_migrations (version) VALUES ('20090528214708');
+
+INSERT INTO schema_migrations (version) VALUES ('20090609085237');
+
+INSERT INTO schema_migrations (version) VALUES ('20090611075753');
\ No newline at end of file</diff>
      <filename>db/development_structure.sql</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@
 #
 # It's strongly recommended to check this file into your version control system.
 
-ActiveRecord::Schema.define(:version =&gt; 20090528214708) do
+ActiveRecord::Schema.define(:version =&gt; 20090611075753) do
 
   create_table &quot;entries&quot;, :force =&gt; true do |t|
     t.integer  &quot;feed_id&quot;
@@ -56,6 +56,9 @@ ActiveRecord::Schema.define(:version =&gt; 20090528214708) do
     t.string   &quot;github_user&quot;
     t.datetime &quot;created_at&quot;
     t.datetime &quot;updated_at&quot;
+    t.string   &quot;slug&quot;
   end
 
+  add_index &quot;users&quot;, [&quot;slug&quot;], :name =&gt; &quot;index_users_on_slug&quot;
+
 end</diff>
      <filename>db/schema.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 jaime:
   id: 1
   name: Jaime Iniesta
+  slug: jaime-iniesta
   email: jaimeiniesta@example.com
   blog_url: http://jaimeiniesta.com
   twitter_user: jaimeiniesta
@@ -9,6 +10,7 @@ jaime:
 rai:
   id: 2
   name: Raimond Garcia
+  slug: raimond-garcia
   email: raimondgarcia@example.com
   blog_url: http://raimondgarcia.com
   twitter_user: voodoorai2000
@@ -17,6 +19,7 @@ rai:
 raul:
   id: 3
   name: Raul Murciano
+  slug: raul-murciano
   email: raulmurciano@example.com
   blog_url: http://raul.murciano.net
   twitter_user: happywebcoder
@@ -25,6 +28,7 @@ raul:
 javier:
   id: 4
   name: Javier Ramirez
+  slug: javier-ramirez
   email: javierramirez@example.com
   blog_url: http://formatinternet.com
   twitter_user: supercoco9
@@ -33,6 +37,7 @@ javier:
 emili:
   id: 5
   name: Emili Parreno
+  slug: emili-parreno
   email: emiliparreno@example.com
   blog_url: http://eparreno.com
   twitter_user: eparreno
@@ -41,6 +46,7 @@ emili:
 felipe:
   id: 6
   name: Felipe Talavera
+  slug: felipe-talavera
   email: felipetalavera@example.com
   blog_url: http://iamfelipe.com
   twitter_user: flype
@@ -49,6 +55,7 @@ felipe:
 juan:
   id: 7
   name: Juan Gallego
+  slug: juan-gallego
   email: juangallego@example.com
   blog_url: http://juan.gg
   twitter_user: nickel83
@@ -57,5 +64,6 @@ juan:
 notdeveloper:
   id: 8
   name: Not Developer
+  slug: not-developer
   email: notdeveloper@example.com
   blog_url: http://notdeveloper.example.com
\ No newline at end of file</diff>
      <filename>test/fixtures/users.yml</filename>
    </modified>
    <modified>
      <diff>@@ -135,6 +135,16 @@ class UserTest &lt; ActiveSupport::TestCase
     assert_nil users(:notdeveloper).github_url
   end
   
+  def test_should_create_slug
+    user = create_user
+    assert_equal user.slug, 'pepe-planeta'
+  end
+  
+  def test_should_not_repeat_slug
+    user = create_user(:name =&gt; 'Jaime Iniesta')
+    assert_equal user.slug, 'jaime-iniesta-2'
+  end
+  
   private
   
   def create_user(options = {})</diff>
      <filename>test/unit/user_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>51df0b7ebdf644be5f7cb7f2e279a3dec7c042e2</id>
    </parent>
  </parents>
  <author>
    <name>Jaime Iniesta</name>
    <email>jaimeiniesta@gmail.com</email>
  </author>
  <url>http://github.com/jaimeiniesta/planetoid/commit/62e3f77379f3da165632fde75486e46989ee6129</url>
  <id>62e3f77379f3da165632fde75486e46989ee6129</id>
  <committed-date>2009-06-11T01:45:01-07:00</committed-date>
  <authored-date>2009-06-11T01:45:01-07:00</authored-date>
  <message>Added sluggable_finder gem for user permalinks; Members paths</message>
  <tree>c1e14112e778c11e50dbf7c2be8f729e6b4c83fc</tree>
  <committer>
    <name>Jaime Iniesta</name>
    <email>jaimeiniesta@gmail.com</email>
  </committer>
</commit>
