Project

lutaml

0.01
The project is in a healthy, maintained state
LutaML: data models in textual form
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 0.12.2
~> 13.0
~> 3.11
~> 1.58
>= 0

Runtime

~> 1.0
~> 4.1.0
~> 2.0.0
~> 0.3.12
>= 0
~> 2.1.0
~> 1.10
 Project Readme

LutaML: Ruby library for accessing data models

Purpose

LutaML aims to be a universal data model accessor that allows parsing data models in multiple languages, including:

Install

With bundler, in Gemfile:

gem "lutaml"

Directly:

$ gem install lutaml

Usage

Parsing

The Lutaml::Parser.parse method provides a single point of entry for parsing data model files, such as:

  • EXPRESS files with .exp extension

  • YAML Compressed EXPRESS CACHE files

  • XMI files with .xmi extension

  • XML files with .xml extension

  • LutaML files with .lutaml extension

  • LutaML YAML files with .yml extension

Depending on the input file type, Lutaml::Parser.parse returns:

  • Expressir::Express::Model::Repository for EXPRESS files

  • Expressir::Express::Cache for EXPRESS CACHE files

  • Lutaml::Uml::Document for XMI files

  • Lutaml::Uml::Document for XML files

  • Lutaml::Uml::Document for LutaML files

  • Lutaml::Uml::Document for LutaML YAML files

Examples to use the Lutaml::Parser.parse:

require "lutaml"

# example.exp is an EXPRESS schema file
model = Lutaml::Parser.parse([File.new("example.exp")])
# => returns Expressir::Express::Model::Repository model

# example.exp.yaml is an EXPRESS cache file created with Expressir
model = Lutaml::Parser.parse([File.new("example.exp.yaml")], ::Lutaml::Parser::EXPRESS_CACHE_PARSE_TYPE)
# => returns Expressir::Express::Cache model

# example.xmi is an XMI file
model = Lutaml::Parser.parse([File.new("example.xmi")])
# => returns Lutaml::Uml::Document model

# example.xml is an XML file
model = Lutaml::Parser.parse([File.new("example.xml")])
# => returns Lutaml::Uml::Document model

# example.lutaml is an LutaML file
model = Lutaml::Parser.parse([File.new("example.lutaml")])
# => returns Lutaml::Uml::Document model

# example.yaml is an LutaML YAML file
model = Lutaml::Parser.parse([File.new("example.yaml")])
# => returns Lutaml::Uml::Document model

CLI

There is a command-line interface available for parsing supported data model files.

  • EXPRESS *.exp

  • LutaML UML *.lutaml

  • LutaML YAML datastruct files

# Will generate `test.dot` file in the current directory
$ lutaml -o . test.lutaml

# Will generate `test.png` file in the `assets` directory
$ lutaml -o assets -t png test.lutaml

For additional info refer to lutaml --help output.

Copyright Ribose. BSD-3 License.