Project

birdses

0.01
Repository is archived
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
gollum wiki as a mountable rails engine
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 2.4.11
~> 3.2.11
 Project Readme

Birdses

Birdses implements views for gollum as a mountable rails engine.

Add Birdses to your rails application in four easy steps:

  1. add gem 'birdses' to your Gemfile and run bundle install
  2. add mount Birdses::Engine => "/wiki" to your config/routes.rb
  3. add //= require birdses/pages to your application.js
  4. init a git repository under wiki/ (mkdir -p wiki && git init wiki)

Why?

But why, why would you want to do this? After all you can already mount gollum's sinatra application. Well that works just fine, however gollum's frontend and your rails application wont look like they belong together. Gollum's frontend can't use your ApplicationLayout, which means you would lose that great menu bar twitter bootstrap gives you and that's just sad!

Example

You can see an example here. It also runs on heroku, just give it a couple of seconds to spin up the dyno. :)

Caveats

current_user

If you're using an authentication system that provides a current_user method (like devise), birdses will try to access .fullname and .email (on current_user). It will use these for the commit messages.

_url/_path

If you use any magic url mappers (any method that ends with _path or _url) in the application layout you will have to use the main_app helper.

For example, I use Twitter Bootstrap and have a 'Sign Out' link in my navigation bar. For it to work properly with birdses I have to prepend the helper method.

without birdes:

# ...
- if current_user
  %li= link_to('Sign Out', destroy_user_session_path, method: :delete)
# ...

with birdses:

# ...
- if current_user
  %li= link_to('Sign Out', main_app.destroy_user_session_path, method: :delete)
# ...

Otherwise you will get errors like this, when accessing the mounted wiki:

NameError in Birdses/pages#index

Showing /Users/max/code/snap_app/app/views/layouts/application.html.haml where line #43 raised:

undefined local variable or method `destroy_user_session_path' for
#<#<Class:0x007fd67c3d6418>:0x007fd67afb3508>