rails plugin that generates the skeleton of the rails app from an uml class diagram
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
generators
lib
tasks
.gitignore
META.yml
MIT-LICENSE
README
Rakefile
install.rb

README

ModelDriven Rails Plugin
========================

ModelDriven is a Ruby On Rails Plugin that generates models (and
their migrations, unit tests and fixtures) as well as their
associations' statements (belongs_to, has_many, ...) from UML Class
Diagrams.


Supported Features
==================

Supported is the DIA internal format. XMI support is in progress.

UMLwise it's currently pretty basic. Nothing fancy so far.

  classes
  properties
  associations:
    1 - n
    n - n (does implicitly generate join tables)

Railswise it also resolves 'has_many :through'-associations, if
'n-n'-associations are named. An intermediate join model is generated
automatically if needed.

Multiplicitywise '1', '0..1', 'n', and '*' are recognized.


An Example
==========

Lets suppose you have an UML Class Diagram that looks similar to the
following and is stored in a file named 'diagram.dia'.

  -----------------  1             n  -------------------
  | Customer      |  ---------------  | Order           |
  |---------------|                   |-----------------|
  | +name: string |                   | +number: string |
  |---------------|                   |-----------------|
  -----------------                   -------------------

By calling the rake task 'model_driven:generate' like this:

  $ rake model_driven:generate filename=diagram.dia

the two models Customer and Order (and their migrations, unit tests
and fixtures) will be generated.

  $ cat app/models/order.rb
  class Order < ActiveRecord::Base
    belongs_to :customer
  end
 
  $ cat app/models/customer.rb
  class Customer < ActiveRecord::Base
    has_many :orders
  end
 
  $ cat db/migrate/20090601100956_create_orders.rb
  class CreateCustomers < ActiveRecord::Migration
    def self.up
      create_table :orders do |t|
        t.string :number
        t.integer :customer_id
        t.timestamps
      end
    end
    def self.down
      drop_table :orders
    end
  end

I guess, you got it. Have fun.


FOR THE UNPATIENT WHO READ THE BOTTOM FIRST
===========================================

  $ rake model_driven:generate filename=diagram.dia

--
Copyright (c) 2008,2009 Phil Hofmann, released under the MIT license