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,18 +8,18 @@ class CommitsController < ApplicationController | ||
8 | before_filter :add_project_abilities | 8 | before_filter :add_project_abilities |
9 | before_filter :authorize_read_project! | 9 | before_filter :authorize_read_project! |
10 | before_filter :require_non_empty_project | 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 | @repo = project.repo | 15 | @repo = project.repo |
16 | limit, offset = (params[:limit] || 20), (params[:offset] || 0) | 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 | respond_to do |format| | 24 | respond_to do |format| |
25 | format.html # index.html.erb | 25 | format.html # index.html.erb |
@@ -29,8 +29,8 @@ class CommitsController < ApplicationController | @@ -29,8 +29,8 @@ class CommitsController < ApplicationController | ||
29 | 29 | ||
30 | def show | 30 | def show |
31 | @commit = project.repo.commits(params[:id]).first | 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 | respond_to do |format| | 35 | respond_to do |format| |
36 | format.html | 36 | format.html |
app/controllers/projects_controller.rb
@@ -6,8 +6,8 @@ class ProjectsController < ApplicationController | @@ -6,8 +6,8 @@ class ProjectsController < ApplicationController | ||
6 | before_filter :add_project_abilities | 6 | before_filter :add_project_abilities |
7 | before_filter :authorize_read_project!, :except => [:index, :new, :create] | 7 | before_filter :authorize_read_project!, :except => [:index, :new, :create] |
8 | before_filter :authorize_admin_project!, :only => [:edit, :update, :destroy] | 8 | before_filter :authorize_admin_project!, :only => [:edit, :update, :destroy] |
9 | - | ||
10 | before_filter :require_non_empty_project, :only => [:blob, :tree] | 9 | before_filter :require_non_empty_project, :only => [:blob, :tree] |
10 | + before_filter :load_refs, :only => :tree # load @branch, @tag & @ref | ||
11 | 11 | ||
12 | def index | 12 | def index |
13 | source = current_user.projects | 13 | source = current_user.projects |
@@ -101,15 +101,13 @@ class ProjectsController < ApplicationController | @@ -101,15 +101,13 @@ class ProjectsController < ApplicationController | ||
101 | # | 101 | # |
102 | 102 | ||
103 | def tree | 103 | def tree |
104 | - load_refs # load @branch, @tag & @ref | ||
105 | - | ||
106 | @repo = project.repo | 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 | @tree = @commit.tree | 112 | @tree = @commit.tree |
115 | @tree = @tree / params[:path] if params[:path] | 113 | @tree = @tree / params[:path] if params[:path] |
app/models/project.rb
@@ -51,6 +51,10 @@ class Project < ActiveRecord::Base | @@ -51,6 +51,10 @@ class Project < ActiveRecord::Base | ||
51 | end | 51 | end |
52 | 52 | ||
53 | delegate :repo, | 53 | delegate :repo, |
54 | + :url_to_repo, | ||
55 | + :path_to_repo, | ||
56 | + :update_gitosis_project, | ||
57 | + :destroy_gitosis_project, | ||
54 | :tags, | 58 | :tags, |
55 | :repo_exists?, | 59 | :repo_exists?, |
56 | :commit, | 60 | :commit, |
@@ -74,16 +78,12 @@ class Project < ActiveRecord::Base | @@ -74,16 +78,12 @@ class Project < ActiveRecord::Base | ||
74 | notes.where(:noteable_type => ["", nil]) | 78 | notes.where(:noteable_type => ["", nil]) |
75 | end | 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 | end | 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 | end | 87 | end |
88 | 88 | ||
89 | def add_access(user, *access) | 89 | def add_access(user, *access) |
@@ -121,14 +121,6 @@ class Project < ActiveRecord::Base | @@ -121,14 +121,6 @@ class Project < ActiveRecord::Base | ||
121 | private_flag | 121 | private_flag |
122 | end | 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 | def last_activity | 124 | def last_activity |
133 | updates(1).first | 125 | updates(1).first |
134 | rescue | 126 | rescue |
app/models/repository.rb
@@ -9,24 +9,48 @@ class Repository | @@ -9,24 +9,48 @@ class Repository | ||
9 | @project = project | 9 | @project = project |
10 | end | 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 | def repo | 20 | def repo |
13 | @repo ||= Grit::Repo.new(project.path_to_repo) | 21 | @repo ||= Grit::Repo.new(project.path_to_repo) |
14 | end | 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 | end | 42 | end |
19 | 43 | ||
20 | def repo_exists? | 44 | def repo_exists? |
21 | repo rescue false | 45 | repo rescue false |
22 | end | 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 | end | 54 | end |
31 | 55 | ||
32 | def tree(fcommit, path = nil) | 56 | def tree(fcommit, path = nil) |
@@ -35,6 +59,14 @@ class Repository | @@ -35,6 +59,14 @@ class Repository | ||
35 | path ? (tree / path) : tree | 59 | path ? (tree / path) : tree |
36 | end | 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 | def fresh_commits(n = 10) | 70 | def fresh_commits(n = 10) |
39 | commits = heads.map do |h| | 71 | commits = heads.map do |h| |
40 | repo.commits(h.name, n) | 72 | repo.commits(h.name, n) |
@@ -47,10 +79,6 @@ class Repository | @@ -47,10 +79,6 @@ class Repository | ||
47 | commits[0...n] | 79 | commits[0...n] |
48 | end | 80 | end |
49 | 81 | ||
50 | - def heads | ||
51 | - @heads ||= repo.heads | ||
52 | - end | ||
53 | - | ||
54 | def commits_since(date) | 82 | def commits_since(date) |
55 | commits = heads.map do |h| | 83 | commits = heads.map do |h| |
56 | repo.log(h.name, nil, :since => date) | 84 | repo.log(h.name, nil, :since => date) |