ruby_to_uml 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: befc4a48683c7d789764a96b099056651fccb47fb9c32ce7cc0530634bfc5e73
4
- data.tar.gz: a91d111eac181e1ebdaa72841cb8166230819e6ef53b4ca33273fd67d4ff8fd9
3
+ metadata.gz: 7fd9a79f3cfd30246e5775ba4c311914ba4de1b4398f6dd2610153dd85d9b961
4
+ data.tar.gz: 468eea42c858bfeb483aac63c1c82ed44524974fa0f8c4fec3d6c4a1084a577e
5
5
  SHA512:
6
- metadata.gz: 6aa2837bb4861fe1a01e10b83c0848bb453b5ffedcb74f4e02f7fa3683e5fbca10075dc2edc733cd1c8286290bc1307a9b87ff7579672127680f261472f9aeec
7
- data.tar.gz: 545c66c708ffb85f36f4a32e070204a40c28e9846d26fa8fbed0db40d5781837c89b3c6c9460a68e8d4d3eb4685038c989e9f4da10f0ac7b8c0f5d50b9fdc8ce
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="//unpkg.com/graphre/dist/graphre.js"></script>
11
- <script src="//unpkg.com/nomnoml/dist/nomnoml.js"></script>
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 = get_method_name(node)
27
- args = get_instance_method_args(node)
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 = get_send_method(node)
31
- new_type = get_method_type_change(method_name)
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 get_singleton_methods_closure
21
+ def singleton_methods_closure
38
22
  lambda do |node, singleton_methods_info|
39
23
  if node.type == :defs
40
- method_name = get_singleton_method_name(node)
41
- args = get_singleton_method_args(node)
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 get_instance_variables_closure
31
+ def instance_variables_closure
48
32
  lambda do |node, instance_variables_info|
49
- if node.type == :def && get_method_name(node) == :initialize
50
- method_body_node = BodyNodeWrapper.new(get_method_body_node(node))
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 = get_instance_variable_name(node)
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 = get_constant_name(arguments)
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
- def get_constant_name(const_node)
84
- constant_name_index = 1
85
- const_node.children[constant_name_index]
86
- end
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
- def get_method_name(def_node)
89
- name_index = 0
90
- def_node.children[name_index]
91
- end
75
+ def class_body(node)
76
+ body_node_index = 2
77
+ node.children[body_node_index]
78
+ end
92
79
 
93
- def get_instance_method_args(def_node)
94
- args_index = 1
95
- get_arguments(def_node.children[args_index])
96
- end
80
+ def superclass_name(node)
81
+ constant, inherit, children = *node
82
+ inherit ? NodeFinder.constant_name(inherit) : nil
83
+ end
97
84
 
98
- def get_send_method(send_node)
99
- caller, method, arguments = *send_node
100
- method
101
- end
85
+ def constant_name(const_node)
86
+ constant_name_index = 1
87
+ const_node.children[constant_name_index]
88
+ end
102
89
 
103
- def get_method_type_change(method_name)
104
- %i[public private protected].include?(method_name) ? method_name : nil
105
- end
90
+ def method_name(def_node)
91
+ name_index = 0
92
+ def_node.children[name_index]
93
+ end
106
94
 
107
- def get_singleton_method_name(defs_node)
108
- name_index = 1
109
- defs_node.children[name_index]
110
- end
95
+ def instance_method_args(def_node)
96
+ args_index = 1
97
+ NodeFinder.arguments(def_node.children[args_index])
98
+ end
111
99
 
112
- def get_singleton_method_args(defs_node)
113
- args_index = 2
114
- get_arguments(defs_node.children[args_index])
115
- end
100
+ def send_method(send_node)
101
+ caller, method, arguments = *send_node
102
+ method
103
+ end
116
104
 
117
- def get_arguments(node)
118
- return [] if node.children.nil?
105
+ def method_type_change(method_name)
106
+ %i[public private protected].include?(method_name) ? method_name : nil
107
+ end
119
108
 
120
- node.children.each_with_object([]) { |node, args| args << node.children[0] }
121
- end
109
+ def singleton_method_name(defs_node)
110
+ name_index = 1
111
+ defs_node.children[name_index]
112
+ end
122
113
 
123
- def get_method_body_node(def_node)
124
- body_index = 2
125
- def_node.children[body_index]
126
- end
114
+ def singleton_method_args(defs_node)
115
+ args_index = 2
116
+ NodeFinder.arguments(defs_node.children[args_index])
117
+ end
127
118
 
128
- def get_instance_variable_name(node)
129
- name_index = 0
130
- node.children[name_index]
131
- end
119
+ def arguments(node)
120
+ return [] if node.children.nil?
132
121
 
133
- def get_module_name(node)
134
- constant, = *node
135
- get_constant_name(constant)
136
- end
122
+ node.children.each_with_object([]) { |node, args| args << node.children[0] }
123
+ end
137
124
 
138
- def get_module_body(node)
139
- _, body = *node
140
- body
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 = get_class_name(node)
147
- superclass_name = get_superclass_name(node)
148
- class_body_node = BodyNodeWrapper.new(get_class_body(node))
149
- instance_methods_info = class_body_node.array_operation(&get_instance_methods_closure)
150
- singleton_methods_info = class_body_node.array_operation(&get_singleton_methods_closure)
151
- instance_variables_info = class_body_node.array_operation(&get_instance_variables_closure)
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 = get_module_name(node)
171
- module_body_node = BodyNodeWrapper.new(get_module_body(node))
172
- instance_methods_info = module_body_node.array_operation(&get_instance_methods_closure)
173
- singleton_methods_info = module_body_node.array_operation(&get_singleton_methods_closure)
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.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: 2021-06-23 00:00:00.000000000 Z
11
+ date: 2022-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: erb