Capcode

Copyright (C) 2009 Gregoire Lejeune

DESCRIPTION:

Capcode is a web microframework

FEATURES/PROBLEMS:

0.7.0

0.6.2

0.6.1

0.6.0

0.5.0

0.4.0

0.3.0

0.2.0

0.1.0

SYNOPSIS:

  # file: sample.rb
  require 'rubygems'
  require 'capcode'

  module Capcode
    class Hello < Route '/hello'
      def get
        "Hello World #{Time.now} !"
      end
    end
  end

  Capcode.run( )

Running Capcode Apps

Create model

  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.

Create View

  # 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( )

Create Helper

  # 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( )

Render with Markaby

  # 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( )

Render with Haml

  # 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

Render with JSON

  # 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( )

REQUIREMENTS:

INSTALL:

  sudo gem install capcode

LICENSE:

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.