<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/views/dashboard/_linkbacks.html.haml</filename>
    </added>
    <added>
      <filename>app/views/linkbacks/_linkback.html.haml</filename>
    </added>
    <added>
      <filename>spec/views/posts/trackback_help.html.haml_spec.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -3,7 +3,7 @@ class BlogSlice::Dashboard &lt; BlogSlice::Application
   before :authorization_required
   
   def dashboard
-    @dashboard = {:left =&gt; [:numbers, :posts, :drafts], :right =&gt; [:tags, :comments]}
+    @dashboard = {:left =&gt; [:numbers, :posts, :drafts, :linkbacks], :right =&gt; [:tags, :comments]}
     render
   end
 end
\ No newline at end of file</diff>
      <filename>app/controllers/dashboard.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
 class BlogSlice::Linkbacks &lt; BlogSlice::Application
   before :get_post
+  before :authorization_required
   # provides :xml, :yaml, :js
 
   def index
@@ -13,48 +14,22 @@ class BlogSlice::Linkbacks &lt; BlogSlice::Application
     display @linkback
   end
 
-  def new
-    only_provides :html
-    @linkback = Linkback.new
-    display @linkback, :form
-  end
-
-  def edit
-    only_provides :html
+  def destroy
     @linkback = (@post ? @post.linkbacks.get(params[:id]) : Linkback.get(params[:id]))
     raise NotFound unless @linkback
-    display @linkback, :form
-  end
-
-  def create
-    @linkback = Linkback.new(params[:linkback])
-    @linkback.post = @post
-    if @linkback.save
-      redirect (@post ? resource(@post, @linkback) : resource(@linkback)), :message =&gt; {:notice =&gt; &quot;Linkback was successfully created&quot;}
+    if @linkback.destroy
+      redirect (@post ? resource(@post, :linkbacks) : resource(:linkbacks))
     else
-      message[:error] = &quot;Linkback failed to be created&quot;
-      display @linkback, :form
+      raise InternalServerError
     end
   end
 
-  def update
+  def approve
     @linkback = (@post ? @post.linkbacks.get(params[:id]) : Linkback.get(params[:id]))
     raise NotFound unless @linkback
-    if @linkback.update_attributes(params[:linkback])
-      redirect (@post ? resource(@post, @linkback) : resource(@linkback))
-    else
-      display @linkback, :form
-    end
-  end
 
-  def destroy
-    @linkback = (@post ? @post.linkbacks.get(params[:id]) : Linkback.get(params[:id]))
-    raise NotFound unless @linkback
-    if @linkback.destroy
-      redirect (@post ? resource(@post, :linkbacks) : resource(:linkbacks))
-    else
-      raise InternalServerError
-    end
+    @linkback.update_attributes(:approved =&gt; true)
+    redirect slice_url(:dashboard), :message =&gt; {:notice =&gt; &quot;Linkback has been approved&quot;}
   end
   
   protected</diff>
      <filename>app/controllers/linkbacks.rb</filename>
    </modified>
    <modified>
      <diff>@@ -34,6 +34,9 @@ class BlogSlice::Posts &lt; BlogSlice::Application
     
     @comments = @post.comments
     @comment = Comment.new
+    
+    @linkbacks = @post.linkbacks.all(:approved =&gt; true, :order =&gt; [:created_at.desc])
+    
     display @post
   end
   
@@ -68,7 +71,7 @@ class BlogSlice::Posts &lt; BlogSlice::Application
     if request.method == :get
       render :trackback_help
     elsif request.method == :post
-      attributes = {:source_url =&gt; params[:url], :type =&gt; 'trackback', :direction =&gt; true}
+      attributes = {:source_url =&gt; params[:url], :type =&gt; 'trackback', :direction =&gt; true, :post_id =&gt; @post.id}
       
       [:title, :excerpt, :blog_name].each do |key|
         attributes.merge!({key =&gt; params[key]}) if params[key] and !params[key].empty?</diff>
      <filename>app/controllers/posts.rb</filename>
    </modified>
    <modified>
      <diff>@@ -58,6 +58,13 @@ module Merb
         ::BlogSlice.slice_path_for(type, *segments)
       end
       
+      def pluralize(word, number)
+        if number == 1
+          &quot;#{number} #{word}&quot;
+        else
+          &quot;#{number} #{Extlib::Inflection.pluralize(word)}&quot;
+        end
+      end
     end
   end
 end
\ No newline at end of file</diff>
      <filename>app/helpers/application_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ module Merb
                           {:published_at =&gt;       {:control =&gt; :date_and_time}},
                           {:separator =&gt;          {:label =&gt; &quot;Options&quot;}},
                           {:allow_comments =&gt;     {:control =&gt; :checkbox, :label =&gt; false, :after =&gt; &quot;Enable Comments&quot;}},
-                          {:allow_trackbacks =&gt;   {:control =&gt; :checkbox, :label =&gt; false, :after =&gt; &quot;Enable Trackbacks&quot;}},
+                          {:allow_linkbacks =&gt;    {:control =&gt; :checkbox, :label =&gt; false, :after =&gt; &quot;Enable Linkbacks (Trackbacks &amp; Pingbacks)&quot;}},
                           {:status =&gt;             {:control =&gt; :select, :collection =&gt; post_status_collection}}
                         ],
          :slice =&gt; true}</diff>
      <filename>app/helpers/posts_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
 class Linkback
   include DataMapper::Resource
+  include DataMapper::Timestamp
   
   property :id, Serial
   property :blog_name, String
@@ -12,6 +13,9 @@ class Linkback
   
   property :direction, Boolean, :default =&gt; true # true is incoming, false is outgoing
   
+  property :created_at, Time
+  property :updated_at, Time
+  
   belongs_to :post
   
   def incoming?</diff>
      <filename>app/models/linkback.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ class Post
   property :views_count, Integer, :default =&gt; 0
 
   property :allow_comments, Boolean, :default =&gt; true
-  property :allow_trackbacks, Boolean, :default =&gt; true
+  property :allow_linkbacks, Boolean, :default =&gt; true
 
   property :status, Integer, :default =&gt; 0
 </diff>
      <filename>app/models/post.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,7 @@
 - throw_content :title do
+  = link &quot;#{blog_options[:blog_title]}'s&quot;, :to =&gt; resource(:posts), :title =&gt; &quot;Visit Site&quot;
   Dashboard
 
-%p
-  = link 'Visit site', :to =&gt; resource(:posts)
-
 #dashboard
   .left
     - @dashboard[:left].each do |p|</diff>
      <filename>app/views/dashboard/dashboard.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-%h1
+- throw_content :title do
   - if @post
     = link 'Posts', :to =&gt; resource(:posts)
     \/
