Skip to content

rails plugin that generates the skeleton of the rails app from an uml class diagram

License

Notifications You must be signed in to change notification settings

joeljensen/modeldrivenrails

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

rails plugin that generates the skeleton of the rails app from an uml class diagram

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%