| Path: | README.rdoc |
| Last Update: | Fri Oct 09 23:23:13 +0200 2009 |
Copyright (C) 2009 Gregoire Lejeune
Capcode is a web microframework
# file: sample.rb
require 'rubygems'
require 'capcode'
module Capcode
class Hello < Route '/hello'
def get
"Hello World #{Time.now} !"
end
end
end
Capcode.run( )
require 'rubygems'
require 'capcode'
require 'capcode/base/dm' # or require 'capcode/base/couchdb'
class Story < Capcode::Base
include Capcode::Resource
property :id, Integer, :serial => true # only with DataMapper !
property :title, String
property :body, String
property :date, String
end
See examples/blog-dm.rb and/or examples/blog-couchdb.rb for complete examples.
# file: sample.rb
require 'rubygems'
require 'capcode'
module Capcode
class Hello < Route '/hello'
def get
@t = Time.now
render :time
end
end
end
module Capcode::Views
def time
"Hello world #{@t}"
end
end
Capcode.run( )
# file: sample.rb
require 'rubygems'
require 'capcode'
module Capcode
class Hello < Route '/hello'
def get
@t = Time.now
render :time
end
end
end
module Capcode::Helpers
def bold( &b )
"<b>"+yield+"</b>"
end
end
module Capcode::Views
def time
"Hello world " + bold { @t }
end
end
Capcode.run( )
# file: sample.rb
require 'rubygems'
require 'capcode'
require 'capcode/render/markaby'
module Capcode
class Hello < Route '/hello'
def get
@t = Time.now
render :markaby => :time
end
end
end
module Capcode::Views
def time
# We use Markaby in Capcode::Views.time
html do
body do
p {
text "Hello World "
b @t
}
end
end
end
end
Capcode.run( )
# file: sample.rb
require 'rubygems'
require 'capcode'
require 'capcode/render/haml'
Capcode::Helpers.haml_path = "./my_haml_views"
module Capcode
class Hello < Route '/hello'
def get
@t = Time.now
render :haml => :time
end
end
end
Capcode.run( )
# ./my_haml_views/time.haml
%html
%body
%p
Hello World
= @t
# file: sample.rb
require 'rubygems'
require 'capcode'
require 'capcode/render/json'
module Capcode
class Hello < Route '/hello'
def get
@t = Time.now
render :json => { :time => @t }
end
end
end
Capcode.run( )
# file: sample.rb
require 'rubygems'
require 'capcode'
require 'capcode/render/webdav'
module Capcode
# !!! Render file from /Users/greg/temp !!!
class WebDav < Route '/temp'
def get
render :webdav => "/Users/greg"
end
def method_missing(id, *a, &b)
get
end
end
class Index < Route '/'
def get
render "WebDav server acces : <a href='#{URL(Capcode::WebDav)}'>#{URL(Capcode::WebDav)}</a>"
end
end
end
Capcode.run( )
First create the directory structure :
my_app/ my_app/tmp my_app/public
Then put your app in my_app/ and comment or remove the line with Capcode.run
Create a rack configuration file (config.ru) in my_app/
require 'app' run Capcode.application()
Capcode.application take the same parameters as Capcode.run (and block too). Be carefull, if you use static files (with the static renderer) you must set the :root option (:root => File.expand_path(File.dirname(FILE)) is probably good)
You can now deploy your application like a "Rack-based Ruby application"
sudo gem install capcode
Capcode is freely distributable according to the terms of the GNU General Public License.
This program is distributed without any warranty. See the file ‘COPYING’ for details.