From 26323046fda07b2353ee427afcd0253cea935047 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Sun, 31 Mar 2013 19:00:45 +0300 Subject: [PATCH] Decorate Gitlab::Git::Commit with Commit --- app/contexts/commit_load_context.rb | 1 + app/controllers/commits_controller.rb | 1 + app/models/commit.rb | 8 ++++++++ lib/gitlab/git/commit.rb | 4 ++-- spec/helpers/gitlab_markdown_helper_spec.rb | 2 +- 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/contexts/commit_load_context.rb b/app/contexts/commit_load_context.rb index 1f23f633..c8d77d9b 100644 --- a/app/contexts/commit_load_context.rb +++ b/app/contexts/commit_load_context.rb @@ -12,6 +12,7 @@ class CommitLoadContext < BaseContext commit = project.repository.commit(params[:id]) if commit + commit = Commit.new(commit) commit = CommitDecorator.decorate(commit) line_notes = project.notes.for_commit_id(commit.id).inline diff --git a/app/controllers/commits_controller.rb b/app/controllers/commits_controller.rb index 9dc0d968..fded5f0a 100644 --- a/app/controllers/commits_controller.rb +++ b/app/controllers/commits_controller.rb @@ -13,6 +13,7 @@ class CommitsController < ProjectResourceController @limit, @offset = (params[:limit] || 40), (params[:offset] || 0) @commits = @repo.commits(@ref, @path, @limit, @offset) + @commits = Commit.decorate(@commits) @commits = CommitDecorator.decorate_collection(@commits) respond_to do |format| diff --git a/app/models/commit.rb b/app/models/commit.rb index 0164ae66..ea5b451b 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -10,12 +10,20 @@ class Commit attr_accessor :raw + def self.decorate(commits) + commits.map { |c| Commit.new(c) } + end + def initialize(raw_commit) raise "Nil as raw commit passed" unless raw_commit @raw = raw_commit end + def id + @raw.id + end + def method_missing(m, *args, &block) @raw.send(m, *args, &block) end diff --git a/lib/gitlab/git/commit.rb b/lib/gitlab/git/commit.rb index 86e0dfbb..023672f9 100644 --- a/lib/gitlab/git/commit.rb +++ b/lib/gitlab/git/commit.rb @@ -7,8 +7,8 @@ module Gitlab attr_accessor :raw_commit, :head, :refs delegate :message, :authored_date, :committed_date, :parents, :sha, - :date, :committer, :author, :diffs, :tree, :id, :stats, - :to_patch, to: :raw_commit + :date, :committer, :author, :diffs, :tree, :id, :stats, :to_patch, + to: :raw_commit class << self def find_or_first(repo, commit_id = nil, root_ref) diff --git a/spec/helpers/gitlab_markdown_helper_spec.rb b/spec/helpers/gitlab_markdown_helper_spec.rb index b9025026..3abeaeef 100644 --- a/spec/helpers/gitlab_markdown_helper_spec.rb +++ b/spec/helpers/gitlab_markdown_helper_spec.rb @@ -7,7 +7,7 @@ describe GitlabMarkdownHelper do let!(:project) { create(:project) } let(:user) { create(:user, username: 'gfm') } - let(:commit) { CommitDecorator.decorate(project.repository.commit) } + let(:commit) { CommitDecorator.decorate(Commit.new(project.repository.commit)) } let(:issue) { create(:issue, project: project) } let(:merge_request) { create(:merge_request, project: project) } let(:snippet) { create(:snippet, project: project) }