class GithubIndex

Attributes

path[R]

Public Class Methods

new(base_dir = "~") click to toggle source
# File lib/gitindex.rb, line 5
def initialize(base_dir = "~")
  @base_dir = base_dir
  @path = ""
  @index = ""
end

Public Instance Methods

generate_index() click to toggle source
# File lib/gitindex.rb, line 11
def generate_index
  puts write_header
  puts "Reading from #{@base_dir}"
  process_directory(@base_dir)
  puts "<ul>#{@index}</ul>"
  puts write_footer
end

Private Instance Methods

find_remote(current_directory) click to toggle source
# File lib/gitindex.rb, line 54
def find_remote(current_directory)
  repo = GitRepo.new("#{current_directory}/.git/config")
  repo.find_remote
end
print_repo(current_directory) click to toggle source
process_directory(current_directory) click to toggle source
# File lib/gitindex.rb, line 30
def process_directory(current_directory)
  contents = Dir.entries(current_directory).slice(2..-1)
  @path = Pathname.new(current_directory)
  if not contents.include?(".git")
    @index << "<li>#{path.basename}"
    contents.each do |content|
      if File.directory?("#{current_directory}/#{content}/")
        @index << "<ul>"
        process_directory("#{current_directory}/#{content}/")
        @index << "</ul>"
      end
    end
  else
    @index << print_repo(current_directory)      
  end
end
write_header() click to toggle source
# File lib/gitindex.rb, line 20
  def write_header
    header = <<-HTML
<!doctype html>
<html>
  <head><title>Github Index</title></head>
  <body>
    <h1>Git Repository Index</h1>
    HTML
  end