Ruby/yUML is a small DSL to generate UML diagrams with yuml.me
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
spec
.gitignore
AUTHORS
COPYING
Gemfile
README.rdoc
Rakefile
ruby-yuml.gemspec

README.rdoc

Ruby/yUML

Copyright (C) 2009 Gregoire Lejeune

DESCRIPTION:

Ruby/yUML is a UML diagrams generator via yuml.me

FEATURES/PROBLEMS:

0.1.0

  • Initial release

SYNOPSIS:

Use Case Diagram

Syntax Overview

  • Use Case : _(:UseCase) or useCase(:UseCase)

  • Actor : _[:Actor] or actor(:Actor)

  • <<Extend>> : _(:UseCase) < _(:OtherUseCase)

  • <<Include>> : _(:UseCase) > _(:OtherUseCase)

  • Link : _[:Actor] - _(:UseCase)

  • Actor Inheritance : _[:Actor] ^ _[:OtherActor]

  • Notes : _(:UseCase) - note('This is a note')

Example

require 'yuml'

YUML::useCaseDiagram( :scruffy, :scale => 75 ) {
  _[:Admin] ^ _[:User]
  _[:Admin] - note( 'Most privilidged user' )
  _[:User] - _(:Login)
  _[:User] - _(:Logout) 
  _(:Login) < _(:Reminder) 
  _(:Login) > _(:Captcha)
}.to_png( "sample.png" )

This example generate this PNG :

Activity Diagram

Syntax Overview

  • Start : _(:start) or _start or activity(:start)

  • End : _(:end) or _end or activity(:end)

  • Activity : _(:Activity) or activity(:Activity)

  • Flow : _(:A) > _(:B)

  • Decision : _{:Decision} or decision(:Decision)

  • Parallel : _[:Parallel] or parallel(:Parallel)

  • Decision with label : _{:Decision} -"label"> _(:Activity)

Example

require 'yuml'

YUML::activityDiagram( :scruffy, :scale => 100 ) {
  _(:start) > _{:d1}
  _{:d1} -"logged in"> _("Show Dashboard") 
  _("Show Dashboard") > _[:a]
  _[:a] > _(:end)
  _{:d1} -"not logged in"> _("Show Login") 
  _("Show Login") > _[:a]
}.to_png( "activity-diagram.png" )

This example generate this PNG :

Class Diagram

Syntax Overview

WIP

Example

require 'yuml'

x = YUML::classDiagram( :scruffy, :scale => 75 ) {
  _["Customer"|"Forename;Surname;Email"|"+new();-Save()"] - _[:User]
  _["Customer"] - note( 'I love this Klass' )
}.to_png( "class-diagram.png" )

This example generate this PNG :

REQUIREMENTS:

  • An internet acces ;)

LICENSE:

Ruby/yUML is freely distributable according to the terms of the GNU General Public License.

This program is distributed without any warranty. See the file 'COPYING' for details.