@@ -31,17 +31,11 @@
           / Why there is a clone here? to force the association proxy to give me the real object
           %td= link linkback.post.identify, :to =&gt; resource(linkback.post.clone) if linkback.post 
         %td
-          = link 'Edit', :to =&gt; (@post ? resource(@post, linkback, :edit) : resource(linkback, :edit)), :class =&gt; 'edit action'
+          - unless linkback.approved
+            = link 'Approve', :to =&gt; (@post ? resource(@post, linkback, :approve) : resource(linkback, :approve)), :method =&gt; 'post', :class =&gt; 'edit action'
           = link 'Delete', :to =&gt; (@post ? resource(@post, linkback) : resource(linkback)), :method =&gt; 'delete', :confirm =&gt; 'Are you sure?', :class =&gt; 'delete action'
 
-  %p= link 'New', :to =&gt; (@post ? resource(@post, :linkbacks, :new) : url(:new_linkback)), :class =&gt; 'new action'
 - else
   %p
     %span&lt;&gt;
-      No linkback yet
-    - if @post
-      &amp;nbsp;
-      %span&lt;&gt;
-        for this post
-    ,
-    = link 'create one?', :to =&gt; (@post ? resource(@post, :linkbacks, :new) : url(:new_linkback))
+      No linkback yet
\ No newline at end of file</diff>
      <filename>app/views/linkbacks/index.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-%h1
+- throw_content :title do
   - if @post
     = link 'Posts', :to =&gt; resource(:posts)
     \/
@@ -8,9 +8,6 @@
   \/
   = @linkback.blog_name
 
-%p= link 'Edit', :to =&gt; (@post ? resource(@post, @linkback, :edit) : resource(@linkback, :edit)), :class =&gt; 'edit action'
-
-
 %p#blog_name
   %strong Blog name
   =h @linkback.blog_name</diff>
      <filename>app/views/linkbacks/show.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -34,8 +34,8 @@
       .element= link tag.name, :to =&gt; resource(tag)
     - if @post.tags.empty?
       .element None
-  - if @post.allow_trackbacks
-    #trackback
+  - if @post.allow_linkbacks
+    #linkback
       You can
       = link 'trackback', :to =&gt; resource(@post, :trackback)
       this post from your own site.
@@ -45,13 +45,18 @@
     = link 'Edit', :to =&gt; resource(@post, :edit), :class =&gt; 'action edit'
     = link 'Delete', :to =&gt; resource(@post), :method =&gt; 'delete', :confirm =&gt; &quot;Are you sure?&quot;, :class =&gt; 'action delete'
 
+- if @post.allow_linkbacks and @linkbacks.size &gt; 0
+  #linkbacks_part
+    .linkbacks_number= pluralize('Response', @linkbacks.size)
+    #linkbacks= partial 'linkbacks/linkback', :with =&gt; @linkbacks
+    
 - if @post.allow_comments
-  #comments_part    
-    .comments_number= &quot;#{@comments.size} Comment#{@comments.size != 1 ? &quot;s&quot; : &quot;&quot;}&quot;
+  #comments_part
+    - unless @comments.empty?
+      .comments_number= pluralize('Comment', @comments.size)
 
-    #comments= partial 'comments/comment', :with =&gt; @comments
+      #comments= partial 'comments/comment', :with =&gt; @comments
 
     #new_comment_form
       %h3 Leave a comment
-      = render_form :comment
-%p= link 'Linkbacks', :to =&gt; url(:post_linkbacks, @post), :class =&gt; 'action view_children'
\ No newline at end of file
+      = render_form :comment
\ No newline at end of file</diff>
      <filename>app/views/posts/show.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1,16 @@
-%p You can use the trackback feature when you blog about this post.
\ No newline at end of file
+- throw_content :title do
+  = link @post.title, :to =&gt; resource(@post)
+  \/
+  Trackback URL
+
+%p You can send a trackback with your blogging platform if you write a blog article about this post.
+
+%p The trackback URL for this post is:
+
+%p
+  %input.trackback_url{:type =&gt; 'text', :value =&gt; (blog_options[:host] + resource(@post, :trackback)), :size =&gt; 90}
+
+%p
+  To know more about Trackback, check out this&amp;nbsp;
+  %a{:href =&gt; 'http://en.wikipedia.org/wiki/Trackback', :target =&gt; '_blank'}&gt; wikipedia article
+  \.
\ No newline at end of file</diff>
      <filename>app/views/posts/trackback_help.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -62,12 +62,16 @@ if defined?(Merb::Plugins)
           comments.member :approve, :method =&gt; :post
         end
 
-        posts.resources :linkbacks
+        posts.resources :linkbacks do |linkbacks|
+          linkbacks.member :approve, :method =&gt; :post
+        end
 
         posts.member :trackback
       end
       
-      scope.resources :linkbacks
+      scope.resources :linkbacks do |linkbacks|
+        linkbacks.member :approve, :method =&gt; :post        
+      end
       scope.resources :categories, :identify =&gt; :slug
       scope.resources :tags, :identify =&gt; :slug
       </diff>
      <filename>lib/blog-slice.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 body {
   font-family: Helvetica, Arial, &quot;Lucida Sans Unicode&quot;, sans-serif;
-  font-size: 11px;
+  font-size: 12px;
   text-align: center; }
 
 #container {
@@ -56,6 +56,9 @@ h2 {
     margin-top: 0;
     border: none; }
 
+a, a:active {
+  outline: none; }
+
 #message {
   margin: 0;
   width: 615px; }
@@ -221,7 +224,20 @@ form div input#post_published_at_date {
 .tags {
   background: none; }
 
-.comments_number {
+#linkback {
+  clear: left;
+  font-family: Georgia, &quot;Times New Roman&quot;, Times, serif;
+  font-weight: normal;
+  font-size: 1.1em;
+  color: #555555;
+  margin-left: 4px;
+  padding-top: 7px; }
+
+.linkback_url {
+  font-size: 1.2em;
+  padding: 2px; }
+
+.comments_number, .linkbacks_number {
   font-size: 1.5em;
   font-weight: bold;
   margin-top: 60px;
@@ -229,28 +245,32 @@ form div input#post_published_at_date {
   padding-bottom: 7px;
   border-bottom: 1px solid #888888; }
 
-#comments_part {
+#comments_part, #linkbacks_part {
   width: 470px; }
-  #comments_part #comments .comment {
+  #comments_part #comments .comment, #comments_part #comments .linkback,   #comments_part #linkbacks .comment, #comments_part #linkbacks .linkback,   #linkbacks_part #comments .comment, #linkbacks_part #comments .linkback,   #linkbacks_part #linkbacks .comment, #linkbacks_part #linkbacks .linkback {
     margin-top: 15px;
     margin-bottom: 15px;
     padding-bottom: 15px;
     background: url('/slices/blog-slice/images/grey_horizontal_line.gif') left bottom repeat-x; }
