README.md

webmachine for Ruby

webmachine-ruby is a port of
Webmachine, which is written in
Erlang. The goal of both projects is to expose interesting parts of
the HTTP protocol to your application in a declarative way. This
means that you are less concerned with the procedures involved in handling
requests directly and more with describing facts about the resources
that make up your application.
Webmachine is not a web framework per se, but more of a
toolkit for building HTTP-friendly applications. For example, it does
not provide a templating engine or a persistence layer; those choices
are up to you.

Getting Started

Below we go through some examples of how to do basic things
with webmachine-ruby.

The first example defines a simple resource that doesn't demo the
true power of Webmachine but perhaps gives a feel for how a
Webmachine resource might look. Webmachine::Resource.run is available
to provide for quick prototyping and development. In a real application
you will want to configure what path a resource is served from.
See the Router section in the README for more details on how to
do that.

There are many other HTTP features exposed to a resource through
{Webmachine::Resource::Callbacks}. A callback can alter the outcome
of the decision tree Webmachine implements, and the decision tree
is what makes Webmachine unique and powerful.

Application/Configurator

There is a configurator that allows you to set what IP address and port
a web server should bind to as well as what web server should serve a
webmachine resource. Learn how to configure your application here.

Adapters

Webmachine provides adapters for many popular webservers. Learn more here.

Visual debugger

It can be hard to understand all of the decisions that Webmachine
makes when servicing a request to your resource, which is why we have
the "visual debugger". Learn how to configure it here.