rails_tracepoint_stack 0.3.1 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8403ca731eb5b9b0c54af770d35dc805260a49e4a8d6092c3ae09ee83487864c
4
- data.tar.gz: b518853ab09f13da65fbdee1c49fa6683dbec7e615de3b62e42834dbcb5b0812
3
+ metadata.gz: a3045ee154f570e6a780af9aff0edfcd18822b3394a0f268ee9a4e07e6d5769f
4
+ data.tar.gz: 9865f094f0a70ffcb474148aaab7ee6712ac63450326bf7e3385dfc55e1c123f
5
5
  SHA512:
6
- metadata.gz: b449b592efe2f0a92dbae19fb5cb218fc3712f8d069a3caedefc286c1e29f533c6cf13fea0833a4a50aeb689cc1ea235e57788bed060221e1caa25b7a3fdde99
7
- data.tar.gz: e039bd1ad9de1c78b29ab371d80f0a3b82755d96700c7c06c209f4ea9fe67adb60f3ac939cbad42c4341176ced07d3253db1deec2bae0a5fd61926f7361626b5
6
+ metadata.gz: 6c5482941d4e5119b88133eca986cdb87c490d0ed6e69ed0df5a09ebe1d2efebff0c4abbf9b554abf44cbab80038b96b3bf53cb8c86b1052b967d7ad307573d8
7
+ data.tar.gz: 699757a6965a6101ee9b80e5039580840a5e34de1271538a286d95c6ea5d2f0e678e666c8f098b2a93df5896868fc821182258f4d07616684bace6857087e7b8
@@ -4,7 +4,7 @@ module RailsTracepointStack
4
4
  :ignore_patterns,
5
5
  :log_format,
6
6
  :log_external_sources,
7
- :logger,
7
+ :logger
8
8
 
9
9
  def initialize
10
10
  @file_path_to_filter_patterns = []
@@ -0,0 +1,19 @@
1
+ module RailsTracepointStack
2
+ module Filter
3
+ module CustomTraceSelectorFilter
4
+ def is_a_trace_required_to_watch_by_the_custom_configs?(trace:)
5
+ return false unless RailsTracepointStack.configuration.file_path_to_filter_patterns.any?
6
+
7
+ !filter_match_a_custom_pattern_to_be_not_ignored?(trace)
8
+ end
9
+
10
+ private
11
+
12
+ def filter_match_a_custom_pattern_to_be_not_ignored?(trace)
13
+ RailsTracepointStack.configuration.file_path_to_filter_patterns.any? do |pattern|
14
+ trace.file_path.match?(pattern)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,42 @@
1
+ require 'rails_tracepoint_stack/filter/gem_path'
2
+ require 'rails_tracepoint_stack/filter/rb_config'
3
+
4
+ module RailsTracepointStack
5
+ module Filter
6
+ module TraceFromDependenciesFilter
7
+ def should_ignore_because_is_a_internal_dependency?(trace:)
8
+ return false if not_ignore_external_source_traces?
9
+
10
+ file_path_starts_with_gem_path?(trace) ||
11
+ file_path_starts_with_ruby_lib_path?(trace) ||
12
+ file_path_include_bundler_gems_path?(trace)
13
+ end
14
+
15
+ private
16
+
17
+ def file_path_starts_with_gem_path?(trace)
18
+ gem_paths.any? { |path| trace.file_path.start_with?(path) }
19
+ end
20
+
21
+ def file_path_starts_with_ruby_lib_path?(trace)
22
+ trace.file_path.start_with?(ruby_lib_path)
23
+ end
24
+
25
+ def file_path_include_bundler_gems_path?(trace)
26
+ trace.file_path.include?("gems/bundler")
27
+ end
28
+
29
+ def gem_paths
30
+ @gem_paths ||= RailsTracepointStack::Filter::GemPath.full_gem_path
31
+ end
32
+
33
+ def ruby_lib_path
34
+ @ruby_lib_path ||= RailsTracepointStack::Filter::RbConfig.ruby_lib_path
35
+ end
36
+
37
+ def not_ignore_external_source_traces?
38
+ RailsTracepointStack.configuration.log_external_sources
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,17 @@
1
+ module RailsTracepointStack
2
+ module Filter
3
+ module TraceFromRubyCodeFilter
4
+ def should_ignore_because_is_ruby_trace?(trace:)
5
+ return false if not_ignore_external_source_traces?
6
+
7
+ trace.file_path.start_with?('<internal:') || trace.file_path == '(eval)'
8
+ end
9
+
10
+ private
11
+
12
+ def not_ignore_external_source_traces?
13
+ RailsTracepointStack.configuration.log_external_sources
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ module RailsTracepointStack
2
+ module Filter
3
+ module TraceToIgnoreFilter
4
+ def attends_some_custom_pattern_to_ignore?(trace:)
5
+ return false unless RailsTracepointStack.configuration.ignore_patterns.any?
6
+
7
+ RailsTracepointStack
8
+ .configuration
9
+ .ignore_patterns
10
+ .any? { |pattern| trace.file_path.match?(pattern) }
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,63 +1,30 @@
1
- require 'rails_tracepoint_stack/filter/gem_path'
2
- require 'rails_tracepoint_stack/filter/rb_config'
1
+ require 'rails_tracepoint_stack/filter/custom_trace_selector_filter'
2
+ require 'rails_tracepoint_stack/filter/trace_from_dependencies_filter'
3
+ require 'rails_tracepoint_stack/filter/trace_from_ruby_code_filter'
4
+ require 'rails_tracepoint_stack/filter/trace_to_ignore_filter'
3
5
 
