# module TreeHelper

### Public Instance Methods

allowed_tree_edit?() click to toggle source

    # File app/helpers/tree_helper.rb, line 63
    def allowed_tree_edit?
      if @project.protected_branch? @ref
        can?(current_user, :push_code_to_protected_branches, @project)
      else
        can?(current_user, :push_code, @project)
      end
    end

gitlab_markdown?(filename) click to toggle source

    # File app/helpers/tree_helper.rb, line 50
    def gitlab_markdown?(filename)
      filename.end_with?(*%w(.mdown .md .markdown))
    end

markup?(filename) click to toggle source

Public: Determines if a given filename is compatible with GitHub::Markup.

filename - Filename string to check

Returns boolean

    # File app/helpers/tree_helper.rb, line 45
    def markup?(filename)
      filename.end_with?(*%w(.textile .rdoc .org .creole
                             .mediawiki .rst .asciidoc .pod))
    end

plain_text_readme?(filename) click to toggle source

    # File app/helpers/tree_helper.rb, line 54
    def plain_text_readme? filename
      filename == 'README'
    end

render_tree(contents) click to toggle source

Sorts a repository’s tree so that folders are before files and renders their corresponding partials

contents - A Grit::Tree object for the current tree

    # File app/helpers/tree_helper.rb, line 6
    def render_tree(contents)
      # Render Folders before Files/Submodules
      folders, files = contents.partition { |v| v.kind_of?(Grit::Tree) }

      tree = ""

      # Render folders if we have any
      tree += render partial: 'tree/tree_item', collection: folders, locals: {type: 'folder'} if folders.present?

      files.each do |f|
        if f.respond_to?(:url)
          # Object is a Submodule
          tree += render partial: 'tree/submodule_item', object: f
        else
          # Object is a Blob
          tree += render partial: 'tree/tree_item', object: f, locals: {type: 'file'}
        end
      end

      tree.html_safe
    end

tree_hex_class(content) click to toggle source

    # File app/helpers/tree_helper.rb, line 36
    def tree_hex_class(content)
      "file_#{hexdigest(content.name)}"
    end

tree_icon(type) click to toggle source

Return an image icon depending on the file type

type - String type of the tree item; either ‘folder’ or ‘file’

    # File app/helpers/tree_helper.rb, line 31
    def tree_icon(type)
      image = type == 'folder' ? 'file_dir.png' : 'file_txt.png'
      image_tag(image, size: '16x16')
    end

tree_join(*args) click to toggle source

Simple shortcut to File.join

    # File app/helpers/tree_helper.rb, line 59
    def tree_join(*args)
      File.join(*args)
    end