diff options
| author | Robert Speicher <rspeicher@gmail.com> | 2012-09-17 14:24:31 -0400 |
|---|---|---|
| committer | Robert Speicher <rspeicher@gmail.com> | 2012-09-26 16:32:22 -0400 |
| commit | 398ba6f1bb60f176444dedc7b26188e08b920f54 (patch) | |
| tree | a89c8290d9e3d2ced12563f8c9a97fb34fdc1347 /app | |
| parent | 576cec6c67dcc4ee00b8220ca1a45385583e25b2 (diff) | |
| download | gitlab-ce-398ba6f1bb60f176444dedc7b26188e08b920f54.tar.gz | |
DRY up Blame, Blob and Tree controllers
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/blame_controller.rb | 27 | ||||
| -rw-r--r-- | app/controllers/blob_controller.rb | 24 | ||||
| -rw-r--r-- | app/controllers/tree_controller.rb | 29 | ||||
| -rw-r--r-- | app/views/tree/show.html.haml | 2 | ||||
| -rw-r--r-- | app/views/tree/show.js.haml | 2 |
5 files changed, 11 insertions, 73 deletions
diff --git a/app/controllers/blame_controller.rb b/app/controllers/blame_controller.rb index d159a83c8cb..dd5be6dcd58 100644 --- a/app/controllers/blame_controller.rb +++ b/app/controllers/blame_controller.rb @@ -1,7 +1,5 @@ # Controller for viewing a file's blame class BlameController < ApplicationController - # Thrown when given an invalid path - class InvalidPathError < StandardError; end include RefExtractor @@ -15,31 +13,10 @@ class BlameController < ApplicationController before_filter :authorize_code_access! before_filter :require_non_empty_project - before_filter :define_tree_vars + before_filter :assign_ref_vars def show + @repo = @project.repo @blame = Grit::Blob.blame(@repo, @commit.id, @path) end - - private - - def define_tree_vars - @ref, @path = extract_ref(params[:id]) - - @id = File.join(@ref, @path) - @repo = @project.repo - @commit = CommitDecorator.decorate(@project.commit(@ref)) - - @tree = Tree.new(@commit.tree, @project, @ref, @path) - @tree = TreeDecorator.new(@tree) - - raise InvalidPathError if @tree.invalid? - - @hex_path = Digest::SHA1.hexdigest(@path) - - @history_path = project_tree_path(@project, @id) - @logs_path = logs_file_project_ref_path(@project, @ref, @path) - rescue NoMethodError, InvalidPathError - not_found! - end end diff --git a/app/controllers/blob_controller.rb b/app/controllers/blob_controller.rb index bb051281013..58e70bc9d04 100644 --- a/app/controllers/blob_controller.rb +++ b/app/controllers/blob_controller.rb @@ -16,7 +16,7 @@ class BlobController < ApplicationController before_filter :authorize_code_access! before_filter :require_non_empty_project - before_filter :define_tree_vars + before_filter :assign_ref_vars def show if @tree.is_blob? @@ -37,26 +37,4 @@ class BlobController < ApplicationController not_found! end end - - private - - def define_tree_vars - @ref, @path = extract_ref(params[:id]) - - @id = File.join(@ref, @path) - @repo = @project.repo - @commit = CommitDecorator.decorate(@project.commit(@ref)) - - @tree = Tree.new(@commit.tree, @project, @ref, @path) - @tree = TreeDecorator.new(@tree) - - raise InvalidPathError if @tree.invalid? - - @hex_path = Digest::SHA1.hexdigest(@path) - - @history_path = project_tree_path(@project, @id) - @logs_path = logs_file_project_ref_path(@project, @ref, @path) - rescue NoMethodError, InvalidPathError - not_found! - end end diff --git a/app/controllers/tree_controller.rb b/app/controllers/tree_controller.rb index 15bbb1a3c77..e0dd8f8beaf 100644 --- a/app/controllers/tree_controller.rb +++ b/app/controllers/tree_controller.rb @@ -15,35 +15,18 @@ class TreeController < ApplicationController before_filter :authorize_code_access! before_filter :require_non_empty_project - before_filter :define_tree_vars + before_filter :assign_ref_vars def show + @hex_path = Digest::SHA1.hexdigest(@path) + + @history_path = project_tree_path(@project, @id) + @logs_path = logs_file_project_ref_path(@project, @ref, @path) + respond_to do |format| format.html # Disable cache so browser history works format.js { no_cache_headers } end end - - private - - def define_tree_vars - @ref, @path = extract_ref(params[:id]) - - @id = File.join(@ref, @path) - @repo = @project.repo - @commit = CommitDecorator.decorate(@project.commit(@ref)) - - @tree = Tree.new(@commit.tree, @project, @ref, @path.gsub(/^\//, '')) - @tree = TreeDecorator.new(@tree) - - raise InvalidPathError if @tree.invalid? - - @hex_path = Digest::SHA1.hexdigest(@path) - - @history_path = project_tree_path(@project, @id) - @logs_path = logs_file_project_ref_path(@project, @ref, @path) - rescue NoMethodError, InvalidPathError - not_found! - end end diff --git a/app/views/tree/show.html.haml b/app/views/tree/show.html.haml index 181be6426d4..d95f90e0b54 100644 --- a/app/views/tree/show.html.haml +++ b/app/views/tree/show.html.haml @@ -1,5 +1,5 @@ = render "head" -#tree-holder= render partial: "tree", locals: {repo: @repo, commit: @commit, tree: @tree} +#tree-holder= render partial: "tree", locals: {commit: @commit, tree: @tree} :javascript $(function() { diff --git a/app/views/tree/show.js.haml b/app/views/tree/show.js.haml index 3d0215ff51f..174e3e03a52 100644 --- a/app/views/tree/show.js.haml +++ b/app/views/tree/show.js.haml @@ -1,6 +1,6 @@ :plain // Load Files list - $("#tree-holder").html("#{escape_javascript(render(partial: "tree", locals: {repo: @repo, commit: @commit, tree: @tree}))}"); + $("#tree-holder").html("#{escape_javascript(render(partial: "tree", locals: {commit: @commit, tree: @tree}))}"); $("#tree-content-holder").show("slide", { direction: "right" }, 150); $('.project-refs-form #path').val("#{@path}"); |
