summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-04-03 21:17:50 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-04-03 21:17:50 +0300
commitf8a4a760480a2395ca371c4ab6201344a186fa39 (patch)
tree19f7a933b1c9ec3dfc8e317bee699b089f17908e
parente91ff84df72a76b91bb8c24a6e677cdca98120de (diff)
downloadgitlab-ce-f8a4a760480a2395ca371c4ab6201344a186fa39.tar.gz
decorate commits in Gitlab::Git::repository with valid class
-rw-r--r--lib/gitlab/git/repository.rb14
-rw-r--r--spec/lib/gitlab/git/repository_spec.rb11
2 files changed, 21 insertions, 4 deletions
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 330448c81b2..6d4e9e8491f 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -54,11 +54,11 @@ module Gitlab
repo.commits(root_ref).first
end
- Commit.new(commit) if commit
+ decorate_commit(commit) if commit
end
def commits_with_refs(n = 20)
- commits = repo.branches.map { |ref| Commit.new(ref.commit, ref) }
+ commits = repo.branches.map { |ref| decorate_commit(ref.commit, ref) }
commits.sort! do |x, y|
y.committed_date <=> x.committed_date
@@ -74,11 +74,11 @@ module Gitlab
repo.commits(ref, limit, offset)
else
repo.commits(ref)
- end.map{ |c| Commit.new(c) }
+ end.map{ |c| decorate_commit(c) }
end
def commits_between(from, to)
- repo.commits_between(from, to).map { |c| Commit.new(c) }
+ repo.commits_between(from, to).map { |c| decorate_commit(c) }
end
def last_commit_for(ref, path = nil)
@@ -190,6 +190,12 @@ module Gitlab
def cache_key(type)
"#{type}:#{path_with_namespace}"
end
+
+ protected
+
+ def decorate_commit(commit, ref = nil)
+ Gitlab::Git::Commit.new(commit, ref)
+ end
end
end
end
diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb
index c68bdaaae00..3c2e3423d3a 100644
--- a/spec/lib/gitlab/git/repository_spec.rb
+++ b/spec/lib/gitlab/git/repository_spec.rb
@@ -82,6 +82,17 @@ describe Gitlab::Git::Repository do
end
end
+ describe "commits" do
+ subject do
+ commits = repository.commits('master', 'app', 3, 1)
+ commits.map { |c| c.id }
+ end
+
+ it { should have(3).elements }
+ it { should include("8716fc78f3c65bbf7bcf7b574febd583bc5d2812") }
+ it { should_not include("bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a") }
+ end
+
describe "commits_between" do
subject do
commits = repository.commits_between("3a4b4fb4cde7809f033822a171b9feae19d41fff",