Lipa - DSL for description treelike structures in Ruby
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
spec
.gitignore
.rspec
.travis.yml
Gemfile
Guardfile
MIT-LICENSE
NEWS.md
README.md
Rakefile
lipa.gemspec

README.md

Lipa Build Status

Lipa - DSL for description treelike structures in Ruby

Features

  • Creating treelike structures for Ruby in DSL style
  • Flexible syntax
  • Supporting templates and scope initialization
  • Supporting Proc object as attributes

Installation

gem install lipa

Example

require 'lipa'
un = root :universe do 
  kind :planet_system do
    num_planet run{
      count = 0
      children.values.each do |planet|
        count += 1 if planet.kind == :planet
      end
      count
    }
  end

  kind :planet do 
    has_live false
    has_water false
    number 0
  end

  planet_system :sun_system do 
    planet :mercury do 
      number 1
      radius 46_001_210 
    end

    planet :venus do 
      number 2
      radius 107_476_259
    end

    planet :earth do 
      number 3
      radius 147_098_074
      has_live true
      has_water true

      node :moon, :radius => 363_104
    end
  end
end

un.sun_system.num_planet #=> 3
un.sun_system.earth.radius #=> 147098074

Reference

Home page: http://lipa.flipback.net

Web access to Lipa https://github.com/flipback/lipa-web