rails plugin that generates the skeleton of the rails app from an uml class diagram
Ruby
Switch branches/tags
Nothing to show
Clone or download
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