giraffe icon indicating copy to clipboard operation
giraffe copied to clipboard

Apparently the best way to represent a Git repository is something called an Indirectly Cycling Giraffe. Doc wiki and issue tracking right in your repo. Centralization through decentralization.

Giraffe

Simple wiki engine and eventually issue tracker using Git for storage.

All the changes made to the codebase in this particular fork of the original excellent idea and various people's previous work are for the purpose of centralising the documentation for Rubinius.

As such, some behaviours may not suit all other use cases.

Features

  • Store documentation in the repository and simultaneously make it available through a Wiki interface.
  • Uses Git as storage backend.
    • History
    • Diffs
    • Searching
  • Minimal configuration done in pure Ruby.
  • Serve from repository root or any subdirectory.
  • URI-to-file-to-URI mapping and file- and resource visibility mapping.
  • Run directly or with rackup.

Requirements

Gems needed by Giraffe:

  • rdiscount
  • rubypants

Optionally:

  • rspec
  • nokogiri
  • ruby-debug

The web framework used, Waves, is included as a submodule. To set it up, issue the following from the project root:

$ git submodule init
$ git submodule update

Waves has quite a few dependencies, so it is best to use its tools to install those. Once you have done the above:

$ cd waves
$ sudo rake setup

This installs the gems necessary.

Configuration

Currently, you must have an existing Git repository (although it may be empty--the .git/ stuff must exist.)

See doc/config.rb.sample for information. The configuration file to be used can be given in the GIRAFFE_CONF environment variable, but defaults to "config.rb".

Specs

There is a minimal amount of specs (please add some):

$ spec -fs spec

Running Standalone

Without further configuration, Giraffe will run on Mongrel at 0.0.0.0:8080:

$ waves/bin/waves server --startup run_giraffe_run.rb

For options, see:

$ waves/bin/waves server --help
$ waves/bin/waves --help

Running With rackup

Your server software should have instructions on running rackup applications. There is nothing special you need to do for Giraffe.

Note that config.ru does assume you have a running server that invokes rackup. If you want to run standalone, see instructions above.