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