Commit d730e3ef8b1c9bf73f9eeb492968b455fbec319d
1 parent
dab072c1
Exists in
master
and in
4 other branches
refactoring project, commits controllers
Showing
4 changed files
with
63 additions
and
45 deletions
Show diff stats
app/controllers/commits_controller.rb
... | ... | @@ -8,18 +8,18 @@ class CommitsController < ApplicationController |
8 | 8 | before_filter :add_project_abilities |
9 | 9 | before_filter :authorize_read_project! |
10 | 10 | before_filter :require_non_empty_project |
11 | + before_filter :load_refs, :only => :index # load @branch, @tag & @ref | |
11 | 12 | |
12 | - def index | |
13 | - load_refs # load @branch, @tag & @ref | |
14 | 13 | |
14 | + def index | |
15 | 15 | @repo = project.repo |
16 | 16 | limit, offset = (params[:limit] || 20), (params[:offset] || 0) |
17 | 17 | |
18 | - if params[:path] | |
19 | - @commits = @repo.log(@ref, params[:path], :max_count => limit, :skip => offset) | |
20 | - else | |
21 | - @commits = @repo.commits(@ref, limit, offset) | |
22 | - end | |
18 | + @commits = if params[:path] | |
19 | + @repo.log(@ref, params[:path], :max_count => limit, :skip => offset) | |
20 | + else | |
21 | + @repo.commits(@ref, limit, offset) | |
22 | + end | |
23 | 23 | |
24 | 24 | respond_to do |format| |
25 | 25 | format.html # index.html.erb |
... | ... | @@ -29,8 +29,8 @@ class CommitsController < ApplicationController |
29 | 29 | |
30 | 30 | def show |
31 | 31 | @commit = project.repo.commits(params[:id]).first |
32 | - @notes = project.notes.where(:noteable_id => @commit.id, :noteable_type => "Commit").order("created_at DESC").limit(20) | |
33 | - @note = @project.notes.new(:noteable_id => @commit.id, :noteable_type => "Commit") | |
32 | + @notes = project.commit_notes(@commit).fresh.limit(20) | |
33 | + @note = @project.build_commit_note(@commit) | |
34 | 34 | |
35 | 35 | respond_to do |format| |
36 | 36 | format.html | ... | ... |
app/controllers/projects_controller.rb
... | ... | @@ -6,8 +6,8 @@ class ProjectsController < ApplicationController |
6 | 6 | before_filter :add_project_abilities |
7 | 7 | before_filter :authorize_read_project!, :except => [:index, :new, :create] |
8 | 8 | before_filter :authorize_admin_project!, :only => [:edit, :update, :destroy] |
9 | - | |
10 | 9 | before_filter :require_non_empty_project, :only => [:blob, :tree] |
10 | + before_filter :load_refs, :only => :tree # load @branch, @tag & @ref | |
11 | 11 | |
12 | 12 | def index |
13 | 13 | source = current_user.projects |
... | ... | @@ -101,15 +101,13 @@ class ProjectsController < ApplicationController |
101 | 101 | # |
102 | 102 | |
103 | 103 | def tree |
104 | - load_refs # load @branch, @tag & @ref | |
105 | - | |
106 | 104 | @repo = project.repo |
107 | 105 | |
108 | - if params[:commit_id] | |
109 | - @commit = @repo.commits(params[:commit_id]).first | |
110 | - else | |
111 | - @commit = @repo.commits(@ref).first | |
112 | - end | |
106 | + @commit = if params[:commit_id] | |
107 | + @repo.commits(params[:commit_id]).first | |
108 | + else | |
109 | + @repo.commits(@ref).first | |
110 | + end | |
113 | 111 | |
114 | 112 | @tree = @commit.tree |
115 | 113 | @tree = @tree / params[:path] if params[:path] | ... | ... |
app/models/project.rb
... | ... | @@ -51,6 +51,10 @@ class Project < ActiveRecord::Base |
51 | 51 | end |
52 | 52 | |
53 | 53 | delegate :repo, |
54 | + :url_to_repo, | |
55 | + :path_to_repo, | |
56 | + :update_gitosis_project, | |
57 | + :destroy_gitosis_project, | |
54 | 58 | :tags, |
55 | 59 | :repo_exists?, |
56 | 60 | :commit, |
... | ... | @@ -74,16 +78,12 @@ class Project < ActiveRecord::Base |
74 | 78 | notes.where(:noteable_type => ["", nil]) |
75 | 79 | end |
76 | 80 | |
77 | - def update_gitosis_project | |
78 | - Gitosis.new.configure do |c| | |
79 | - c.update_project(path, gitosis_writers) | |
80 | - end | |
81 | + def build_commit_note(commit) | |
82 | + notes.new(:noteable_id => commit.id, :noteable_type => "Commit") | |
81 | 83 | end |
82 | 84 | |
83 | - def destroy_gitosis_project | |
84 | - Gitosis.new.configure do |c| | |
85 | - c.destroy_project(self) | |
86 | - end | |
85 | + def commit_notes(commit) | |
86 | + notes.where(:noteable_id => commit.id, :noteable_type => "Commit") | |
87 | 87 | end |
88 | 88 | |
89 | 89 | def add_access(user, *access) |
... | ... | @@ -121,14 +121,6 @@ class Project < ActiveRecord::Base |
121 | 121 | private_flag |
122 | 122 | end |
123 | 123 | |
124 | - def url_to_repo | |
125 | - "#{GITOSIS["git_user"]}@#{GITOSIS["host"]}:#{path}.git" | |
126 | - end | |
127 | - | |
128 | - def path_to_repo | |
129 | - GITOSIS["base_path"] + path + ".git" | |
130 | - end | |
131 | - | |
132 | 124 | def last_activity |
133 | 125 | updates(1).first |
134 | 126 | rescue | ... | ... |
app/models/repository.rb
... | ... | @@ -9,24 +9,48 @@ class Repository |
9 | 9 | @project = project |
10 | 10 | end |
11 | 11 | |
12 | + def path | |
13 | + @path ||= project.path | |
14 | + end | |
15 | + | |
16 | + def project_id | |
17 | + project.id | |
18 | + end | |
19 | + | |
12 | 20 | def repo |
13 | 21 | @repo ||= Grit::Repo.new(project.path_to_repo) |
14 | 22 | end |
15 | 23 | |
16 | - def tags | |
17 | - repo.tags.map(&:name).sort.reverse | |
24 | + def url_to_repo | |
25 | + "#{GITOSIS["git_user"]}@#{GITOSIS["host"]}:#{path}.git" | |
26 | + end | |
27 | + | |
28 | + def path_to_repo | |
29 | + GITOSIS["base_path"] + path + ".git" | |
30 | + end | |
31 | + | |
32 | + def update_gitosis_project | |
33 | + Gitosis.new.configure do |c| | |
34 | + c.update_project(path, project.gitosis_writers) | |
35 | + end | |
36 | + end | |
37 | + | |
38 | + def destroy_gitosis_project | |
39 | + Gitosis.new.configure do |c| | |
40 | + c.destroy_project(@project) | |
41 | + end | |
18 | 42 | end |
19 | 43 | |
20 | 44 | def repo_exists? |
21 | 45 | repo rescue false |
22 | 46 | end |
23 | 47 | |
24 | - def commit(commit_id = nil) | |
25 | - if commit_id | |
26 | - repo.commits(commit_id).first | |
27 | - else | |
28 | - repo.commits.first | |
29 | - end | |
48 | + def tags | |
49 | + repo.tags.map(&:name).sort.reverse | |
50 | + end | |
51 | + | |
52 | + def heads | |
53 | + @heads ||= repo.heads | |
30 | 54 | end |
31 | 55 | |
32 | 56 | def tree(fcommit, path = nil) |
... | ... | @@ -35,6 +59,14 @@ class Repository |
35 | 59 | path ? (tree / path) : tree |
36 | 60 | end |
37 | 61 | |
62 | + def commit(commit_id = nil) | |
63 | + if commit_id | |
64 | + repo.commits(commit_id).first | |
65 | + else | |
66 | + repo.commits.first | |
67 | + end | |
68 | + end | |
69 | + | |
38 | 70 | def fresh_commits(n = 10) |
39 | 71 | commits = heads.map do |h| |
40 | 72 | repo.commits(h.name, n) |
... | ... | @@ -47,10 +79,6 @@ class Repository |
47 | 79 | commits[0...n] |
48 | 80 | end |
49 | 81 | |
50 | - def heads | |
51 | - @heads ||= repo.heads | |
52 | - end | |
53 | - | |
54 | 82 | def commits_since(date) |
55 | 83 | commits = heads.map do |h| |
56 | 84 | repo.log(h.name, nil, :since => date) | ... | ... |