Cuba

Micro framework

¡Hola mundo!

Capturas

Templates

Assets

Plugins

 

Cuba es un micro framework enfocado a desarrollo web, pequeño y flexible.

Hola mundo!

require "cuba"

Cuba.define do
  on get do
    on "hello" do
      res.write "Hello world!"
    end

    on root do
      res.redirect "/hello"
    end
  end
end
# unicorn server.ru -p 4001

require "./hello_world"

run Cuba

Tipos de captura

  1. Regex, donde cada grupo corresponde a una captura: posts/(\\d+)-(.*)
     
  2. Simbolos, donde corresponde a la posición del id: "users/:id"​
     
  3. Extensión, obtiene el nombre del archivo: extension("css")
     
  4. Parametro, donde corresponde a un parametro en query string o form: param("user")

Capturas

Cuba.define do
  on get do
    # /styles/basic.css
    on "styles", extension("css") do |file|
      res.write "Filename: #{file}" #=> "Filename: basic"
    end

    # /post/2011/02/16/hello
    on "post/:y/:m/:d/:slug" do |y, m, d, slug|
      res.write "#{y}-#{m}-#{d} #{slug}" #=> "2011-02-16 hello"
    end

    # /search?q=barbaz
    on "search", param("q") do |query|
      res.write "Searched for #{query}" #=> "Searched for barbaz"
    end
  end
end

Templates

Uso de Tilt para expandir los templates.

Soporte para:

  • ERB
  • HAML
  • CoffeeScript
  • Sass
  • Creole
require "cuba"
require "cuba/render"
require "haml"

Cuba.plugin(Cuba::Render)

Cuba.settings[:render][:template_engine] = "haml"
 
Cuba.define do
  on "about" do
    res.write partial("about")
  end

  on "home" do
    res.write view("about")
  end
end

Assets

Solo necesitamos hacer uso de sprockets

require 'cuba/assets'

Cuba.plugin Cuba::Assets


 on 'assets/:path' do |path|
   res.write asset(path)
 end

/
└── assets
    └── styles
        ├── app.css.scss
        └── model
            └── model.css.scss

Plugins

Todo en cuba es simple

module MyOwnHelper
  def markdown(str)
    BlueCloth.new(str).to_html
  end
end

Cuba.plugin MyOwnHelper

Los sistemas de seguridad de Cuba estan diponibles tambien como Modulos, asi como los sistemas de template.

 

 

Cuba does one thing, and it does it well.  

Cuba framework

By Miguel Angel Gordian