4
6
  module RailsTracepointStack
5
- class TraceFilter
6
- def self.ignore_trace?(trace:)
7
- if defined_file_path_to_filter_patterns?
8
- not_matches_file_path_to_filter_patterns?(trace)
9
- else
10
- contains_to_ignore_strings?(trace) || from_gempath_or_lib_path?(trace) || is_a_to_ignore_pattern?(trace)
7
+ module TraceFilter
8
+ include RailsTracepointStack::Filter::CustomTraceSelectorFilter
9
+ include RailsTracepointStack::Filter::TraceFromDependenciesFilter
10
+ include RailsTracepointStack::Filter::TraceFromRubyCodeFilter
11
+ include RailsTracepointStack::Filter::TraceToIgnoreFilter
12
+
13
+ def ignore_trace?(trace:)
14
+ if attends_some_custom_pattern_to_ignore?(trace: trace)
15
+ return true
11
16
  end
12
- end
13
-
14
- private
15
-
16
- def self.contains_to_ignore_strings?(trace)
17
- trace.file_path.start_with?('<internal:') || trace.file_path == '(eval)'
18
- end
19
-
20
- def self.from_gempath_or_lib_path?(trace)
21
- !RailsTracepointStack.configuration&.log_external_sources &&
22
- (
23
- file_path_starts_with_gem_path?(trace) ||
24
- file_path_starts_with_ruby_lib_path?(trace) ||
25
- file_path_starts_with_bundler_path?(trace)
26
- )
27
- end
28
-
29
- def self.is_a_to_ignore_pattern?(trace)
30
- RailsTracepointStack.configuration&.ignore_patterns&.any? { |pattern| trace.file_path.match?(pattern) }
31
- end
32
-
33
- def self.file_path_starts_with_gem_path?(trace)
34
- gem_paths.any? { |path| trace.file_path.start_with?(path) }
35
- end
36
-
37
- def self.file_path_starts_with_ruby_lib_path?(trace)
38
- trace.file_path.start_with?(ruby_lib_path)
39
- end
40
-
41
- def self.file_path_starts_with_bundler_path?(trace)
42
- trace.file_path.include?("gems/bundler")
43
- end
44
-
45
- def self.gem_paths
46
- @gem_paths ||= RailsTracepointStack::Filter::GemPath.full_gem_path
47
- end
48
-
49
- def self.ruby_lib_path
50
- @ruby_lib_path ||= RailsTracepointStack::Filter::RbConfig.ruby_lib_path
51
- end
52
-
53
- def self.defined_file_path_to_filter_patterns?
54
- RailsTracepointStack.configuration&.file_path_to_filter_patterns&.any?
55
- end
56
-
57
- def self.not_matches_file_path_to_filter_patterns?(trace)
58
- !RailsTracepointStack.configuration.file_path_to_filter_patterns.any? do |pattern|
59
- trace.file_path.match?(pattern)
17
+ if is_a_trace_required_to_watch_by_the_custom_configs?(trace: trace)
18
+ return false
60
19
  end
