lib/railroad/controllers_diagram.rb in railroad-0.3.4 vs lib/railroad/controllers_diagram.rb in railroad-0.4.0
- old
+ new
@@ -8,19 +8,20 @@
# RailRoad controllers diagram
class ControllersDiagram < AppDiagram
def initialize(options)
+ options.exclude.map! {|e| e = "app/controllers/" + e}
super options
@graph.diagram_type = 'Controllers'
end
# Process controller files
def generate
STDERR.print "Generating controllers diagram\n" if @options.verbose
- files = Dir.glob("app/controllers/**/*_controller.rb")
+ files = Dir.glob("app/controllers/**/*_controller.rb") - @options.exclude
files << 'app/controllers/application.rb'
files.each do |f|
class_name = extract_class_name(f)
# ApplicationController's file is 'application.rb'
class_name += 'Controller' if class_name == 'Application'
@@ -34,11 +35,12 @@
def load_classes
begin
disable_stdout
# ApplicationController must be loaded first
require "app/controllers/application.rb"
- Dir.glob("app/controllers/**/*_controller.rb") {|c| require c }
+ files = Dir.glob("app/controllers/**/*_controller.rb") - @options.exclude
+ files.each {|c| require c }
enable_stdout
rescue LoadError
enable_stdout
print_error "controller classes"
raise
@@ -72,10 +74,11 @@
end
# Generate the inheritance edge (only for ApplicationControllers)
if @options.inheritance &&
(ApplicationController.subclasses.include? current_class.name)
- @graph.add_edge ['is-a', current_class.name, current_class.superclass.name]
+ # REVERSE INHERITANCE (CHECK)
+ @graph.add_edge ['is-a', current_class.superclass.name, current_class.name]
end
end # process_class
end # class ControllersDiagram