Add "empty_repo?" method to Repository role

Replaces two calls that this method simplifies
This commit is contained in:
Robert Speicher 2012-09-04 11:37:38 -04:00
parent 7e76610d0a
commit a463353773
4 changed files with 32 additions and 6 deletions

View File

@ -135,7 +135,7 @@ class ApplicationController < ActionController::Base
end
def require_non_empty_project
redirect_to @project unless @project.repo_exists? && @project.has_commits?
redirect_to @project if @project.empty_repo?
end
def no_cache_headers

View File

@ -50,7 +50,7 @@ class ProjectsController < ApplicationController
respond_to do |format|
format.html do
if @project.repo_exists? && @project.has_commits?
unless @project.empty_repo?
@last_push = current_user.recent_push(@project.id)
render :show
else

View File

@ -8,6 +8,10 @@ module Repository
false
end
def empty_repo?
!repo_exists? || !has_commits?
end
def commit(commit_id = nil)
Commit.find_or_first(repo, commit_id, root_ref)
end

View File

@ -0,0 +1,22 @@
require 'spec_helper'
describe Project, "Repository" do
let(:project) { build(:project) }
describe "#empty_repo?" do
it "should return true if the repo doesn't exist" do
project.stub(repo_exists?: false, has_commits?: true)
project.should be_empty_repo
end
it "should return true if the repo has commits" do
project.stub(repo_exists?: true, has_commits?: false)
project.should be_empty_repo
end
it "should return false if the repo exists and has commits" do
project.stub(repo_exists?: true, has_commits?: true)
project.should_not be_empty_repo
end
end
end