aizatto / xrb

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XRB was inspired by XHP ( http://github.com/facebook/xhp/ ).
XRB is a Rails Engine to be used.

Having used XHP intensively, I saw the benefits of XML literals as first class
elements in a programming language.  The biggest benefit was that you could
easily build large libraries of components to reuse on many sites.

As I was unable to figure out how to add XML literals into the Ruby parser.
I thought I would start with a more Ruby approach.

Installation
============

Edit Your Application's Gemfile
-------------------------------

Add to your Gemfile

    gem 'xrb', :require => 'xrb/engine'

In your ApplicationHelper add

    require UiHelper

Usage
=====

Inside your template files you can now use XRB.

    <%= ui :image, :block do %>
      <% ui :link => user_path(user) %>
        <%= image_tag(user.photo.url(:thumbnail), :title => user %>
      <% end %>
      <% ui :group do %>
        <% ui :link => user_path(user) %>
          <%= user %>
        <% end %>
        <% ui :group do %>
          <%= user.description %>
        <% end %>
      <% end %>
    <% end %>


Defining your own XRB Element
-----------------------------

Say you want to define an element `user`.
Inside a helper file we need to add a function:

    def ui_user(xrb)
      user = xrb.attributes.delete(:user)

      xrb.content = ui_output do
        content_tag :div, user, xrb.attributes
      end
    end

Change the code inside `ui_output` to let design how your component will look
like.

About


Languages

Language:Ruby 100.0%