class AppDiagram

Root class for RailRoad diagrams

Public Class Methods

new(options) click to toggle source
# File lib/railroad/app_diagram.rb, line 12
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

Public Instance Methods

print() click to toggle source

Print diagram

Private Instance Methods

disable_stdout() click to toggle source

Prevents Rails application from writing to STDOUT

# File lib/railroad/app_diagram.rb, line 52
def disable_stdout
  @old_stdout = STDOUT.dup
  STDOUT.reopen(PLATFORM =~ /mswin/ ? "NUL" : "/dev/null")
end
enable_stdout() click to toggle source

Restore STDOUT

# File lib/railroad/app_diagram.rb, line 58
def enable_stdout
  STDOUT.reopen(@old_stdout)
end
extract_class_name(filename) click to toggle source

Extract class name from filename

# File lib/railroad/app_diagram.rb, line 83
def extract_class_name(filename)
  #filename.split('/')[2..-1].join('/').split('.').first.camelize
  # Fixed by patch from ticket #12742
  File.basename(filename).chomp(".rb").camelize
end
load_environment() click to toggle source

Load Rails application's environment

# File lib/railroad/app_diagram.rb, line 70
def load_environment
  begin
    disable_stdout
    require "config/environment"
    enable_stdout
  rescue LoadError
    enable_stdout
    print_error "application environment"
    raise
  end
end
print_error(type) click to toggle source

Print error when loading Rails application