20
+ if should_ignore_because_is_a_internal_dependency?(trace: trace)
21
+ return true
22
+ end
23
+ if should_ignore_because_is_ruby_trace?(trace: trace)
24
+ return true
25
+ end
26
+
27
+ return false
61
28
  end
62
29
  end
63
30
  end
@@ -6,12 +6,13 @@ require 'rails_tracepoint_stack/log_formatter'
6
6
 
7
7
  module RailsTracepointStack
8
8
  class Tracer
9
+ include RailsTracepointStack::TraceFilter
9
10
  # TODO: Tracer.new shoud return the tracer. Is weird to call Tracer.new.tracer
10
11
  def tracer
11
12
  @tracer ||= TracePoint.new(:call) do |tracepoint|
12
13
  trace = RailsTracepointStack::Trace.new(trace_point: tracepoint)
13
14
 
14
- next if RailsTracepointStack::TraceFilter.ignore_trace?(trace: trace)
15
+ next if ignore_trace?(trace: trace)
15
16
 
16
17
  # TODO: Use proper OO
17
18
  message = RailsTracepointStack::LogFormatter.message trace
@@ -1,3 +1,3 @@
1
1
  module RailsTracepointStack
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -1,4 +1,3 @@
1
- require 'json'
2
1
  require 'rails_tracepoint_stack/configuration'
3
2
  require 'rails_tracepoint_stack/log_formatter'
4
3
  require 'rails_tracepoint_stack/tracer'
@@ -7,11 +6,14 @@ $rails_tracer_rtps = nil
7
6
 
8
7
  module RailsTracepointStack
9
8
  class << self
10
- attr_accessor :configuration, :logger
9
+ attr_writer :configuration, :logger
10
+
11
+ def configuration
12
+ @configuration ||= RailsTracepointStack::Configuration.new
13
+ end
11
14
  end
12
15
 
13
16
  def self.configure
14
- self.configuration ||= RailsTracepointStack::Configuration.new
15
17
  yield(configuration)
16
18
  end
17
19
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_tracepoint_stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Daniel Pohlod
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-22 00:00:00.000000000 Z
11
+ date: 2024-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -60,8 +60,12 @@ extra_rdoc_files: []
60
60
  files:
61
61
  - lib/rails_tracepoint_stack.rb
62
62
  - lib/rails_tracepoint_stack/configuration.rb
63
+ - lib/rails_tracepoint_stack/filter/custom_trace_selector_filter.rb
63
64
  - lib/rails_tracepoint_stack/filter/gem_path.rb
64
65
  - lib/rails_tracepoint_stack/filter/rb_config.rb
66
+ - lib/rails_tracepoint_stack/filter/trace_from_dependencies_filter.rb
67
+ - lib/rails_tracepoint_stack/filter/trace_from_ruby_code_filter.rb
68
+ - lib/rails_tracepoint_stack/filter/trace_to_ignore_filter.rb
65
69
  - lib/rails_tracepoint_stack/log_formatter.rb
66
70
  - lib/rails_tracepoint_stack/logger.rb
67
71
  - lib/rails_tracepoint_stack/trace.rb