Commit 1a9531c9 authored by gitlabhq's avatar gitlabhq

fix #140, commit lil refactor

parent 29e11d14
...@@ -36,6 +36,8 @@ class Project < ActiveRecord::Base ...@@ -36,6 +36,8 @@ class Project < ActiveRecord::Base
validate :check_limit validate :check_limit
validate :repo_name
after_destroy :destroy_gitosis_project after_destroy :destroy_gitosis_project
after_save :update_gitosis_project after_save :update_gitosis_project
...@@ -168,6 +170,12 @@ class Project < ActiveRecord::Base ...@@ -168,6 +170,12 @@ class Project < ActiveRecord::Base
errors[:base] << ("Cant check your ability to create project") errors[:base] << ("Cant check your ability to create project")
end end
def repo_name
if path == "gitosis-admin"
errors.add(:path, "Project path like 'gitosis-admin' is not allowed")
end
end
def valid_repo? def valid_repo?
repo repo
rescue rescue
......
.file_stats .file_stats= render "commits/diff_head"
- @commit.diffs.each do |diff|
- if diff.deleted_file
%span.removed_file
%a{:href => "##{diff.a_path}"}
= diff.a_path
= image_tag "blueprint_delete.png"
- elsif diff.renamed_file
%span.moved_file
%a{:href => "##{diff.b_path}"}
= diff.a_path
= "->"
= diff.b_path
= image_tag "blueprint_notice.png"
- elsif diff.new_file
%span.new_file
%a{:href => "##{diff.b_path}"}
= diff.b_path
= image_tag "blueprint_add.png"
- else
%span.edit_file
%a{:href => "##{diff.b_path}"}
= diff.b_path
= image_tag "blueprint_info.png"
- @commit.diffs.each do |diff| - @commit.diffs.each do |diff|
- next if diff.diff.empty? - next if diff.diff.empty?
- file = (@commit.tree / diff.b_path) - file = (@commit.tree / diff.b_path)
...@@ -36,20 +14,7 @@ ...@@ -36,20 +14,7 @@
%br/ %br/
.diff_file_content .diff_file_content
- if file.text? - if file.text?
- lines_arr = diff.diff.lines.to_a = render :partial => "commits/text_file", :locals => { :diff => diff }
- line_old = lines_arr[2].match(/-(\d)/)[0].to_i.abs rescue 0
- line_new = lines_arr[2].match(/\+(\d)/)[0].to_i.abs rescue 0
- lines = lines_arr[3..-1].join
- lines.each_line do |line|
= diff_line(line, line_new, line_old)
- if line[0] == "+"
- line_new += 1
- elsif
- line[0] == "-"
- line_old += 1
- else
- line_new += 1
- line_old += 1
- elsif file.image? - elsif file.image?
.diff_file_content_image .diff_file_content_image
%img{:src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"} %img{:src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}
......
- @commit.diffs.each do |diff|
- if diff.deleted_file
%span.removed_file
%a{:href => "##{diff.a_path}"}
= diff.a_path
= image_tag "blueprint_delete.png"
- elsif diff.renamed_file
%span.moved_file
%a{:href => "##{diff.b_path}"}
= diff.a_path
= "->"
= diff.b_path
= image_tag "blueprint_notice.png"
- elsif diff.new_file
%span.new_file
%a{:href => "##{diff.b_path}"}
= diff.b_path
= image_tag "blueprint_add.png"
- else
%span.edit_file
%a{:href => "##{diff.b_path}"}
= diff.b_path
= image_tag "blueprint_info.png"
- lines_arr = diff.diff.lines.to_a
- line_old = lines_arr[2].match(/-(\d)/)[0].to_i.abs rescue 0
- line_new = lines_arr[2].match(/\+(\d)/)[0].to_i.abs rescue 0
- lines = lines_arr[3..-1].join
- lines.each_line do |line|
= diff_line(line, line_new, line_old)
- if line[0] == "+"
- line_new += 1
- elsif
- line[0] == "-"
- line_old += 1
- else
- line_new += 1
- line_old += 1
...@@ -4,11 +4,15 @@ describe Project do ...@@ -4,11 +4,15 @@ describe Project do
describe "Associations" do describe "Associations" do
it { should have_many(:users) } it { should have_many(:users) }
it { should have_many(:users_projects) } it { should have_many(:users_projects) }
it { should have_many(:issues) }
it { should have_many(:notes) }
it { should have_many(:snippets) }
end end
describe "Validation" do describe "Validation" do
it { should validate_presence_of(:name) } it { should validate_presence_of(:name) }
it { should validate_presence_of(:path) } it { should validate_presence_of(:path) }
it { should validate_presence_of(:code) }
end end
describe "Respond to" do describe "Respond to" do
...@@ -31,6 +35,11 @@ describe Project do ...@@ -31,6 +35,11 @@ describe Project do
it { should respond_to(:commit) } it { should respond_to(:commit) }
end end
it "should not allow 'gitosis-admin' as repo name" do
should allow_value("blah").for(:path)
should_not allow_value("gitosis-admin").for(:path)
end
it "should return valid url to repo" do it "should return valid url to repo" do
project = Project.new(:path => "somewhere") project = Project.new(:path => "somewhere")
project.url_to_repo.should == "git@localhost:somewhere.git" project.url_to_repo.should == "git@localhost:somewhere.git"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment