From 3f35cccfbd9a97bd1291c3b2dd7bdf78e8acc047 Mon Sep 17 00:00:00 2001 From: gitlabhq Date: Mon, 21 Nov 2011 01:16:10 -0500 Subject: [PATCH] ref controller refactored --- app/controllers/refs_controller.rb | 20 +++++++++----------- app/models/tree.rb | 1 + 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/controllers/refs_controller.rb b/app/controllers/refs_controller.rb index a694115..fab732e 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 032290a..db9df13 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 -- libgit2 0.21.2