Sha256: 69b9a649ed594a3628182aaa4fb60b3ce6776ab0ff6ac1b3c69df77c514a06c0
Contents?: true
Size: 1.86 KB
Versions: 2
Compression:
Stored size: 1.86 KB
Contents
# RailRoad - RoR diagrams generator # http://railroad.rubyforge.org # # Copyright 2007 - Javier Smaldone (http://www.smaldone.com.ar) # See COPYING for more details require 'railroad/diagram_graph' # Root class for RailRoad diagrams class AppDiagram def initialize(options) @options = options @graph = DiagramGraph.new @graph.show_label = @options.label STDERR.print "Loading application environment\n" if @options.verbose load_environment STDERR.print "Loading application classes\n" if @options.verbose load_classes end # Print diagram def print if @options.output old_stdout = STDOUT.dup begin STDOUT.reopen(@options.output) rescue STDERR.print "Error: Cannot write diagram to #{@options.output}\n\n" exit 2 end end STDERR.print "Generating DOT graph\n" if @options.verbose STDOUT.print @graph.to_dot if @options.output STDOUT.reopen(old_stdout) end end # print private # Prevents Rails application from writing to STDOUT def disable_stdout @old_stdout = STDOUT.dup STDOUT.reopen(PLATFORM =~ /mswin/ ? "NUL" : "/dev/null") end # Restore STDOUT def enable_stdout STDOUT.reopen(@old_stdout) end # Print error when loading Rails application def print_error(type) STDERR.print "Error loading #{type}.\n (Are you running " + "#{APP_NAME} on the aplication's root directory?)\n\n" end # Load Rails application's environment def load_environment begin disable_stdout require "config/environment" enable_stdout rescue LoadError enable_stdout print_error "application environment" raise end end # Extract class name from filename def extract_class_name(filename) filename.split('/')[2..-1].join('/').split('.').first.camelize end end # class AppDiagram
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
railroad-0.3.4 | lib/railroad/app_diagram.rb |
railroad-0.4.0 | lib/railroad/app_diagram.rb |