Class: Yeller::BacktraceFilter
- Inherits:
-
Object
- Object
- Yeller::BacktraceFilter
- Defined in:
- lib/yeller/backtrace_filter.rb
Instance Attribute Summary collapse
-
#filename_filters ⇒ Object
readonly
Returns the value of attribute filename_filters.
-
#method_filters ⇒ Object
readonly
Returns the value of attribute method_filters.
-
#project_root ⇒ Object
readonly
Returns the value of attribute project_root.
Instance Method Summary collapse
- #filter(trace) ⇒ Object
- #filter_filename(filename) ⇒ Object
- #filter_in_app(frame) ⇒ Object
- #filter_method(method) ⇒ Object
-
#initialize(filename_filters, method_filters, project_root) ⇒ BacktraceFilter
constructor
A new instance of BacktraceFilter.
Constructor Details
#initialize(filename_filters, method_filters, project_root) ⇒ BacktraceFilter
Returns a new instance of BacktraceFilter.
4 5 6 7 8 |
# File 'lib/yeller/backtrace_filter.rb', line 4 def initialize(filename_filters, method_filters, project_root) @filename_filters = filename_filters @method_filters = method_filters @project_root = project_root end |
Instance Attribute Details
#filename_filters ⇒ Object (readonly)
Returns the value of attribute filename_filters.
3 4 5 |
# File 'lib/yeller/backtrace_filter.rb', line 3 def filename_filters @filename_filters end |
#method_filters ⇒ Object (readonly)
Returns the value of attribute method_filters.
3 4 5 |
# File 'lib/yeller/backtrace_filter.rb', line 3 def method_filters @method_filters end |
#project_root ⇒ Object (readonly)
Returns the value of attribute project_root.
3 4 5 |
# File 'lib/yeller/backtrace_filter.rb', line 3 def project_root @project_root end |
Instance Method Details
#filter(trace) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/yeller/backtrace_filter.rb', line 10 def filter(trace) trace.map do |frame| in_app = filter_in_app(frame) res = [filter_filename(in_app[0]), in_app[1], filter_method(in_app[2])] if in_app[3] res << in_app[3] end res end end |
#filter_filename(filename) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/yeller/backtrace_filter.rb', line 21 def filter_filename(filename) filename_filters.each do |filter| filename.sub!(filter[0], filter[1]) end filename end |
#filter_in_app(frame) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/yeller/backtrace_filter.rb', line 36 def filter_in_app(frame) filename = frame[0] if filename.start_with?(project_root) frame << {"in-app" => true} end frame end |
#filter_method(method) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/yeller/backtrace_filter.rb', line 28 def filter_method(method) return '' if method.nil? method_filters.each do |filter| method.gsub!(filter[0], filter[1]) end method end |