xwmx / camping

the 4k pocket full-of-gags web microframework

Home Page:http://code.whytheluckystiff.net/camping/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

== Camping, a Microframework

Camping is a web framework which consistently stays at less than 3kb of code.
You can probably view the complete source code on a single page. But, you
know, it's so small that, if you think about it, what can it really do?

The idea here is to store a complete fledgling web application in a single
file like many small CGIs. But to organize it as a Model-View-Controller
application like Rails does. You can then easily move it to Rails once you've
got it going.

== A Camping Skeleton

A skeletal Camping blog could look like this:

  require 'camping'
  
  Camping.goes :Blog

  module Blog::Models
    class Post < Base; belongs_to :user; end
    class Comment < Base; belongs_to :user; end
    class User < Base; end
  end

  module Blog::Controllers
    class Index
      def get
        @posts = Post.find :all
        render :index
      end
    end
  end

  module Blog::Views
    def layout
      html do
        head { title "My Blog" }
        body do
          h1 "My Blog"
          self << yield
        end
      end
    end

    def index
      for post in @posts
        h1 post.title
      end
    end
  end
  
== Installation

Interested yet?  Luckily it's quite easy to install Camping.  We'll be using
a tool called RubyGems, so if you don't have that installed yet, go grab it!
Once that's sorted out, open up a Terminal or Command Line and enter:

* <tt>gem install camping</tt>

Or for the bleeding edge:

* <tt>gem install camping --source http://gems.judofyr.net</tt>

Camping itself only depends on Rack[http://rack.rubyforge.org] and using the
command above will only install Camping and Rack.  However, if you intend to
use the views you also need to install +markaby+, and if you're going to use
the database you need +activerecord+ as well:

* <tt>gem install markaby</tt>
* <tt>gem install activerecord</tt>

== Learning

* Start by reading the documentation in {the Camping module}[link:classes/Camping.html],
  it should get you started pretty quick.
* {The wiki}[http://wiki.github.com/why/camping] is the place for all tiny,
  useful tricks that we've collected over the years.  Don't be afraid to
  share your own discoveries; the more, the better!
* Still wondering?  Subscribe to {the mailing list}[http://rubyforge.org/mailman/listinfo/camping-list],
  the place where it's all happening!  Don't worry, though, the volume is just
  as micro as Camping itself.  
  
== Authors

Camping was originally started by {why the lucky stiff}[http://en.wikipedia.org/wiki/Why_the_lucky_stiff],
but is now maintained by the _community_.  This simply means that if we like your
patch, it will be applied.  Everything is managed through {the mailing list}[http://rubyforge.org/mailman/listinfo/camping-list],
so just subscribe and you can instantly take a part in shaping Camping.

About

the 4k pocket full-of-gags web microframework

http://code.whytheluckystiff.net/camping/

License:Other