Module: RailsTracepointStack
- Defined in:
- lib/rails_tracepoint_stack.rb,
lib/rails_tracepoint_stack/trace.rb,
lib/rails_tracepoint_stack/limits.rb,
lib/rails_tracepoint_stack/logger.rb,
lib/rails_tracepoint_stack/tracer.rb,
lib/rails_tracepoint_stack/version.rb,
lib/rails_tracepoint_stack/sink/log.rb,
lib/rails_tracepoint_stack/truncator.rb,
lib/rails_tracepoint_stack/trace_filter.rb,
lib/rails_tracepoint_stack/trace_record.rb,
lib/rails_tracepoint_stack/configuration.rb,
lib/rails_tracepoint_stack/depth_tracker.rb,
lib/rails_tracepoint_stack/log_formatter.rb,
lib/rails_tracepoint_stack/renderer/tree.rb,
lib/rails_tracepoint_stack/trace_session.rb,
lib/rails_tracepoint_stack/sink/collector.rb,
lib/rails_tracepoint_stack/filter/gem_path.rb,
lib/rails_tracepoint_stack/skill_installer.rb,
lib/rails_tracepoint_stack/filter/rb_config.rb,
lib/rails_tracepoint_stack/renderer/summary.rb,
lib/rails_tracepoint_stack/filter/trace_to_ignore_filter.rb,
lib/rails_tracepoint_stack/filter/trace_from_ruby_code_filter.rb,
lib/rails_tracepoint_stack/filter/custom_trace_selector_filter.rb,
lib/generators/rails_tracepoint_stack/install/install_generator.rb,
lib/rails_tracepoint_stack/filter/trace_from_dependencies_filter.rb
Defined Under Namespace
Modules: Filter, Generators, LogFormatter, Renderer, Sink, TraceFilter, Truncator Classes: Configuration, DepthTracker, Limits, Logger, SkillInstaller, Trace, TraceRecord, TraceSession, Tracer
Constant Summary collapse
- CAPTURE_EVENTS =
[:call, :return, :raise].freeze
- VERSION =
"0.4.0"
Class Attribute Summary collapse
- .configuration ⇒ Object
-
.logger ⇒ Object
writeonly
Sets the attribute logger.
Class Method Summary collapse
-
.capture(threads: :current, **limit_options) ⇒ Object
Traces a block and hands back everything that happened inside it, instead of writing to a log.
- .configure {|configuration| ... } ⇒ Object
- .enable_trace ⇒ Object
Class Attribute Details
.configuration ⇒ Object
15 16 17 |
# File 'lib/rails_tracepoint_stack.rb', line 15 def configuration @configuration ||= RailsTracepointStack::Configuration.new end |
.logger=(value) ⇒ Object (writeonly)
Sets the attribute logger
13 14 15 |
# File 'lib/rails_tracepoint_stack.rb', line 13 def logger=(value) @logger = value end |
Class Method Details
.capture(threads: :current, **limit_options) ⇒ Object
Traces a block and hands back everything that happened inside it, instead of writing to a log. Meant to be run as a one-off: capture, read, done.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rails_tracepoint_stack.rb', line 28 def self.capture(threads: :current, **) raise ArgumentError, "Block not given to #capture" unless block_given? collector = RailsTracepointStack::Sink::Collector.new( limits: RailsTracepointStack::Limits.new(**) ) session = collector.session tracer = RailsTracepointStack::Tracer.new( sink: collector, events: CAPTURE_EVENTS, thread: (threads == :all) ? nil : Thread.current ) tracer.enable begin session.result = yield(session) rescue Exception => error session.error = error raise ensure tracer.disable session.filtered_count = tracer.filtered_count end session end |
.configure {|configuration| ... } ⇒ Object
20 21 22 |
# File 'lib/rails_tracepoint_stack.rb', line 20 def self.configure yield(configuration) end |
.enable_trace ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/rails_tracepoint_stack.rb', line 55 def self.enable_trace raise ArgumentError, "Block not given to #enable_trace" unless block_given? tracer = RailsTracepointStack::Tracer.new tracer.enable yield ensure tracer.disable end |