OSDN Git Service

Use Commit#show instead of Commits#show to view a single commit
authorRobert Speicher <rspeicher@gmail.com>
Mon, 17 Sep 2012 14:06:56 +0000 (10:06 -0400)
committerRobert Speicher <rspeicher@gmail.com>
Wed, 26 Sep 2012 20:32:21 +0000 (16:32 -0400)
Commits#show (plural) is going to be for showing commit history on a
specific path.

app/controllers/commits_controller.rb
app/roles/static_model.rb
app/views/commit/show.html.haml [moved from app/views/commits/show.html.haml with 100% similarity]
app/views/commits/_commit.html.haml
app/views/events/_commit.html.haml
app/views/refs/blame.html.haml
app/views/repositories/_branch.html.haml
lib/gitlab/markdown.rb
spec/requests/gitlab_flavored_markdown_spec.rb
spec/routing/project_routing_spec.rb

index 1e7aec0..83404bd 100644 (file)
@@ -26,25 +26,25 @@ class CommitsController < ApplicationController
     end
   end
 
-  def show
-    result = CommitLoad.new(project, current_user, params).execute
-
-    @commit = result[:commit]
-
-    if @commit
-      @suppress_diff = result[:suppress_diff]
-      @note          = result[:note]
-      @line_notes    = result[:line_notes]
-      @notes_count   = result[:notes_count]
-      @comments_allowed = true
-    else
-      return git_not_found!
-    end
-
-    if result[:status] == :huge_commit
-      render "huge_commit" and return
-    end
-  end
+  def show
+    result = CommitLoad.new(project, current_user, params).execute
+
+    @commit = result[:commit]
+
+    if @commit
+      @suppress_diff = result[:suppress_diff]
+      @note          = result[:note]
+      @line_notes    = result[:line_notes]
+      @notes_count   = result[:notes_count]
+      @comments_allowed = true
+    else
+      return git_not_found!
+    end
+
+    if result[:status] == :huge_commit
+      render "huge_commit" and return
+    end
+  end
 
   def compare
     result = Commit.compare(project, params[:from], params[:to])
index d26c8f4..d67af24 100644 (file)
@@ -25,6 +25,10 @@ module StaticModel
     id
   end
 
+  def new_record?
+    false
+  end
+
   def persisted?
     false
   end
index 61371d1..6abea76 100644 (file)
@@ -1,16 +1,15 @@
 %li.commit
   .browse_code_link_holder
     %p
-      %strong= link_to "Browse Code »", tree_project_ref_path(@project, commit.id), class: "right"
+      %strong= link_to "Browse Code »", tree_project_ref_path(@project, commit), class: "right"
   %p
-    = link_to commit.short_id(8), project_commit_path(@project, id: commit.id), class: "commit_short_id"
+    = link_to commit.short_id(8), project_commit_path(@project, commit), class: "commit_short_id"
     %strong.commit-author-name= commit.author_name
     %span.dash &ndash;
     = image_tag gravatar_icon(commit.author_email), class: "avatar", width: 16
-    = link_to_gfm truncate(commit.title, length: 50), project_commit_path(@project, id: commit.id), class: "row_title"
+    = link_to_gfm truncate(commit.title, length: 50), project_commit_path(@project, commit.id), class: "row_title"
 
     %span.committed_ago
       = time_ago_in_words(commit.committed_date)
       ago
       &nbsp;
-
index ed4f33c..ea417aa 100644 (file)
@@ -1,7 +1,7 @@
 - commit = CommitDecorator.decorate(commit)
 %li.commit
   %p
-    = link_to commit.short_id(8), project_commit_path(project, id: commit.id), class: "commit_short_id"
+    = link_to commit.short_id(8), project_commit_path(project, commit), class: "commit_short_id"
     %span= commit.author_name
     &ndash;
     = image_tag gravatar_icon(commit.author_email), class: "avatar", width: 16
index eb66f59..ba0fad5 100644 (file)
@@ -32,8 +32,8 @@
               = commit.author_name
             %td.blame_commit
               &nbsp;
-              %code= link_to commit.short_id, project_commit_path(@project, id: commit.id)
-              = link_to_gfm truncate(commit.title, length: 30), project_commit_path(@project, id: commit.id), class: "row_title" rescue "--broken encoding"
+              %code= link_to commit.short_id, project_commit_path(@project, commit)
+              = link_to_gfm truncate(commit.title, length: 30), project_commit_path(@project, commit), class: "row_title" rescue "--broken encoding"
             %td.lines
               = preserve do
                 %pre
index 64a633b..80028a8 100644 (file)
@@ -7,7 +7,7 @@
       - if branch.name == @project.root_ref
         %span.label default
   %td
-    = link_to project_commit_path(@project, id: commit.id) do
+    = link_to project_commit_path(@project, commit) do
       %code= commit.short_id
 
     = image_tag gravatar_icon(commit.author_email), class: "", width: 16
index 9201003..9eb35b8 100644 (file)
@@ -174,7 +174,7 @@ module Gitlab
 
     def reference_commit(identifier)
       if commit = @project.commit(identifier)
-        link_to(identifier, project_commit_path(@project, id: commit.id), html_options.merge(title: CommitDecorator.new(commit).link_title, class: "gfm gfm-commit #{html_options[:class]}"))
+        link_to(identifier, project_commit_path(@project, commit), html_options.merge(title: CommitDecorator.new(commit).link_title, class: "gfm gfm-commit #{html_options[:class]}"))
       end
     end
   end
index 68d354b..807d17d 100644 (file)
@@ -49,13 +49,13 @@ describe "Gitlab Flavored Markdown" do
     end
 
     it "should render title in commits#show" do
-      visit project_commit_path(project, id: commit.id)
+      visit project_commit_path(project, commit)
 
       page.should have_link("##{issue.id}")
     end
 
     it "should render description in commits#show" do
-      visit project_commit_path(project, id: commit.id)
+      visit project_commit_path(project, commit)
 
       page.should have_link("@#{fred.name}")
     end
@@ -175,7 +175,7 @@ describe "Gitlab Flavored Markdown" do
 
   describe "for notes" do
     it "should render in commits#show", js: true do
-      visit project_commit_path(project, id: commit.id)
+      visit project_commit_path(project, commit)
       fill_in "note_note", with: "see ##{issue.id}"
       click_button "Add Comment"
 
index d4ee5c3..9900a31 100644 (file)
@@ -298,6 +298,14 @@ describe HooksController, "routing" do
   end
 end
 
+# project_commit GET    /:project_id/commit/:id(.:format) commit#show {:id=>/[[:alnum:]]{6,40}/, :project_id=>/[^\/]+/}
+describe CommitController, "routing" do
+  it "to #show" do
+    get("/gitlabhq/commit/4246fb").should route_to('commit#show', project_id: 'gitlabhq', id: '4246fb')
+    get("/gitlabhq/commit/4246fbd13872934f72a8fd0d6fb1317b47b59cb5").should route_to('commit#show', project_id: 'gitlabhq', id: '4246fbd13872934f72a8fd0d6fb1317b47b59cb5')
+  end
+end
+
 # compare_project_commits GET    /:project_id/commits/compare(.:format)   commits#compare
 #    patch_project_commit GET    /:project_id/commits/:id/patch(.:format) commits#patch
 #         project_commits GET    /:project_id/commits(.:format)           commits#index
@@ -317,6 +325,7 @@ describe CommitsController, "routing" do
   end
 
   it_behaves_like "RESTful project resources" do
+    let(:actions)    { [:index, :show] }
     let(:controller) { 'commits' }
   end
 end