-    #comments_part #comments .comment .author {
+    #comments_part #comments .comment .author, #comments_part #comments .comment .linkback_title,     #comments_part #comments .linkback .author, #comments_part #comments .linkback .linkback_title,     #comments_part #linkbacks .comment .author, #comments_part #linkbacks .comment .linkback_title,     #comments_part #linkbacks .linkback .author, #comments_part #linkbacks .linkback .linkback_title,     #linkbacks_part #comments .comment .author, #linkbacks_part #comments .comment .linkback_title,     #linkbacks_part #comments .linkback .author, #linkbacks_part #comments .linkback .linkback_title,     #linkbacks_part #linkbacks .comment .author, #linkbacks_part #linkbacks .comment .linkback_title,     #linkbacks_part #linkbacks .linkback .author, #linkbacks_part #linkbacks .linkback .linkback_title {
       font-family: Georgia, &quot;Times New Roman&quot;, Times, serif;
       font-size: 1.3em;
       font-weight: bold; }
-      #comments_part #comments .comment .author .date {
+      #comments_part #comments .comment .author .date,       #comments_part #comments .comment .linkback_title .date,       #comments_part #comments .linkback .author .date,       #comments_part #comments .linkback .linkback_title .date,       #comments_part #linkbacks .comment .author .date,       #comments_part #linkbacks .comment .linkback_title .date,       #comments_part #linkbacks .linkback .author .date,       #comments_part #linkbacks .linkback .linkback_title .date,       #linkbacks_part #comments .comment .author .date,       #linkbacks_part #comments .comment .linkback_title .date,       #linkbacks_part #comments .linkback .author .date,       #linkbacks_part #comments .linkback .linkback_title .date,       #linkbacks_part #linkbacks .comment .author .date,       #linkbacks_part #linkbacks .comment .linkback_title .date,       #linkbacks_part #linkbacks .linkback .author .date,       #linkbacks_part #linkbacks .linkback .linkback_title .date {
         font-family: Helvetica, Arial, &quot;Lucida Sans Unicode&quot;, sans-serif;
         color: #555555;
         font-size: 0.8em;
         font-weight: normal; }
-    #comments_part #comments .comment .content {
+    #comments_part #comments .comment .content,     #comments_part #comments .linkback .content,     #comments_part #linkbacks .comment .content,     #comments_part #linkbacks .linkback .content,     #linkbacks_part #comments .comment .content,     #linkbacks_part #comments .linkback .content,     #linkbacks_part #linkbacks .comment .content,     #linkbacks_part #linkbacks .linkback .content {
       font-family: Georgia, &quot;Times New Roman&quot;, Times, serif;
       font-size: 1.2em;
       margin-left: 15px; }
-      #comments_part #comments .comment .content p {
+      #comments_part #comments .comment .content p,       #comments_part #comments .linkback .content p,       #comments_part #linkbacks .comment .content p,       #comments_part #linkbacks .linkback .content p,       #linkbacks_part #comments .comment .content p,       #linkbacks_part #comments .linkback .content p,       #linkbacks_part #linkbacks .comment .content p,       #linkbacks_part #linkbacks .linkback .content p {
         margin-left: 0; }
+  #comments_part #comments .linkback,   #comments_part #linkbacks .linkback,   #linkbacks_part #comments .linkback,   #linkbacks_part #linkbacks .linkback {
+    background: none; }
+    #comments_part #comments .linkback .admin,     #comments_part #linkbacks .linkback .admin,     #linkbacks_part #comments .linkback .admin,     #linkbacks_part #linkbacks .linkback .admin {
+      margin-top: 15px; }
 
 #new_comment_form h3 {
   font-size: 1.5em;
@@ -293,7 +313,8 @@ form div input#post_published_at_date {
 
 #dashboard {
   width: 100%;
-  overflow: auto; }
+  overflow: auto;
+  margin-top: 15px; }
   #dashboard .left, #dashboard .right {
     width: 400px;
     overflow: auto; }
@@ -366,6 +387,30 @@ form div input#post_published_at_date {
     width: 90px; }
   #dashboard .post .comments_count {
     text-align: right; }
