whatbug 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/whatbug +24 -17
- 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: 6291b4ad75ed3a0cd9a6b3e97e76b15dfb863823
|
4
|
+
data.tar.gz: e6d217e66bf3f62b2224090c4360b219a3693741
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc7cd9d0add3f6189d8a1c7eaac271b1aac2c8ddc803051a143e25f05a54a0d497c5013b85b016d721c799baa8188105fc9fb021ccd783f0b8af4e5817445c37
|
7
|
+
data.tar.gz: cf4521d3c8a9a65d7d0aef6b4343d2fa63d988471a59c47bedf6fbd42b63d28d45f95c982bab77d0ffcccf5c0afb193d522201a90de68085bfd3102c8113f965
|
data/bin/whatbug
CHANGED
@@ -76,8 +76,29 @@ def map_code(file, func, line, cutoff)
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
+
def render(traced_functions)
|
80
|
+
traced_functions
|
81
|
+
.reduce([]) do |acc, (file_name, funcs)|
|
82
|
+
funcs.each do |func_name, func|
|
83
|
+
trace_line = func.detect { |l| l[:in_trace] }
|
84
|
+
|
85
|
+
acc << "#{file_name}:#{trace_line[:line_num]} - #{func_name}"
|
86
|
+
func.each do |line|
|
87
|
+
line_num = line[:line_num].to_s.rjust(3, " ")
|
88
|
+
change_sym = line[:changed] ? "+" : " "
|
89
|
+
trace_sym = line[:in_trace] ? "X" : " "
|
90
|
+
|
91
|
+
acc << "#{change_sym}#{trace_sym}#{line_num}) #{line[:text]}"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
acc
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
79
98
|
def main(error_id, cutoff)
|
80
99
|
cutoff = cutoff.nil? ? (Date.today - 7).to_datetime : DateTime.parse(cutoff)
|
100
|
+
project_root = ENV["PROJECT_ROOT"] || Dir.pwd
|
101
|
+
|
81
102
|
tracer = Tracer.new()
|
82
103
|
|
83
104
|
error = get_error(error_id)
|
@@ -85,7 +106,7 @@ def main(error_id, cutoff)
|
|
85
106
|
.map { |trace| trace[:file] }
|
86
107
|
.uniq
|
87
108
|
.reduce({}) do |acc, file|
|
88
|
-
parts = File.split(
|
109
|
+
parts = File.split(project_root) + file.split("/")
|
89
110
|
path = File.join(*parts)
|
90
111
|
code = File.read(path)
|
91
112
|
acc[file] = {
|
@@ -96,7 +117,7 @@ def main(error_id, cutoff)
|
|
96
117
|
acc
|
97
118
|
end
|
98
119
|
|
99
|
-
Dir.chdir(
|
120
|
+
Dir.chdir(project_root)
|
100
121
|
traced_functions = error[:stack_trace]
|
101
122
|
.reduce({}) do |acc, trace|
|
102
123
|
file = files[trace[:file]]
|
@@ -112,21 +133,7 @@ def main(error_id, cutoff)
|
|
112
133
|
acc
|
113
134
|
end
|
114
135
|
|
115
|
-
traced_functions
|
116
|
-
.each do |file_name, funcs|
|
117
|
-
funcs.each do |func_name, func|
|
118
|
-
trace_line = func.detect { |l| l[:in_trace] }
|
119
|
-
|
120
|
-
puts "#{file_name}:#{trace_line[:line_num]} - #{func_name}"
|
121
|
-
func.each do |line|
|
122
|
-
line_num = line[:line_num].to_s.rjust(3, " ")
|
123
|
-
change_sym = line[:changed] ? "+" : " "
|
124
|
-
trace_sym = line[:in_trace] ? "X" : " "
|
125
|
-
|
126
|
-
puts "#{change_sym}#{trace_sym}#{line_num}) #{line[:text]}"
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
136
|
+
STDOUT.puts render(traced_functions)
|
130
137
|
end
|
131
138
|
|
132
139
|
main(ARGV[0], ARGV[1])
|