kurangu 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/signature.rb +6 -3
- data/lib/trace.rb +3 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b865407c12e193a82d44ff98340ad395b4cf1fd8
|
4
|
+
data.tar.gz: dbef6cd12b4b4187e070b1c0951e29836b467fbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f40a07094d28f21f337183ad5405dcf6172049532cca8949f24cb05d805d173114376d4611688073a39f24af9bfcc0da2b915f1386848f75d49aff1665826995
|
7
|
+
data.tar.gz: c8b15b45e951120b729bad1163706a448b32ab74eb5137e9e650e42328de72c5c20c4bcd0765b999509062e0467d46cec1d3d8dc790027dd91d50854ce9fa8cc
|
data/lib/signature.rb
CHANGED
@@ -18,14 +18,17 @@ class MethodSignature
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def to_s
|
21
|
-
signatures = @signatures.to_a.map { |a|
|
22
|
-
"#{@line} type '(#{a[0]}) -> #{a[1].to_a.join(" or ")}'"
|
21
|
+
signatures = @signatures.to_a.map { |a|
|
22
|
+
"#{@line} type '(#{a[0]}) -> #{a[1].to_a.join(" or ")}'"
|
23
23
|
}
|
24
24
|
signatures.join("\n")
|
25
25
|
end
|
26
26
|
|
27
|
-
def add(parameter_types, return_type)
|
27
|
+
def add(parameter_types, return_type, owner)
|
28
28
|
parameter_signature = generate_parameter_signature(parameter_types)
|
29
|
+
if return_type.to_s == owner.class.name
|
30
|
+
return_type = "self"
|
31
|
+
end
|
29
32
|
@signatures[parameter_signature].add(return_type)
|
30
33
|
end
|
31
34
|
|
data/lib/trace.rb
CHANGED
@@ -23,9 +23,10 @@ trace_return = TracePoint.new(:return) do |t|
|
|
23
23
|
if args
|
24
24
|
line = t.self.method(t.method_id).source_location[1]
|
25
25
|
if !signatures.key?(s)
|
26
|
-
|
26
|
+
parameters = t.self.method(t.method_id).parameters
|
27
|
+
signatures[s] = MethodSignature.new(line, parameters)
|
27
28
|
end
|
28
|
-
signatures[s].add(args, t.return_value.class)
|
29
|
+
signatures[s].add(args, t.return_value.class, t.self)
|
29
30
|
path = "#{t.path}.annotations"
|
30
31
|
dir = File.dirname(t.path)
|
31
32
|
write_annotations_paths(dir, paths.add(path))
|