|
|
|
@ -13,6 +13,7 @@
|
|
|
|
|
require 'set'
|
|
|
|
|
|
|
|
|
|
OUTPUT_FILE = '/tmp/sequel-graph.dot'
|
|
|
|
|
INCLUDE_ASSOCIATION_TYPE = false
|
|
|
|
|
|
|
|
|
|
# Load all the model classes (autoloader might not have loaded all of
|
|
|
|
|
# them yet)
|
|
|
|
@ -27,7 +28,8 @@ Sequel::Model.subclasses.each do |model|
|
|
|
|
|
associations = model.association_reflections.values
|
|
|
|
|
associations.each do |assoc|
|
|
|
|
|
# Graphviz dot output format
|
|
|
|
|
graph << "#{model.to_s.demodulize} -> #{assoc.associated_class.to_s} [ label=\"#{assoc[:type].to_s}\" ];"
|
|
|
|
|
association_type = INCLUDE_ASSOCIATION_TYPE ? %Q([ label=\"#{assoc[:type].to_s}\" ]) : ''
|
|
|
|
|
graph << "#{model.to_s.demodulize} -> #{assoc.associated_class.to_s} #{association_type};"
|
|
|
|
|
end
|
|
|
|
|
graph << "#{model.to_s.demodulize} -> {}" if associations.empty?
|
|
|
|
|
end
|
|
|
|
|