Governor

Governor (named after Rod Blagojevich) is the pluggable blogging platform for Rails, built for people who want to build their blog into their website, not build their website into their blog.

Dependencies

By 1.0, I’d like to make it possible to use Governor with other ORMs, but I’m not sure when that’ll be.

Setting Up

Governor is a gem, so the first thing to do is to add Governor to your Gemfile.

gem 'governor'

Now you’re ready to add a model:

rails generate governor:create_articles [CLASS_NAME]

‘CLASS_NAME` by default is Article, but feel free to specify something else, like Post, Blog, whatever. This will add a model, migration, and route to your app.

Usage

Now that you have an article model and a set of routes, you’re ready to plug it into your app. I’d recommend running ‘rake routes` to see what routes have been added, as they depend on the model name you chose.

Authentication/Authorization

Governor checks to see if any of the popular authentication schemes are in place, and should work with Devise, Authlogic, and Clearance. If you’re using something else, It’s fairly easy to plug in to Governor. Running the following generator will add an initializer to your app:

rails generate governor:configure

Here’s a snippet from the generated initializer:

# How to reference the author of an article
Governor.author = Proc.new do
  if defined?(Devise)
    send("current_#{Devise.default_scope}")
  elsif respond_to?(:current_user)
    current_user
  else
    raise "Please define Governor.author. Run `rails generator governor:configure` to install an initializer."
  end
end

Replace the block with your own code. This will allow you to define app-specific definitions for the author of an article; authorization rules for editing/deleting articles; and what the application should do if someone breaks those rules.

Roadmap

Less of a roadmap as a politician’s promise of what will exist in future versions of Governor:

Until v1.0 (or at least until things start to stabilize), I won’t promise anything regarding backwards compatibility. Please let me know if something you were relying on breaks, and I’ll do my best to steer you in the right direction or repair functionality.

Contributing to Governor

Governor is just getting off the ground now, so while there’s a lot to implement, the infrastructure might be too shaky to support multiple developers. Still, if you’re interested in improving this, let’s talk.

Copyright © 2011 Liam Morley. See LICENSE.txt for further details.