+  #dashboard .linkback .first_column {
+    width: 200px; }
+    #dashboard .linkback .first_column .source_title {
+      display: block;
+      float: none;
+      font-size: 1em; }
+    #dashboard .linkback .first_column .type {
+      display: block;
+      float: none;
+      font-size: 0.8em; }
+  #dashboard .linkback .second_column {
+    width: 105px; }
+    #dashboard .linkback .second_column .target_post {
+      display: block;
+      float: none;
+      font-size: 0.8em; }
+    #dashboard .linkback .second_column .created_at {
+      display: block;
+      float: none;
+      font-size: 0.8em; }
+  #dashboard .linkback .third_column {
+    font-size: 0.8em;
+    width: 70px;
+    text-align: right; }
 
 .details {
   margin-top: 15px;
@@ -399,3 +444,6 @@ form div input#post_published_at_date {
 .pagination a {
   padding: 3px 4px;
   border: 1px solid #cccccc; }
+
+input.inplace_field {
+  width: 80px; }</diff>
      <filename>public/stylesheets/master.css</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,7 @@
 
 body
   :font-family                Helvetica, Arial, &quot;Lucida Sans Unicode&quot;, sans-serif
-  :font-size                  11px
+  :font-size                  12px
   :text-align                 center
   
 #container
@@ -84,6 +84,11 @@ h2
     :margin-top =             0
     :border                   none
 
+// Firefox, removes dotted active links
+a, a:active
+  :outline                    none
+
+
 // Messages
 #message
   :margin =                   0
@@ -275,9 +280,22 @@ form
 .tags
   :background                  none
 
-// Comments
+#linkback
+  :clear                        left
+  :font-family                  Georgia, &quot;Times New Roman&quot;, Times, serif
+  :font-weight                  normal
+  :font-size                    1.1em
+  :color =                      !grey
+  :margin-left =                4px
+  :padding-top =                !margin/2
+
+.linkback_url
+  :font-size =                  1.2em
+  :padding                      2px
 
-.comments_number
+// Comments &amp; Linkbacks
+
+.comments_number, .linkbacks_number
   :font-size                   1.5em
   :font-weight                 bold
   :margin-top =                !margin * 4
@@ -285,16 +303,16 @@ form
   :padding-bottom =            !margin / 2
   :border-bottom =             1px solid #888
 
-#comments_part
+#comments_part, #linkbacks_part
   :width =                     470px
   
-  #comments
-    .comment
+  #comments, #linkbacks
+    .comment, .linkback
       :margin-top =            !margin 
       :margin-bottom =         !margin
       :padding-bottom =        !margin
       :background              url('/slices/blog-slice/images/grey_horizontal_line.gif') left bottom repeat-x
-      .author
+      .author, .linkback_title
         :font-family           Georgia, &quot;Times New Roman&quot;, Times, serif
         :font-size =           1.3em
         :font-weight =         bold
@@ -309,6 +327,10 @@ form
         :margin-left =         !margin
         p
           :margin-left         0
+    .linkback
+      :background              none
+      .admin
+        :margin-top =          !margin
 
 #new_comment_form
   h3
@@ -357,6 +379,7 @@ form
 #dashboard  
   :width                      100%
   :overflow                   auto
+  :margin-top =               !margin
   .left, .right
     :width                      400px
     :overflow                   auto
@@ -432,7 +455,34 @@ form
       :width                    90px
     .comments_count
       :text-align               right
-
+  .linkback
+    .first_column
+      :width                    200px
+      .source_title
+        :display                block
+        :float                  none
+        :font-size              1em
+      .type
+        :display                block
+        :float                  none
+        :font-size              0.8em
+        
+    .second_column
+      :width                    105px
+      .target_post
+        :display                block
+        :float                  none
+        :font-size              0.8em
+      .created_at
+        :display                block
+        :float                  none
+        :font-size              0.8em
+            
+    .third_column
+      :font-size                0.8em
+      :width                    70px
+      :text-align               right
+    
 .details
   :margin-top =               !margin
   :font-size                  0.8em
@@ -473,4 +523,8 @@ form
   a
     :padding                  3px 4px
     :border =                 1px solid !light_grey
-    
+
+// In-place editor
+
+input.inplace_field
+  :width                      80px
\ No newline at end of file</diff>
      <filename>public/stylesheets/sass/master.sass</filename>
    </modified>
    <modified>
      <diff>@@ -97,160 +97,7 @@ describe BlogSlice::Linkbacks, &quot;show action&quot; do
   end
 end
 
-describe BlogSlice::Linkbacks, &quot;new action&quot; do
-  before :all do
-    Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
-  end
-  
-  after :all do
-    Merb::Router.reset! if standalone?
-  end
-
-  before :each do
-    @linkback = mock(&quot;linkback&quot;)
-    Linkback.stub!(:new).and_return(@linkback)
-  end
-  
-  it &quot;should have a route from /linkbacks/new GET&quot; do
-    request_to(&quot;/linkbacks/new&quot;, :get).should route_to(&quot;BlogSlice/linkbacks&quot;, :new)
-  end
-  
-  def do_new
-    dispatch_to(BlogSlice::Linkbacks, :new) do |controller|
-      controller.stub!(:display)
-      yield controller if block_given?
-    end
-  end
-  
-  it &quot;should be successful&quot; do
-    do_new.should be_successful
-  end
-  
-  it &quot;should create a new Linkback object&quot; do
-    Linkback.should_receive(:new).with(no_args).and_return(@linkback)
-    do_new
-  end
-  
-  it &quot;should assigns the Linkback object for the view&quot; do
-    do_new.assigns(:linkback).should == @linkback
-  end
-  
-  it &quot;should render the Linkback&quot; do
-    do_new do |controller|
-      controller.should_receive(:display).with(@linkback, :form)
-    end
-  end
-end
-
-describe BlogSlice::Linkbacks, &quot;edit action&quot; do
-  before :all do
-    Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
-  end
-  
-  after :all do
-    Merb::Router.reset! if standalone?
-  end
-
-  before :each do
-    @linkback = mock(&quot;linkback&quot;)
-    Linkback.stub!(:get).and_return(@linkback)
-  end
-  
-  it &quot;should have a route from /linkbacks/1/edit GET&quot; do
-    request_to(&quot;/linkbacks/1/edit&quot;, :get).should route_to(&quot;BlogSlice/linkbacks&quot;, :edit)
-  end
-  
-  def do_edit
-    dispatch_to(BlogSlice::Linkbacks, :edit, :id =&gt; 1) do |controller|
-      controller.stub!(:display)
-      yield controller if block_given?
-    end
-  end
-  
-  it &quot;should be successful&quot; do
-    do_edit.should be_successful
-  end
-  
-  it &quot;should get the Linkback object&quot; do
-    Linkback.should_receive(:get).with(&quot;1&quot;).and_return(@linkback)
-    do_edit
-  end
-  
-  it &quot;should raise NotFound if the Linkback object isn't found&quot; do
-    Linkback.stub!(:get).and_return(nil)
-    lambda { do_edit }.should raise_error(Merb::ControllerExceptions::NotFound)
-  end
-  
-  it &quot;should assigns the Linkback object for the view&quot; do
-    do_edit.assigns(:linkback).should == @linkback
-  end
-  
-  it &quot;should render the Linkback&quot; do
-    do_edit do |controller|
-      controller.should_receive(:display).with(@linkback, :form)
-    end
-  end
-end
-
-describe BlogSlice::Linkbacks, 'create action' do
-  before :all do
-    Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
-  end
-  
-  after :all do
-    Merb::Router.reset! if standalone?
-  end
-
-  before :each do
-    @linkback = Linkback.new
-    @linkback.stub!(:save).and_return(true)
-    @linkback.stub!(:id).and_return(1)
-    
-    Linkback.stub!(:new).and_return(@linkback)
-  end
-  
-  it &quot;should have a route from /linkbacks POST&quot; do
-    request_to(&quot;/linkbacks&quot;, :post).should route_to(&quot;BlogSlice/linkbacks&quot;, :create)
-  end
-  
-  def attributes
-    {&quot;name&quot; =&gt; &quot;some name&quot;}
-  end
-  
-  def do_create
-    dispatch_to(BlogSlice::Linkbacks, :create, :linkback =&gt; attributes) do |controller|
-      controller.stub!(:display)
-      yield controller if block_given?
-    end
-  end
-  
-  it &quot;should create a new Linkback object&quot; do
-    Linkback.should_receive(:new).with(attributes).and_return(@linkback)
-    do_create
-  end
-  
-  it &quot;should try to save the Linkback&quot; do
-    @linkback.should_receive(:save).with(no_args)
-    do_create
-  end
-  
-  it &quot;should redirect to the newly created Linkback if successful&quot; do
-    do_create.should redirect_to(resource(@linkback), :message =&gt; {:notice =&gt; &quot;Linkback was successfully created&quot;})
-  end
-  
-  it &quot;should render the form if not successful&quot; do
-    @linkback.stub!(:save).and_return(false)
-    do_create do |controller|
-      controller.should_receive(:display).with(@linkback, :form)
-    end
-  end
-  
-  it &quot;should assign the Linkback to the view&quot; do
-    do_create.assigns(:linkback).should == @linkback
-  end
-end
-
-describe BlogSlice::Linkbacks, 'update' do
+describe BlogSlice::Linkbacks, 'destroy' do
   before :all do
     Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
   end
@@ -263,56 +110,46 @@ describe BlogSlice::Linkbacks, 'update' do
     @linkback = Linkback.new(:id =&gt; &quot;1&quot;)
     Linkback.stub!(:get).and_return(@linkback)
     
-    @linkback.stub!(:update_attributes).and_return(true)
-  end
-  
-  it &quot;should have a route from /linkbacks/1 PUT&quot; do
-    request_to(&quot;/linkbacks/1&quot;, :put).should route_to(&quot;BlogSlice/linkbacks&quot;, :update)
+    @linkback.stub!(:destroy).and_return(true)
   end
   
-  def attributes
-    {&quot;name&quot; =&gt; &quot;some name&quot;}
+  it &quot;should have a route from /linkbacks/1 DELETE&quot; do
+    request_to(&quot;/linkbacks/1&quot;, :delete).should route_to(&quot;BlogSlice/linkbacks&quot;, :destroy)
   end
   
-  def do_update
-    dispatch_to(BlogSlice::Linkbacks, :update, :id =&gt; 1, :linkback =&gt; attributes) do |controller|
-      controller.stub!(:display)
+  def do_delete
+    dispatch_to(BlogSlice::Linkbacks, :destroy, :id =&gt; 1) do |controller|
       yield controller if block_given?
     end
   end
   
   it &quot;should get the Linkback from the database&quot; do
     Linkback.should_receive(:get).and_return(@linkback)
-    do_update
+    do_delete
   end
   
   it &quot;should raise NotFound if the Linkback isn't found&quot; do
     Linkback.stub!(:get).and_return(nil)
-    lambda { do_update }.should raise_error(Merb::ControllerExceptions::NotFound)
-  end
-  
-  it &quot;should try to save the Linkback&quot; do
-    @linkback.should_receive(:update_attributes).with(attributes)
-    do_update
+    lambda { do_delete }.should raise_error(Merb::ControllerExceptions::NotFound)
   end
   
-  it &quot;should redirect to the Linkback if successful&quot; do
-    do_update.should redirect_to(&quot;/linkbacks/1&quot;)
+  it &quot;should try to delete the Linkback&quot; do
+    @linkback.should_receive(:destroy)
+    do_delete
   end
   
-  it &quot;should render the form if the Linkback can't be saved&quot; do
-    @linkback.stub!(:update_attributes).and_return(false)
-    do_update do |controller|
-      controller.should_receive(:display).with(@linkback, :form)
-    end
+  it &quot;should redirect to the BlogSlice::Linkbacks list if destroyed&quot; do
+    do_delete.should redirect_to(&quot;/linkbacks&quot;)
   end
   
-  it &quot;should assign the Linkback to the view&quot; do
-    do_update.assigns(:linkback).should == @linkback
+  it &quot;should raise InternalServerError if failed&quot; do
+    @linkback.stub!(:destroy).and_return(false)
+    lambda { do_delete }.should raise_error(Merb::ControllerExceptions::InternalServerError)
   end
 end
 
-describe BlogSlice::Linkbacks, 'destroy' do
+
+describe BlogSlice::Linkbacks, &quot;approve action&quot; do
   before :all do
     Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
   end
@@ -322,50 +159,44 @@ describe BlogSlice::Linkbacks, 'destroy' do
   end
 
   before :each do
-    @linkback = Linkback.new(:id =&gt; &quot;1&quot;)
+    @linkback = mock('linkback')
     Linkback.stub!(:get).and_return(@linkback)
-    
-    @linkback.stub!(:destroy).and_return(true)
+    @linkback.stub!(:update_attributes)
   end
   
-  it &quot;should have a route from /linkbacks/1 DELETE&quot; do
-    request_to(&quot;/linkbacks/1&quot;, :delete).should route_to(&quot;BlogSlice/linkbacks&quot;, :destroy)
+  it &quot;should have a route from /linkbacks/1/approve POST&quot; do
+    request_to('/linkbacks/1/approve', :post).should route_to(&quot;BlogSlice/linkbacks&quot;, :approve)
   end
   
-  def do_delete
-    dispatch_to(BlogSlice::Linkbacks, :destroy, :id =&gt; 1) do |controller|
+  def do_approve
+    dispatch_to(BlogSlice::Linkbacks, :approve, :id =&gt; 1) do |controller|
+      controller.stub!(:display)
       yield controller if block_given?
     end
   end
   
   it &quot;should get the Linkback from the database&quot; do
-    Linkback.should_receive(:get).and_return(@linkback)
-    do_delete
+    Linkback.should_receive(:get).with(&quot;1&quot;).and_return(@linkback)
+    do_approve
   end
   
   it &quot;should raise NotFound if the Linkback isn't found&quot; do
     Linkback.stub!(:get).and_return(nil)
-    lambda { do_delete }.should raise_error(Merb::ControllerExceptions::NotFound)
+    lambda { do_approve }.should raise_error(Merb::ControllerExceptions::NotFound)
   end
   
-  it &quot;should try to delete the Linkback&quot; do
-    @linkback.should_receive(:destroy)
-    do_delete
-  end
-  
-  it &quot;should redirect to the BlogSlice::Linkbacks list if destroyed&quot; do
-    do_delete.should redirect_to(&quot;/linkbacks&quot;)
+  it &quot;should approve the linkback&quot; do
+    @linkback.should_receive(:update_attributes).with(:approved =&gt; true)
+    do_approve
   end
   
-  it &quot;should raise InternalServerError if failed&quot; do
-    @linkback.stub!(:destroy).and_return(false)
-    lambda { do_delete }.should raise_error(Merb::ControllerExceptions::InternalServerError)
+  it &quot;should redirect to the dashboard&quot; do
+    do_approve.should redirect_to('/dashboard')
   end
 end
 
 
 
-
 # Nested
 
 require File.dirname(__FILE__) + '/../spec_helper'
@@ -503,302 +334,6 @@ describe BlogSlice::Linkbacks, &quot;show action&quot; do
   end
 end
 
-describe BlogSlice::Linkbacks, &quot;new action&quot; do
-  before :all do
-    Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
-  end
-  
-  after :all do
-    Merb::Router.reset! if standalone?
-  end
-
-  before :each do
-    @post = mock('post')
-    Post.stub!(:get).and_return(@post)
-    
-    @linkback = mock(&quot;linkback&quot;)
-    Linkback.stub!(:new).and_return(@linkback)
-  end
-  
-  it &quot;should have a route from /posts/1/linkbacks/new GET&quot; do
-    request_to(&quot;/posts/1/linkbacks/new&quot;, :get).should route_to(&quot;BlogSlice/linkbacks&quot;, :new)
-  end
-  
-  def do_new
-    dispatch_to(BlogSlice::Linkbacks, :new, :slug =&gt; 1) do |controller|
-      controller.stub!(:display)
-      yield controller if block_given?
-    end
-  end
-  
-  it &quot;should be successful&quot; do
-    do_new.should be_successful
-  end
-  
-  it &quot;should get the post from the database&quot; do
-    Post.should_receive(:get).with(&quot;1&quot;).and_return(@post)
-    do_new
-  end
-  
-  it &quot;should raise NotFound if the post isn't found&quot; do
-    Post.stub!(:get).and_return(nil)
-    lambda { do_new }.should raise_error(Merb::ControllerExceptions::NotFound)
-  end
-  
-  it &quot;should create a new linkback object&quot; do
-    Linkback.should_receive(:new).with(no_args).and_return(@linkback)
-    do_new
-  end
-  
-  it &quot;should assigns the linkback object for the view&quot; do
-    do_new.assigns(:linkback).should == @linkback
-  end
-
-  it &quot;should assign the post parent to the view&quot; do
-    do_new.assigns(:post).should == @post
-  end  
-
-  it &quot;should render the linkback&quot; do
-    do_new do |controller|
-      controller.should_receive(:display).with(@linkback, :form)
-    end
-  end
-end
-
-describe BlogSlice::Linkbacks, &quot;edit action&quot; do
-  before :all do
-    Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
-  end
-  
-  after :all do
-    Merb::Router.reset! if standalone?
-  end
-
-  before :each do
-    @post = mock('post')
-    Post.stub!(:get).and_return(@post)
-    
-    @linkbacks = mock('linkbacks')
-    @post.stub!(:linkbacks).and_return(@linkbacks)
-
-    @linkback = mock(&quot;linkback&quot;)
-    @linkbacks.stub!(:get).and_return(@linkback)
-  end
-  
-  it &quot;should have a route from /posts/1/linkbacks/2/edit GET&quot; do
-    request_to(&quot;/posts/1/linkbacks/2/edit&quot;, :get).should route_to(&quot;BlogSlice/linkbacks&quot;, :edit)
-  end
-  
-  def do_edit
-    dispatch_to(BlogSlice::Linkbacks, :edit, :slug =&gt; 1, :id =&gt; 2) do |controller|
-      controller.stub!(:display)
-      yield controller if block_given?
-    end
-  end
-  
-  it &quot;should be successful&quot; do
-    do_edit.should be_successful
-  end
-  
-  it &quot;should get the post from the database&quot; do
-    Post.should_receive(:get).with(&quot;1&quot;).and_return(@post)
-    do_edit
-  end
-  
-  it &quot;should raise NotFound if the post isn't found&quot; do
-    Post.stub!(:get).and_return(nil)
-    lambda { do_edit }.should raise_error(Merb::ControllerExceptions::NotFound)
-  end
-  
-  it &quot;should get the linkback object&quot; do
-    @post.should_receive(:linkbacks).with(no_args).and_return(@linkbacks)
-    @linkbacks.should_receive(:get).with(&quot;2&quot;).and_return(@linkback)
-    do_edit
-  end
-  
-  it &quot;should raise NotFound if the linkback object isn't found&quot; do
-    @linkbacks.stub!(:get).and_return(nil)
-    lambda { do_edit }.should raise_error(Merb::ControllerExceptions::NotFound)
-  end
-  
-  it &quot;should assigns the linkback object for the view&quot; do
-    do_edit.assigns(:linkback).should == @linkback
-  end
-  
-  it &quot;should assign the post parent to the view&quot; do
-    do_edit.assigns(:post).should == @post
-  end  
-
-  it &quot;should render the linkback&quot; do
-    do_edit do |controller|
-      controller.should_receive(:display).with(@linkback, :form)
-    end
-  end
-end
-
-describe BlogSlice::Linkbacks, 'create action' do
-  before :all do
-    Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
-  end
-  
-  after :all do
-    Merb::Router.reset! if standalone?
-  end
-
-  before :each do
-    @post = Post.new
-    @post.stub!(:slug).and_return(&quot;1&quot;)
-    Post.stub!(:get).with(&quot;1&quot;).and_return(@post)
-    
-    @linkback = Linkback.new
-    @linkback.stub!(:save).and_return(true)
-    @linkback.stub!(:id).and_return(2)
-    Linkback.stub!(:new).and_return(@linkback)
-  end
-  
-  it &quot;should have a route from /posts/1/linkbacks POST&quot; do
-    request_to(&quot;/posts/1/linkbacks&quot;, :post).should route_to(&quot;BlogSlice/linkbacks&quot;, :create)
-  end
-  
-  def attributes
-    {&quot;name&quot; =&gt; &quot;Expenses&quot;}
-  end
-  
-  def do_create
-    dispatch_to(BlogSlice::Linkbacks, :create, :slug =&gt; 1, :linkback =&gt; attributes) do |controller|
-      controller.stub!(:display)
-      yield controller if block_given?
-    end
-  end
-  
-  it &quot;should get the post from the database&quot; do
-    Post.should_receive(:get).with(&quot;1&quot;).and_return(@post)
-    do_create
-  end
-  
-  it &quot;should raise NotFound if the post isn't found&quot; do
-    Post.stub!(:get).and_return(nil)
-    lambda { do_create }.should raise_error(Merb::ControllerExceptions::NotFound)
-  end
-  
-  it &quot;should create a new linkback object&quot; do
-    Linkback.should_receive(:new).with(attributes).and_return(@linkback)
-    do_create
-  end
-  
-  it &quot;should set the post&quot; do
-    @linkback.should_receive(:post=).with(@post)
-    do_create
-  end
-  
-  it &quot;should try to save the linkback&quot; do
-    @linkback.should_receive(:save).with(no_args)
-    do_create
-  end
-  
-  it &quot;should redirect to the newly created linkback if successful&quot; do
-    do_create.should redirect_to(resource(@post, @linkback), :message =&gt; {:notice =&gt; &quot;Linkback was successfully created&quot;})
-  end
-  
-  it &quot;should render the form if not successful&quot; do
-    @linkback.stub!(:save).and_return(false)
-    do_create do |controller|
-      controller.should_receive(:display).with(@linkback, :form)
-    end.assigns(:linkback).should == @linkback
-  end
-  
-  it &quot;should assign the linkback to the view&quot; do
-    do_create.assigns(:linkback).should == @linkback
-  end
-  
-  it &quot;should assign the post parent to the view&quot; do
-    do_create.assigns(:post).should == @post
-  end  
-end
-
-describe BlogSlice::Linkbacks, 'update' do
-  before :all do
-    Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?
-  end
-  
-  after :all do
-    Merb::Router.reset! if standalone?
-  end
-
-  before :each do
-    @post = Post.new(:id =&gt; &quot;1&quot;)
-    Post.stub!(:get).with(&quot;1&quot;).and_return(@post)
-  
-    @linkbacks = mock(&quot;linkbacks&quot;)
-    @post.stub!(:linkbacks).and_return(@linkbacks)
-  
-    @linkback = Linkback.new(:id =&gt; &quot;2&quot;)
-    @linkbacks.stub!(:get).and_return(@linkback)
-    
-    @linkback.stub!(:update_attributes).and_return(true)
-  end
-  
-  it &quot;should have a route from /posts/1/linkbacks/2 PUT&quot; do
-    request_to(&quot;/posts/1/linkbacks/2&quot;, :put).should route_to(&quot;BlogSlice/linkbacks&quot;, :update)
-  end
-  
-  def attributes
-    {&quot;name&quot; =&gt; &quot;Expenses&quot;}
-  end
-  
-  def do_update
-    dispatch_to(BlogSlice::Linkbacks, :update, :slug =&gt; 1, :id =&gt; 2, :linkback =&gt; attributes) do |controller|
-      controller.stub!(:display)
-      yield controller if block_given?
-    end
-  end
-  
-  it &quot;should get the post from the database&quot; do
-    Post.should_receive(:get).with(&quot;1&quot;).and_return(@post)
-    do_update
-  end
-  
-  it &quot;should raise NotFound if the post isn't found&quot; do
-    Post.stub!(:get).and_return(nil)
-    lambda { do_update }.should raise_error(Merb::ControllerExceptions::NotFound)
-  end
-  
-  it &quot;should get the linkback from the database&quot; do
-    @post.should_receive(:linkbacks).and_return(@linkbacks)
-    @linkbacks.should_receive(:get).and_return(@linkback)
-    do_update
-  end
-  
-  it &quot;should raise NotFound if the linkback isn't found&quot; do
-    @linkbacks.stub!(:get).and_return(nil)
-    lambda { do_update }.should raise_error(Merb::ControllerExceptions::NotFound)
-  end
-  
-  it &quot;should try to save the linkback&quot; do
-    @linkback.should_receive(:update_attributes).with(attributes)
-    do_update
-  end
-  
-  it &quot;should redirect to the linkback if successful&quot; do
-    do_update.should redirect_to(&quot;/posts/1/linkbacks/2&quot;)
-  end
-  
-  it &quot;should render the form if the linkback can't be saved&quot; do
-    @linkback.stub!(:update_attributes).and_return(false)
-    do_update do |controller|
-      controller.should_receive(:display).with(@linkback, :form)
-    end
-  end
-  
-  it &quot;should assign the linkback to the view&quot; do
-    do_update.assigns(:linkback).should == @linkback
-  end
-  
-  it &quot;should assign the post parent to the view&quot; do
-    do_update.assigns(:post).should == @post
-  end  
-end
-
 describe BlogSlice::Linkbacks, 'destroy' do
   before :all do
     Merb::Router.prepare { |r| slice(:BlogSlice, :name_prefix =&gt; nil, :path_prefix =&gt; nil, :default_routes =&gt; false) } if standalone?</diff>
      <filename>spec/controllers/linkbacks_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -218,6 +218,10 @@ describe Post, 'show action' do
     
     @new_comment = mock('new-comment')
     Comment.stub!(:new).and_return(@new_comment)
+    
+    @linkbacks = mock('linkbacks')
+    @post.stub!(:linkbacks).and_return(@linkbacks)
+    @linkbacks.stub!(:all).and_return([])
   end
   
   def do_get
@@ -278,6 +282,12 @@ describe Post, 'show action' do
     do_get
   end
   
+  it &quot;should get the approved linkbacks of the post&quot; do
+    @post.should_receive(:linkbacks).once.and_return(@linkbacks)
+    @linkbacks.should_receive(:all).with(:approved =&gt; true, :order =&gt; [:created_at.desc]).and_return([])
+    do_get
+  end
+  
   it &quot;should assign the comments to the view&quot; do
     do_get.assigns(:comments).should == @comments
   end
@@ -537,6 +547,7 @@ describe BlogSlice::Posts, 'trackback' do
   before :each do
     @post = mock('post')
     @post.stub!(:title).and_return(&quot;my blog post&quot;)
+    @post.stub!(:id).and_return(1)
     Post.stub!(:first).and_return(@post)
     
     @linkback = mock('linkback')
@@ -581,7 +592,7 @@ describe BlogSlice::Posts, 'trackback' do
   end
   
   it &quot;should create a linkback of type trackback&quot; do
-    Linkback.should_receive(:new).with(:type =&gt; 'trackback', :source_url =&gt; 'http://www.ekohe.com', :direction =&gt; true)
+    Linkback.should_receive(:new).with(:post_id =&gt; 1, :type =&gt; 'trackback', :source_url =&gt; 'http://www.ekohe.com', :direction =&gt; true)
     do_post
   end
   </diff>
      <filename>spec/controllers/posts_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -22,7 +22,7 @@ describe Post do
       :published_at,
       :views_count, 
       :allow_comments,
-      :allow_trackbacks,
+      :allow_linkbacks,
       :status,
       :created_at, 
       :updated_at].each do |column|</diff>
      <filename>spec/models/post_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,8 +12,8 @@ describe &quot;linkbacks/index&quot; do
   before(:each) do                    
     @controller = BlogSlice::Linkbacks.new(fake_request)
     
-    @first_linkback = Linkback.new({:type=&gt;&quot;absciss&quot;, :target_url=&gt;&quot;gastrostaxis&quot;, :title=&gt;&quot;usually&quot;, :source_url=&gt;&quot;Cymodoceaceae&quot;, :excerpt=&gt;&quot;Incidence pasteurism reedish plumoseness gangan sanctity&quot;, :id=&gt;0, :blog_name=&gt;&quot;costochondral&quot;})
-    @second_linkback = Linkback.new({:type=&gt;&quot;antipathize&quot;, :target_url=&gt;&quot;forthcut&quot;, :title=&gt;&quot;boattail&quot;, :source_url=&gt;&quot;pistillid&quot;, :excerpt=&gt;&quot;Dixit delegable missmark rhinobatus tallowmaking consilience hectocotylize foster ureic conjubilant pyroligneous paean prelumbar transdermic alicia driveboat coscinodiscaceae mockernut escortage&quot;, :id=&gt;1, :blog_name=&gt;&quot;Orion&quot;})
+    @first_linkback = Linkback.new({:type=&gt;&quot;absciss&quot;, :target_url=&gt;&quot;gastrostaxis&quot;, :title=&gt;&quot;usually&quot;, :source_url=&gt;&quot;Cymodoceaceae&quot;, :excerpt=&gt;&quot;Incidence pasteurism reedish plumoseness gangan sanctity&quot;, :id=&gt;0, :blog_name=&gt;&quot;costochondral&quot;, :approved =&gt; false})
+    @second_linkback = Linkback.new({:type=&gt;&quot;antipathize&quot;, :target_url=&gt;&quot;forthcut&quot;, :title=&gt;&quot;boattail&quot;, :source_url=&gt;&quot;pistillid&quot;, :excerpt=&gt;&quot;Dixit delegable missmark rhinobatus tallowmaking consilience hectocotylize foster ureic conjubilant pyroligneous paean prelumbar transdermic alicia driveboat coscinodiscaceae mockernut escortage&quot;, :id=&gt;1, :blog_name=&gt;&quot;Orion&quot;, :approved =&gt; true})
     
     @linkbacks = [@first_linkback, @second_linkback]
     
@@ -62,9 +62,9 @@ describe &quot;linkbacks/index, post as parent&quot; do
     @post = Post.new(:slug =&gt; 'my-first-blog-post')
     @controller.instance_variable_set(:@post, @post)
     
-    @first_linkback = Linkback.new({:type=&gt;&quot;sylvanitic&quot;, :target_url=&gt;&quot;unharmonize&quot;, :title=&gt;&quot;misalienate&quot;, :source_url=&gt;&quot;tane&quot;, :excerpt=&gt;&quot;Disconcertment crumblet mineralizable loris plutonian precool amphicoelous brotheler loxodromism ice benzine chieftainship sporadic shikimic commutate embryonically&quot;, :id=&gt;1, :blog_name=&gt;&quot;relieved&quot;})
+    @first_linkback = Linkback.new({:type=&gt;&quot;sylvanitic&quot;, :target_url=&gt;&quot;unharmonize&quot;, :title=&gt;&quot;misalienate&quot;, :source_url=&gt;&quot;tane&quot;, :excerpt=&gt;&quot;Disconcertment crumblet mineralizable loris plutonian precool amphicoelous brotheler loxodromism ice benzine chieftainship sporadic shikimic commutate embryonically&quot;, :id=&gt;1, :blog_name=&gt;&quot;relieved&quot;, :approved =&gt; true})
     @first_linkback.stub!(:post).and_return(@post)
-    @second_linkback = Linkback.new({:type=&gt;&quot;glimmerous&quot;, :target_url=&gt;&quot;heterogony&quot;, :title=&gt;&quot;precedentless&quot;, :source_url=&gt;&quot;fomes&quot;, :excerpt=&gt;&quot;Gormandize vaticanic ooecial blattiform narratory bepart shelleyana mercaptids transpalmar anticontagionist microphthalmus unseparable internode&quot;, :id=&gt;4, :blog_name=&gt;&quot;Megaric&quot;})
+    @second_linkback = Linkback.new({:type=&gt;&quot;glimmerous&quot;, :target_url=&gt;&quot;heterogony&quot;, :title=&gt;&quot;precedentless&quot;, :source_url=&gt;&quot;fomes&quot;, :excerpt=&gt;&quot;Gormandize vaticanic ooecial blattiform narratory bepart shelleyana mercaptids transpalmar anticontagionist microphthalmus unseparable internode&quot;, :id=&gt;4, :blog_name=&gt;&quot;Megaric&quot;, :approved =&gt; false})
     @second_linkback.stub!(:post).and_return(@post)
     
     @linkbacks = [@first_linkback, @second_linkback]</diff>
      <filename>spec/views/linkbacks/index.html.haml_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -49,8 +49,8 @@ describe &quot;posts/form&quot; do
     @body.should have_tag(:input, :type =&gt; 'checkbox', :name =&gt; 'post[allow_comments]')
   end
   
-  it &quot;should have a checkbox for enabling and disabling trackbacks&quot; do
-    @body.should have_tag(:input, :type =&gt; 'checkbox', :name =&gt; 'post[allow_trackbacks]')
+  it &quot;should have a checkbox for enabling and disabling linkbacks&quot; do
+    @body.should have_tag(:input, :type =&gt; 'checkbox', :name =&gt; 'post[allow_linkbacks]')
   end
   
   it &quot;should have a select for selecting the status&quot; do</diff>
      <filename>spec/views/posts/form.html.haml_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -30,6 +30,7 @@ describe &quot;posts/show authorized&quot; do
   def render
     @controller.instance_variable_set(:@post, @post) 
     @controller.instance_variable_set(:@comments, sample_comments)
+    @controller.instance_variable_set(:@linkbacks, []) 
     @controller.instance_variable_set(:@comment, Comment.new) 
     @body = @controller.render(:show)
   end
@@ -137,6 +138,7 @@ describe &quot;posts/show not authorized&quot; do
     create_comments
     @controller.instance_variable_set(:@post, @post) 
     @controller.instance_variable_set(:@comments, @post.comments) 
+    @controller.instance_variable_set(:@linkbacks, []) 
     @controller.instance_variable_set(:@comment, Comment.new) 
     @controller.stub!(:authorized?).and_return(false)
   end
@@ -162,13 +164,13 @@ describe &quot;posts/show not authorized&quot; do
   end
   
   it &quot;should not display the trackback url if not allowed&quot; do
-    @post.allow_trackbacks = false
+    @post.allow_linkbacks = false
     render
     @body.should_not have_tag(:a, :href =&gt; '/posts/my-first-post/trackback')
   end
   
   it &quot;should display the trackback url if allowed&quot; do
-    @post.allow_trackbacks = true
+    @post.allow_linkbacks = true
     render
     @body.should have_tag(:a, :href =&gt; '/posts/my-first-post/trackback')
   end</diff>
      <filename>spec/views/posts/show.html.haml_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>app/views/layout/application.html.haml</filename>
    </removed>
    <removed>
      <filename>app/views/linkbacks/form.html.haml</filename>
    </removed>
    <removed>
      <filename>spec/views/linkbacks/form.html.haml_spec.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>d98ea6407ef32f4e22118ded613aa9f8ca89c11e</id>
    </parent>
  </parents>
  <author>
    <name>Maxime Guilbot</name>
    <email>maxime@ekohe.com</email>
  </author>
  <url>http://github.com/maxime/blog-slice/commit/543c48bb7da9abdbeeac5f27f1e2bbf4b096a182</url>
  <id>543c48bb7da9abdbeeac5f27f1e2bbf4b096a182</id>
  <committed-date>2009-01-20T15:35:08-08:00</committed-date>
  <authored-date>2009-01-20T15:35:08-08:00</authored-date>
  <message>Trackback reception, moderation and display now working</message>
  <tree>d99309870d6863bc12e6dc61b4228972d992ac82</tree>
  <committer>
    <name>Maxime Guilbot</name>
    <email>maxime@ekohe.com</email>
  </committer>
</commit>
