summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgitlabhq <m@gitlabhq.com>2011-11-21 01:16:10 -0500
committergitlabhq <m@gitlabhq.com>2011-11-21 01:16:10 -0500
commit3f35cccfbd9a97bd1291c3b2dd7bdf78e8acc047 (patch)
tree7ef78e2d26b5b07c90b34d1edfd9b78971f0754f
parent4bf4efe712489090fca4ce14be9cbe7637f4d511 (diff)
downloadgitlab-ce-3f35cccfbd9a97bd1291c3b2dd7bdf78e8acc047.tar.gz
ref controller refactored
-rw-r--r--app/controllers/refs_controller.rb20
-rw-r--r--app/models/tree.rb1
2 files changed, 10 insertions, 11 deletions
diff --git a/app/controllers/refs_controller.rb b/app/controllers/refs_controller.rb
index a694115f0a7..fab732e2b1c 100644
--- a/app/controllers/refs_controller.rb
+++ b/app/controllers/refs_controller.rb
@@ -1,6 +1,7 @@
class RefsController < ApplicationController
before_filter :project
before_filter :ref
+ before_filter :define_tree_vars, :only => [:tree, :blob]
layout "project"
# Authorize
@@ -22,12 +23,6 @@ class RefsController < ApplicationController
# Repository preview
#
def tree
- @repo = project.repo
-
- @commit = @repo.commits(@ref).first
- @tree = Tree.new(@commit.tree, project, @ref, params[:path])
- @tree = TreeDecorator.new(@tree)
-
respond_to do |format|
format.html
format.js do
@@ -40,11 +35,7 @@ class RefsController < ApplicationController
end
def blob
- @repo = project.repo
- @commit = project.commit(@ref)
- @tree = project.tree(@commit, params[:path])
-
- if @tree.is_a?(Grit::Blob)
+ if @tree.is_blob?
send_data(@tree.data, :type => @tree.mime_type, :disposition => 'inline', :filename => @tree.name)
else
head(404)
@@ -55,6 +46,13 @@ class RefsController < ApplicationController
protected
+ def define_tree_vars
+ @repo = project.repo
+ @commit = project.commit(@ref)
+ @tree = Tree.new(@commit.tree, project, @ref, params[:path])
+ @tree = TreeDecorator.new(@tree)
+ end
+
def ref
@ref = params[:id]
end
diff --git a/app/models/tree.rb b/app/models/tree.rb
index 032290a0f46..db9df1312f0 100644
--- a/app/models/tree.rb
+++ b/app/models/tree.rb
@@ -5,6 +5,7 @@ class Tree
:basename,
:name,
:data,
+ :mime_type,
:text?,
:colorize,
:to => :tree