diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-04-03 21:17:50 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-04-03 21:17:50 +0300 |
commit | f8a4a760480a2395ca371c4ab6201344a186fa39 (patch) | |
tree | 19f7a933b1c9ec3dfc8e317bee699b089f17908e | |
parent | e91ff84df72a76b91bb8c24a6e677cdca98120de (diff) | |
download | gitlab-ce-f8a4a760480a2395ca371c4ab6201344a186fa39.tar.gz |
decorate commits in Gitlab::Git::repository with valid class
-rw-r--r-- | lib/gitlab/git/repository.rb | 14 | ||||
-rw-r--r-- | spec/lib/gitlab/git/repository_spec.rb | 11 |
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", |