dependencytree 0.1.9 → 0.2.0
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 032404568b7d87d3d295c46e0921f9c032191e15
|
4
|
+
data.tar.gz: 087adb18c59ddf0ea55d9848c06dc60ac2737423
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a013abcb8dcb256c6481cd80561d3eafa1294f7538038502394aeaf07cfb3ce316605162ed741901ce79c56d7e5a5eacdd4c57b15558052f19b05100030a5041
|
7
|
+
data.tar.gz: 7ae649613f10e3fbc78646eb0f742cf7f28fc1dcf31f4c60e6ba95fe47f233ee083d97d982becab39ecd20cd3794c59cae0331980c87b51dec753a1ee5733338
|
@@ -63,7 +63,45 @@ module Dependencytree
|
|
63
63
|
|
64
64
|
@@log.debug("Resolving reference array #{reference_array.to_s} as reference #{reference_part.to_s} and constant #{constant_name}")
|
65
65
|
|
66
|
-
refered_class_model =
|
66
|
+
refered_class_model = nil
|
67
|
+
|
68
|
+
# qualified (Foo::CONST) or unqualified (CONST) reference?
|
69
|
+
|
70
|
+
# try to resolve absolute (Outer::Inner1::Inner2::CONST)
|
71
|
+
if reference_part.length > 0
|
72
|
+
@@log.debug("Trying to resolve absolute")
|
73
|
+
refered_class_model = resolve_reference_direct(referer_class_model, reference_part)
|
74
|
+
end
|
75
|
+
|
76
|
+
# try to resolve relative (Inner1::Inner2::CONST)
|
77
|
+
if !refered_class_model && reference_part.length > 0
|
78
|
+
@@log.debug("Trying to resolve relative")
|
79
|
+
current = referer_class_model
|
80
|
+
while !refered_class_model && current
|
81
|
+
full_name_array = current.full_name_array
|
82
|
+
if full_name_array.last(reference_part.length) == reference_part
|
83
|
+
refered_class_model = current
|
84
|
+
break
|
85
|
+
end
|
86
|
+
current = current.parent
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# try to resolve unqualified (CONST)
|
91
|
+
if !refered_class_model && reference_part.length == 0
|
92
|
+
@@log.debug("Trying to resolve unqualified")
|
93
|
+
current_class = referer_class_model
|
94
|
+
i = 0
|
95
|
+
while (current_class) && (!refered_class_model) do
|
96
|
+
@@log.debug("Current class #{i} is #{current_class.full_name}")
|
97
|
+
|
98
|
+
refered_class_model = current_class if current_class.constant_names.include?(constant_name)
|
99
|
+
|
100
|
+
current_class = current_class.parent
|
101
|
+
i += 1
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
67
105
|
if refered_class_model
|
68
106
|
@@log.debug("Found reference to possible parent #{reference_part.to_s}")
|
69
107
|
if refered_class_model.constant_names.include? constant_name.to_sym
|
@@ -74,6 +112,7 @@ module Dependencytree
|
|
74
112
|
nil
|
75
113
|
end
|
76
114
|
else
|
115
|
+
@@log.warn("No refered class model for #{reference_part.to_s}")
|
77
116
|
nil
|
78
117
|
end
|
79
118
|
end
|