# Module TreeHelper

- app/helpers/tree_helper.rb

Methods

A
  - allowed_tree_edit?
B
  - breadcrumbs
G
  - gitlab_markdown?
M
  - markup?
P
  - plain_text_readme?
R
  - render_tree
T
  - tree_hex_class,
  - tree_icon,
  - tree_join

Instance Public methods
allowed_tree_edit?() Link

Source: show

    # 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

Breadcrumb links for a Project and, if applicable, a tree path

Source: show

gitlab_markdown?(filename) Link

Source: show

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

markup?(filename) Link

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

filename - Filename string to check

Returns boolean

Source: show

    # 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) Link

Source: show

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

render_tree(contents) Link

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

Source: show

    # 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) Link

Source: show

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

tree_icon(type) Link

Return an image icon depending on the file type

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

Source: show

    # 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) Link

Simple shortcut to File.join

Source: show

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