ddollar-railroad 0.7.1.1 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/railroad/controllers_diagram.rb +16 -13
- data/lib/railroad/models_diagram.rb +0 -1
- data/lib/railroad/options_struct.rb +4 -0
- data/lib/railroad.rb +1 -1
- metadata +4 -3
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
# RailRoad controllers diagram
|
8
8
|
class ControllersDiagram < AppDiagram
|
9
|
-
|
9
|
+
|
10
10
|
def initialize(options)
|
11
11
|
#options.exclude.map! {|e| "app/controllers/" + e}
|
12
12
|
super options
|
@@ -18,13 +18,10 @@ class ControllersDiagram < AppDiagram
|
|
18
18
|
STDERR.print "Generating controllers diagram\n" if @options.verbose
|
19
19
|
|
20
20
|
files = Dir.glob("app/controllers/**/*_controller.rb") - @options.exclude
|
21
|
-
files << 'app/controllers/application.rb'
|
22
21
|
files.each do |f|
|
23
22
|
class_name = extract_class_name('app/controllers/', f)
|
24
|
-
# ApplicationController's file is 'application.rb'
|
25
|
-
class_name += 'Controller' if class_name == 'Application'
|
26
23
|
process_class class_name.constantize
|
27
|
-
end
|
24
|
+
end
|
28
25
|
end # generate
|
29
26
|
|
30
27
|
private
|
@@ -34,7 +31,7 @@ class ControllersDiagram < AppDiagram
|
|
34
31
|
begin
|
35
32
|
disable_stdout
|
36
33
|
# ApplicationController must be loaded first
|
37
|
-
require "app/controllers/
|
34
|
+
require "app/controllers/application_controller.rb"
|
38
35
|
files = Dir.glob("app/controllers/**/*_controller.rb") - @options.exclude
|
39
36
|
files.each {|c| require c }
|
40
37
|
enable_stdout
|
@@ -52,19 +49,19 @@ class ControllersDiagram < AppDiagram
|
|
52
49
|
|
53
50
|
if @options.brief
|
54
51
|
@graph.add_node ['controller-brief', current_class.name]
|
55
|
-
elsif current_class.is_a? Class
|
52
|
+
elsif current_class.is_a? Class
|
56
53
|
# Collect controller's methods
|
57
|
-
node_attribs = {:public => [],
|
58
|
-
:protected => [],
|
54
|
+
node_attribs = {:public => [],
|
55
|
+
:protected => [],
|
59
56
|
:private => []}
|
60
57
|
current_class.public_instance_methods(false).sort.each { |m|
|
61
|
-
node_attribs[:public]
|
58
|
+
process_method(node_attribs[:public], m)
|
62
59
|
} unless @options.hide_public
|
63
60
|
current_class.protected_instance_methods(false).sort.each { |m|
|
64
|
-
node_attribs[:protected]
|
61
|
+
process_method(node_attribs[:protected], m)
|
65
62
|
} unless @options.hide_protected
|
66
63
|
current_class.private_instance_methods(false).sort.each { |m|
|
67
|
-
node_attribs[:private]
|
64
|
+
process_method(node_attribs[:private], m)
|
68
65
|
} unless @options.hide_private
|
69
66
|
@graph.add_node ['controller', current_class.name, node_attribs]
|
70
67
|
elsif @options.modules && current_class.is_a?(Module)
|
@@ -72,10 +69,16 @@ class ControllersDiagram < AppDiagram
|
|
72
69
|
end
|
73
70
|
|
74
71
|
# Generate the inheritance edge (only for ApplicationControllers)
|
75
|
-
if @options.inheritance &&
|
72
|
+
if @options.inheritance &&
|
76
73
|
(ApplicationController.subclasses.include? current_class.name)
|
77
74
|
@graph.add_edge ['is-a', current_class.superclass.name, current_class.name]
|
78
75
|
end
|
79
76
|
end # process_class
|
80
77
|
|
78
|
+
# Process a method
|
79
|
+
def process_method(attribs, method)
|
80
|
+
return if @options.hide_underscore && method[0..0] == '_'
|
81
|
+
attribs << method
|
82
|
+
end
|
83
|
+
|
81
84
|
end # class ControllersDiagram
|
@@ -62,7 +62,6 @@ class ModelsDiagram < AppDiagram
|
|
62
62
|
disable_stdout
|
63
63
|
files = Dir.glob("app/models/**/*.rb")
|
64
64
|
files += Dir.glob("vendor/plugins/**/app/models/*.rb") if @options.plugins_models
|
65
|
-
files += ["lib/search.rb"]
|
66
65
|
files -= @options.exclude
|
67
66
|
files.each do |m|
|
68
67
|
require m
|
@@ -25,6 +25,7 @@ class OptionsStruct < OpenStruct
|
|
25
25
|
:hide_public => false,
|
26
26
|
:hide_protected => false,
|
27
27
|
:hide_private => false,
|
28
|
+
:hide_underscore => false,
|
28
29
|
:plugins_models => false,
|
29
30
|
:libraries => false,
|
30
31
|
:root => '',
|
@@ -110,6 +111,9 @@ class OptionsStruct < OpenStruct
|
|
110
111
|
opts.on("--hide-private", "Hide private methods") do |h|
|
111
112
|
self.hide_private = h
|
112
113
|
end
|
114
|
+
opts.on("--hide-underscore", "Hide methods that begin with an underscore") do |h|
|
115
|
+
self.hide_underscore = h
|
116
|
+
end
|
113
117
|
opts.separator ""
|
114
118
|
opts.separator "Other options:"
|
115
119
|
opts.on("-h", "--help", "Show this message") do
|
data/lib/railroad.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddollar-railroad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Javier Smaldone
|
@@ -10,16 +10,17 @@ authors:
|
|
10
10
|
- Factory Design Labs
|
11
11
|
- Mike Mondragon
|
12
12
|
- Tero Tilus
|
13
|
+
- David Dollar
|
13
14
|
autorequire:
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2009-02-
|
18
|
+
date: 2009-02-18 00:00:00 -08:00
|
18
19
|
default_executable: railroad
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: hoe
|
22
|
-
type: :
|
23
|
+
type: :development
|
23
24
|
version_requirement:
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
25
26
|
requirements:
|