ruby_to_uml 3.0.0 → 3.0.1
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fd9a79f3cfd30246e5775ba4c311914ba4de1b4398f6dd2610153dd85d9b961
|
4
|
+
data.tar.gz: 468eea42c858bfeb483aac63c1c82ed44524974fa0f8c4fec3d6c4a1084a577e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a461fb1839346bf0bf8420af01b006b85cb1252b519227f1d8a5f7239cf3e03fa700728923e1c5bac99bc0b4abbb6a6ab4b2a0a2b188df8880844d4d8b877108
|
7
|
+
data.tar.gz: 32f6ee7888dc6650e0c8ff0e6705a838791b3e3e518d1992315fe76760c8fd0e5ae95327d9d80dc12aafa6bb7c4747be822a2e94eb04f65e02a9bb8d27af422d
|
@@ -7,8 +7,8 @@
|
|
7
7
|
<title>Diagram</title>
|
8
8
|
</head>
|
9
9
|
<body>
|
10
|
-
<script src="
|
11
|
-
<script src="
|
10
|
+
<script src="https://unpkg.com/graphre/dist/graphre.js"></script>
|
11
|
+
<script src="https://unpkg.com/nomnoml/dist/nomnoml.js"></script>
|
12
12
|
|
13
13
|
<canvas id="target-canvas"></canvas>
|
14
14
|
<script>
|
@@ -2,55 +2,39 @@ module RubyToUML
|
|
2
2
|
module UMLInfoGenerator
|
3
3
|
module ProcessorHelpers
|
4
4
|
private
|
5
|
-
|
6
|
-
def get_class_name(node)
|
7
|
-
constant, inherit, children = *node
|
8
|
-
get_constant_name(constant)
|
9
|
-
end
|
10
|
-
|
11
|
-
def get_class_body(node)
|
12
|
-
body_node_index = 2
|
13
|
-
node.children[body_node_index]
|
14
|
-
end
|
15
|
-
|
16
|
-
def get_superclass_name(node)
|
17
|
-
constant, inherit, children = *node
|
18
|
-
inherit ? get_constant_name(inherit) : nil
|
19
|
-
end
|
20
|
-
|
21
|
-
def get_instance_methods_closure
|
5
|
+
def instance_methods_closure
|
22
6
|
type = :public
|
23
7
|
lambda do |node, instance_methods_info|
|
24
8
|
case node.type
|
25
9
|
when :def
|
26
|
-
method_name =
|
27
|
-
args =
|
10
|
+
method_name = NodeFinder.method_name(node)
|
11
|
+
args = NodeFinder.instance_method_args(node)
|
28
12
|
instance_methods_info << InstanceMethodInfo.new(method_name, type, args)
|
29
13
|
when :send
|
30
|
-
method_name =
|
31
|
-
new_type =
|
14
|
+
method_name = NodeFinder.send_method(node)
|
15
|
+
new_type = NodeFinder.method_type_change(method_name)
|
32
16
|
type = new_type if new_type
|
33
17
|
end
|
34
18
|
end
|
35
19
|
end
|
36
20
|
|
37
|
-
def
|
21
|
+
def singleton_methods_closure
|
38
22
|
lambda do |node, singleton_methods_info|
|
39
23
|
if node.type == :defs
|
40
|
-
method_name =
|
41
|
-
args =
|
24
|
+
method_name = NodeFinder.singleton_method_name(node)
|
25
|
+
args = NodeFinder.singleton_method_args(node)
|
42
26
|
singleton_methods_info << SingletonMethodInfo.new(method_name, args)
|
43
27
|
end
|
44
28
|
end
|
45
29
|
end
|
46
30
|
|
47
|
-
def
|
31
|
+
def instance_variables_closure
|
48
32
|
lambda do |node, instance_variables_info|
|
49
|
-
if node.type == :def &&
|
50
|
-
method_body_node = BodyNodeWrapper.new(
|
33
|
+
if node.type == :def && NodeFinder.method_name(node) == :initialize
|
34
|
+
method_body_node = BodyNodeWrapper.new(NodeFinder.method_body_node(node))
|
51
35
|
closure = lambda do |node|
|
52
36
|
if node.type == :ivar || node.type == :ivasgn
|
53
|
-
variable_name =
|
37
|
+
variable_name = NodeFinder.instance_variable_name(node)
|
54
38
|
instance_variables_info << variable_name
|
55
39
|
end
|
56
40
|
end
|
@@ -76,79 +60,98 @@ module RubyToUML
|
|
76
60
|
end
|
77
61
|
|
78
62
|
def add_module_relationship(class_name, arguments, type)
|
79
|
-
module_name =
|
63
|
+
module_name = NodeFinder.constant_name(arguments)
|
80
64
|
relationships << RelationshipInfo.new(class_name, module_name, type)
|
81
65
|
end
|
66
|
+
end
|
82
67
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
68
|
+
class NodeFinder
|
69
|
+
class << self
|
70
|
+
def class_name(node)
|
71
|
+
constant, inherit, children = *node
|
72
|
+
NodeFinder.constant_name(constant)
|
73
|
+
end
|
87
74
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
75
|
+
def class_body(node)
|
76
|
+
body_node_index = 2
|
77
|
+
node.children[body_node_index]
|
78
|
+
end
|
92
79
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
80
|
+
def superclass_name(node)
|
81
|
+
constant, inherit, children = *node
|
82
|
+
inherit ? NodeFinder.constant_name(inherit) : nil
|
83
|
+
end
|
97
84
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
85
|
+
def constant_name(const_node)
|
86
|
+
constant_name_index = 1
|
87
|
+
const_node.children[constant_name_index]
|
88
|
+
end
|
102
89
|
|
103
|
-
|
104
|
-
|
105
|
-
|
90
|
+
def method_name(def_node)
|
91
|
+
name_index = 0
|
92
|
+
def_node.children[name_index]
|
93
|
+
end
|
106
94
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
95
|
+
def instance_method_args(def_node)
|
96
|
+
args_index = 1
|
97
|
+
NodeFinder.arguments(def_node.children[args_index])
|
98
|
+
end
|
111
99
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
100
|
+
def send_method(send_node)
|
101
|
+
caller, method, arguments = *send_node
|
102
|
+
method
|
103
|
+
end
|
116
104
|
|
117
|
-
|
118
|
-
|
105
|
+
def method_type_change(method_name)
|
106
|
+
%i[public private protected].include?(method_name) ? method_name : nil
|
107
|
+
end
|
119
108
|
|
120
|
-
|
121
|
-
|
109
|
+
def singleton_method_name(defs_node)
|
110
|
+
name_index = 1
|
111
|
+
defs_node.children[name_index]
|
112
|
+
end
|
122
113
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
114
|
+
def singleton_method_args(defs_node)
|
115
|
+
args_index = 2
|
116
|
+
NodeFinder.arguments(defs_node.children[args_index])
|
117
|
+
end
|
127
118
|
|
128
|
-
|
129
|
-
|
130
|
-
node.children[name_index]
|
131
|
-
end
|
119
|
+
def arguments(node)
|
120
|
+
return [] if node.children.nil?
|
132
121
|
|
133
|
-
|
134
|
-
|
135
|
-
get_constant_name(constant)
|
136
|
-
end
|
122
|
+
node.children.each_with_object([]) { |node, args| args << node.children[0] }
|
123
|
+
end
|
137
124
|
|
138
|
-
|
139
|
-
|
140
|
-
|
125
|
+
def method_body_node(def_node)
|
126
|
+
body_index = 2
|
127
|
+
def_node.children[body_index]
|
128
|
+
end
|
129
|
+
|
130
|
+
def instance_variable_name(node)
|
131
|
+
name_index = 0
|
132
|
+
node.children[name_index]
|
133
|
+
end
|
134
|
+
|
135
|
+
def module_name(node)
|
136
|
+
constant, = *node
|
137
|
+
NodeFinder.constant_name(constant)
|
138
|
+
end
|
139
|
+
|
140
|
+
def module_body(node)
|
141
|
+
_, body = *node
|
142
|
+
body
|
143
|
+
end
|
141
144
|
end
|
142
145
|
end
|
143
146
|
|
144
147
|
module ClassAndRelationshipsProcessor
|
145
148
|
def on_class(node)
|
146
|
-
class_name =
|
147
|
-
superclass_name =
|
148
|
-
class_body_node = BodyNodeWrapper.new(
|
149
|
-
instance_methods_info = class_body_node.array_operation(&
|
150
|
-
singleton_methods_info = class_body_node.array_operation(&
|
151
|
-
instance_variables_info = class_body_node.array_operation(&
|
149
|
+
class_name = NodeFinder.class_name(node)
|
150
|
+
superclass_name = NodeFinder.superclass_name(node)
|
151
|
+
class_body_node = BodyNodeWrapper.new(NodeFinder.class_body(node))
|
152
|
+
instance_methods_info = class_body_node.array_operation(&instance_methods_closure)
|
153
|
+
singleton_methods_info = class_body_node.array_operation(&singleton_methods_closure)
|
154
|
+
instance_variables_info = class_body_node.array_operation(&instance_variables_closure)
|
152
155
|
|
153
156
|
add_inheritence_relationship(class_name, superclass_name) if superclass_name
|
154
157
|
class_body_node.simple_operation(&add_module_relationships_if_exist_closure(class_name))
|
@@ -167,10 +170,10 @@ module RubyToUML
|
|
167
170
|
|
168
171
|
module ModuleProcesor
|
169
172
|
def on_module(node)
|
170
|
-
module_name =
|
171
|
-
module_body_node = BodyNodeWrapper.new(
|
172
|
-
instance_methods_info = module_body_node.array_operation(&
|
173
|
-
singleton_methods_info = module_body_node.array_operation(&
|
173
|
+
module_name = NodeFinder.module_name(node)
|
174
|
+
module_body_node = BodyNodeWrapper.new(NodeFinder.module_body(node))
|
175
|
+
instance_methods_info = module_body_node.array_operation(&instance_methods_closure)
|
176
|
+
singleton_methods_info = module_body_node.array_operation(&singleton_methods_closure)
|
174
177
|
|
175
178
|
add_module(module_name, instance_methods_info, singleton_methods_info)
|
176
179
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_to_uml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Iuliu Pop
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: erb
|