Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A Cuba plugin to use Haml
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib/cuba
test
.gems
README.md
Rakefile
cuba-haml.gemspec

README.md

cuba-haml

A Cuba plugin to use Haml

Configure

Cuba::Haml plugin introduces some keys into Cuba.settings to make easy the way to reander layouts

  # Default layouts directory
  app.settings[:haml][:layout_path] ||= app.settings[:haml][:views]

  # Default layout file
  app.settings[:haml][:layout] ||= "layout"

Feel free to overwrite this variables after install the plugin. Following this example

require "cuba/haml"

Cuba.plugin Cuba::Haml
Cuba.settings[:haml][:layout_path] = "some/other/path"
Cuba.settings[:haml][:layout] = "not_default_layout"

Rendering

Cuba ships with a plugin that provides helpers for rendering templates. But if only want to use haml, you can specify this plugin.

require "cuba/haml"

Cuba.plugin Cuba::Haml

Cuba.define do
  on default do

    # Within the partial, you will have access to the local variable `content`,
    # that will hold the value "hello, world".
    res.write render("home.haml", content: "hello, world")
  end
end

Using the method render, you need to provide full path template so there are two methods to do it easy template_path(template_name) and layout_path(layout).

But you can use the haml helper to get a cleaner code

...
  on default do
    haml("home", content: "hello, world")
  end
...

Also if you want to override the default layout you can use the view helper

...
  on default do
    view("home", 'other-layout', content: "hello, world")
  end
...

Don't be afraid and read the tests, there are really simple I promisse!

Note that in order to use this plugin you need to have Haml installed.

Something went wrong with that request. Please try again.