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: 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