Module: Bulletproof::Runtime::CallstackFilter
- Defined in:
- lib/bulletproof/runtime/callstack_filter.rb
Overview
コールスタックからアプリケーションコードのフレームを探すユーティリティ
gem 内部・bulletproof 自身のフレームを除外し、 最初にヒットしたアプリケーションコードの位置を返す。
Constant Summary collapse
- EXCLUDE_PATTERNS =
除外するパスのパターン(gem・bulletproof 自身・eval を対象外にする)
[ %r{/gems/}, # bundler でインストールされた gem %r{lib/bulletproof}, # bulletproof 自身 /\A\(eval\)/ # eval されたコード ].freeze
Class Method Summary collapse
-
.app_location(locations) ⇒ String?
"path/to/file.rb:42:in 'method_name'" 形式、見つからなければ nil.
Class Method Details
.app_location(locations) ⇒ String?
Returns "path/to/file.rb:42:in 'method_name'" 形式、見つからなければ nil.
19 20 21 22 23 24 25 |
# File 'lib/bulletproof/runtime/callstack_filter.rb', line 19 def self.app_location(locations) frame = locations.find do |loc| path = loc.absolute_path || loc.path || "" EXCLUDE_PATTERNS.none? { |pattern| path.match?(pattern) } end frame&.to_s end |