README.rdoc in rails-erd-0.1.0 vs README.rdoc in rails-erd-0.1.1

- old
+ new

@@ -1,30 +1,63 @@ = Rails ERD - Generate Entity-Relationship Diagrams for Rails applications -Rails ERD is a Rails plugin that allows you to easily generate diagrams based -on your ActiveRecord models. The diagrams give a great overview of how your +Rails ERD is a Rails plugin that allows you to easily generate a diagram based +on your ActiveRecord models. The diagram gives an overview of how your models are related. Having a diagram that describes your models is perfect documentation for your application. +The second goal of Rails ERD is to provide you with a tool to inspect your +application's domain model. If you don't like the default output, it is very +easy to use the API to build your own diagrams. + Rails ERD was created specifically for Rails 3. It uses ActiveRecord reflection -to figure out how your models are associated. +to figure out how your models are associated. For older Rails applications, +you may want to try Railroad[http://railroad.rubyforge.org/]. +== Links + +Current documentation: +http://rails-erd.rubyforge.org/doc/ + +Source code at Github: +http://github.com/voormedia/rails-erd + +Homepage: +http://rails-erd.rubyforge.org/ + +== Example output + +This is an example diagram from an actual Rails application. + +http://rails-erd.rubyforge.org/examples/event-forms.png + +{Download generated PDF}[http://rails-erd.rubyforge.org/examples/event-forms.pdf] + +Typo is a blogging application built in Rails. This is an excerpt from the +diagram that was generated from the Rails 3 branch (which is currently still +in development). + +http://rails-erd.rubyforge.org/examples/typo-blog.png + +{Download complete diagram as PDF}[http://rails-erd.rubyforge.org/examples/typo-blog.pdf] + + == Getting started In its most simple form, Rails ERD is a plugin for Rails 3 that provides you with a Rake task to create an Entity-Relationship Diagram. It depends on the -Graphviz visualisation library. You have to install Graphviz before using -Rails ERD. In order to create PDF files (the default), you should install -or compile Graphviz with Pango/Cairo. +Graphviz[http://www.graphviz.org/] visualisation library. In order to create +PDF files (the default), you should install or compile Graphviz with support +for Pango and Cairo. -For example, to install Graphviz with MacPorts: +For example, to install Graphviz with Homebrew: - % sudo port install graphviz + % brew install cairo pango graphviz -Or with Homebrew: +Or with MacPorts: - % brew install cairo pango graphviz + % sudo port install graphviz Next, install Rails ERD. Open your +Gemfile+, and add the following: group :development do gem 'rails-erd' @@ -37,20 +70,112 @@ You now have access to Rails ERD through Rake. Generate a new Entity-Relationship Diagram for your Rails application: % rake erd -All done! You will now have a file named +ERD.pdf+ in your application root. +All done! You will now have a file named <tt>ERD.pdf</tt> in your application root. -== Advanced use +== Customisation Rails ERD has several options that you can use to customise its behaviour. All options can be provided on the command line. For example: - % rake erd exclude_timestamps=false + % rake erd orientation=vertical exclude_timestamps=false -For an overview of all available options, see the documentation of RailsERD: +exclude_foreign_keys:: Excludes foreign key columns from attribute lists. + Defaults to +true+. +exclude_primary_keys:: Excludes primary key columns from attribute lists. + Defaults to +true+. +exclude_timestamps:: Excludes timestamp columns (<tt>created_at/on</tt> and + <tt>updated_at/on</tt>) from attribute lists. Defaults + to +true+. +exclude_unconnected:: Excludes entities that are not connected to other + entities from the diagram. Defaults to +true+. +file_type:: The file type of the generated diagram. Defaults to +pdf+, which + is the recommended format. Other formats may render significantly + worse than a PDF file. The available formats depend on your installation + of Graphviz. +orientation:: The direction of the hierarchy of entities. Either +horizontal+ + or +vertical+. Defaults to +horizontal+. The orientation of the + PDF that is generated depends on the amount of hierarchy + in your models. +suppress_warnings:: When set to +true+, no warnings are printed to the + command line while processing the domain model. Defaults + to +false+. + +== Advanced use + +Rails ERD also allows you to use its internal API to inspect your Rails domain +model. It is easy to generate alternative presentations of your Active Record +models this way. If used outside of Rails, install Rails ERD as a gem: + + % gem install rails-erd + +Suppose we have the following models: + + class User < ActiveRecord::Base + has_many :posts + has_many :comments + end + + class Post < ActiveRecord::Base + belongs_to :user + has_many :comments + end + + class Comment < ActiveRecord::Base + belongs_to :user + belongs_to :post + end + +Then you can inspect your domain model like this: + + require "rails_erd/domain" + + domain = RailsERD::Domain.generate + domain.entities + #=> [ #<RailsERD::Entity @model=Comment>, + # #<RailsERD::Entity @model=Post>, + # #<RailsERD::Entity @model=User> ] + + domain.entities.first.connected? + #=> true + + domain.relationships + #=> [ #<RailsERD::Relationship @source=Post @destination=Comment>, + # #<RailsERD::Relationship @source=User @destination=Comment>, + # #<RailsERD::Relationship @source=User @destination=Post> ] + + domain.relationships.first.destination + #=> Comment + + domain.relationships.first.mutual? + #=> true + + domain.relationships.first.cardinality + #=> RailsERD::Relationship::Cardinality::OneToMany + +The above is just a sample of what is possible. See the API documentation for +more details: http://rails-erd.rubyforge.org/doc/ +If you wish to generate your own graphs, take a look at how the default +diagrams are being generated. See the source of RailsERD::Diagram: +http://github.com/voormedia/rails-erd/blob/master/lib/rails_erd/diagram.rb + +Please note that before the 1.0 release, the API may change subtly between +minor versions. + +== About Rails ERD + +Author: Rolf Timmermans (r.timmermans <i>at</i> voormedia.com) + +Copyright 2010 Voormedia B.V. + == License -Rails ERD is released under the MIT license. +Rails ERD is released under the MIT license. See the LICENSE. + +== Credits + +Rails ERD depends on the Ruby-Graphviz library to generate diagrams: +http://github.com/glejeune/Ruby-Graphviz/