dependencytree 0.1.9 → 0.2.0

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
  SHA1:
3
- metadata.gz: 4efad431a904a49f9448b793b4fdc592a50f22ad
4
- data.tar.gz: 46224be0e106949a71bd0b0910d05b7762e8ca66
3
+ metadata.gz: 032404568b7d87d3d295c46e0921f9c032191e15
4
+ data.tar.gz: 087adb18c59ddf0ea55d9848c06dc60ac2737423
5
5
  SHA512:
6
- metadata.gz: 90ae8e89bcea3dcce411df85277ad8f0ebbb69f286f7865b3db4ee8f140874c6c87952d043b5c0d974ceac6bce539f1c472c25c6e25d1f2941a01c0bf366bd4d
7
- data.tar.gz: dac83e7b2865d5d2a14af560012d595d7f02261fb5f82612bff5dff3aac070f5b73667c8cb70bc267b9fdf475d35763ae630e5d08fffcbb44fe9f6e7cd5ccacf
6
+ metadata.gz: a013abcb8dcb256c6481cd80561d3eafa1294f7538038502394aeaf07cfb3ce316605162ed741901ce79c56d7e5a5eacdd4c57b15558052f19b05100030a5041
7
+ data.tar.gz: 7ae649613f10e3fbc78646eb0f742cf7f28fc1dcf31f4c60e6ba95fe47f233ee083d97d982becab39ecd20cd3794c59cae0331980c87b51dec753a1ee5733338
@@ -12,6 +12,8 @@ module Dependencytree
12
12
  attr_reader :path
13
13
  attr_reader :constant_names
14
14
  attr_reader :method_names
15
+ attr_reader :parent
16
+ attr_reader :full_name_array
15
17
 
16
18
  attr_reader :resolved_references
17
19
  attr_reader :unresolved_references
@@ -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 = resolve_reference_direct(referer_class_model, reference_part)
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
@@ -60,7 +60,7 @@ module Dependencytree
60
60
 
61
61
  if options[:debug]
62
62
  log = Logger.new('dependencytree.log')
63
- log.level = Logger::WARN
63
+ log.level = Logger::DEBUG
64
64
  else
65
65
  log = Logger.new(STDOUT)
66
66
  log.level = Logger::WARN
@@ -1,3 +1,3 @@
1
1
  module Dependencytree
2
- VERSION = "0.1.9"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependencytree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephan Fuhrmann