Equipment

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.

WARNING !!!

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

Features

  • The above equipments.
  • Dependencies are automatically resolved.
  • Equipment itself provides a cool extension mechanism.

Usage

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'
end

end

see in the examples for more details.

License

GPL v2

Author(s)