Charge your Camping app with some equipments to survive the cyber wildness. I wanted to wait until I've completed the full set of tools but most of them are already quite usable.

Before starting the adventure, choose your tools righly. Follows a list of free tools.

Working equipment :

  • Ext::AppUtil : Access to your app from a controller extension.

  • Ext::BasicAuth : Handles HttpBasic authentication.

  • Ext::ErubyView : Add Erb/Erubis template handling to your app.

  • Ext::Flash : Flash data (like in rails).

  • Ext::FormHelpers : Generate forms with the model.

  • Ext::Forward : Forward a request (only for 1337 ppl).

  • Ext::JsHelpers : Adds javascript helpers.

  • Ext::Mount : Allows you to mount a directory as a controller for file serving. Supports dir listing too.

  • Ext::Security : Generic handle for authentication and authorization.

  • Ext::Sendfile : Provides `sendfile`. Uses sendfile with mongrel if available.

  • Ext::Settings : Add configuration to your app.

  • Ext::TemplateView : Extension that changes camping to allow easy adding of other templating languages.

  • Ext::UseHelper : Tell your template what scripts your view is using.

  • Ext::XmlView : Basic Xml builder. Ripped from some _why app. Ugly yet.

Not working equipment (TODO) :

  • Ext::Controls : Helpers for html controls.

  • Ext::NegociateContent : Content negociation.

  • Ext::Og : Og utilities to integrate in Camping better.

  • Ext::OgScaffold : Scaffolding.

  • Ext::OgSession : Session handling.

  • Ext::Resource : Rest Controller like ActiveResource.


Equipment pokes the Camping code around. This may give unwanted results.

Before reporting, please make take care to :

  • NOT equip and extension while an app is running.

  • Make SURE to call `super` if you override YourApp.create


  • The above equipments.

  • Dependencies are automatically resolved.

  • Equipment itself provides a cool extension mechanism.


Include an equipment in your app's module to instantly get the features that it describes. Modules and classes below are automatically included because of Equipment#included(app) which is defined in each equipment by extending the Equipment module.

example :

require 'camping'
require 'ext/mount'

Camping.goes :YourApp

module YourApp
  equip Ext::Mount

  module Controllers
    # ::mount is now available here
    mount '/somepath', :name=>:ControllerName, :url=>'/here'

see in the examples for more details.


GPL v2