GithubHelp home page GithubHelp logo

sborrazas / armadillo Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 200 KB

Template inheritance with ERB templates

License: MIT License

Ruby 89.27% HTML 10.73%
armadillo template-inheritance ruby erb

armadillo's Introduction

Armadillo

A small library for Django-like template inheritance adapted for ERB.

Usage

To render an Armadillo template you need to call the Armadillo.render method.

This method accepts any of the following options:

  • :scope - Any object you want to bound to the template scope.
  • :base_path - The path of the directory for which the templates are going to be searched on.

Note: A .erb extension is assumed for every file and should not be part of the filename given as the template filename.

Armadillo.render("myview.html", { :items => [1, 2, 3] }, {
  :base_path => File.join(Dir.pwd, "views"),
  :scope => self
})
<!-- views/myview.html.erb -->
<% extends("base.html") %>

<% vlock(:title) do %>
  <%= current_user.name %>
<% end %>

<% vlock(:body) do %>
  <ul>
    <% items.each do |item| %>
      <li><%= item %></li>
    <% end %>
  </ul>
<% end %>

<!-- views/base.html.erb -->
<!DOCTYPE>
<html>
  <title><% vlock(:title) %> - MyApp</title>
  <body>
    <% vlock(:body) %>
  </body>
</html>

Usage example using Cuba

module View
  def render_view(template_name, locals = {})
    content = Armadillo.render(template_name, locals, {
      :base_path => File.join(APP_PATH, "views"),
      :scope => self,
      :escape_html => true
    })
    res.write(content)
    halt(res.finish)
  end
end

on get, root do
  render_view("main/index.html", {
    :items => [1, 2, 3]
  })
end

armadillo's People

Contributors

sborrazas avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.