Grat

Grat is a minimal content management dealy.

It runs on Rack and uses MongoDB for wicked flexibility.

Woo.

Get setup

Use it like so:

  1. Install gem (may need to set up gemcutter)

  2. Fresh directory

  3. config.ru file containing: require 'rubygems' require 'rack' require 'grat'

    Grat.database_conf # uses defaults, database=grat_development

    to override:

    Grat.database_conf(:host => 'localhost', :database => 'grat_special')

    use Rack::ShowExceptions # <- Up to you. run Grat::Application

  4. rackup (or passenger, if you know how)

  5. http://localhost:9292/__admin/edit/mypage edits a page that will be available at http://localhost:9292/mypage

  6. http://localhost:9292/__admin/ for a list of all pages

  7. http://localhost:9292/__admin/export to get a json dump of all pages

  8. http://localhost:9292/__admin/import to import one of those dumps

  9. Protect from writes by strangers with Rack::If

    http://github.com/samsm/Rackif

    use Rack::If, {:method => /(POST)|(PUT)|(DELETE)/, :path => /__admin/}, :any do
    use Rack::Auth::Basic, "Grat protected" do |username, password|
      'secret' == password
    end
    end
    

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Copyright (c) 2009 Sam Schenkman-Moore. See LICENSE for details.