Skip to content

Commit ce097a5

Browse files
Merge pull request #33 from PauloVilarinho/refactor-tracer-class
refactor tracer class
2 parents 50bb916 + 7b65871 commit ce097a5

File tree

4 files changed

+20
-11
lines changed

4 files changed

+20
-11
lines changed

lib/rails_tracepoint_stack.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def self.configure
2020
def self.enable_trace
2121
raise ArgumentError, "Block not given to #enable_trace" unless block_given?
2222

23-
tracer = RailsTracepointStack::Tracer.new.tracer
23+
tracer = RailsTracepointStack::Tracer.new
2424
tracer.enable
2525
yield
2626
ensure
@@ -29,7 +29,7 @@ def self.enable_trace
2929
end
3030

3131
if ENV.fetch("RAILS_TRACEPOINT_STACK_ENABLED", "false") == "true"
32-
$rails_tracer_rtps = RailsTracepointStack::Tracer.new.tracer
32+
$rails_tracer_rtps = RailsTracepointStack::Tracer.new
3333
$rails_tracer_rtps.enable
3434

3535
at_exit do

lib/rails_tracepoint_stack/tracer.rb

+11-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,17 @@
77
module RailsTracepointStack
88
class Tracer
99
include RailsTracepointStack::TraceFilter
10-
# TODO: Tracer.new shoud return the tracer. Is weird to call Tracer.new.tracer
11-
def tracer
10+
extend Forwardable
11+
12+
def_delegators :@tracer, :enable, :disable
13+
14+
def initialize
15+
generate_tracer
16+
end
17+
18+
private
19+
20+
def generate_tracer
1221
@tracer ||= TracePoint.new(:call) do |tracepoint|
1322
trace = RailsTracepointStack::Trace.new(trace_point: tracepoint)
1423

spec/rails_tracepoint_stack/tracer_spec.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def dummy_method_with_params(param_1, param_2)
6363
end
6464

6565
it "does not call logger" do
66-
tracer.tracer.enable do
66+
tracer.enable do
6767
Foo.new.dummy_method
6868
end
6969

@@ -91,7 +91,7 @@ def dummy_method_with_params(param_1, param_2)
9191
end
9292

9393
it 'does not call logger' do
94-
tracer.tracer.enable do
94+
tracer.enable do
9595
Foo.new.dummy_method
9696
end
9797

@@ -119,7 +119,7 @@ def dummy_method_with_params(param_1, param_2)
119119
end
120120

121121
it 'calls logger' do
122-
tracer.tracer.enable do
122+
tracer.enable do
123123
Foo.new.dummy_method
124124
end
125125

@@ -147,7 +147,7 @@ def dummy_method_with_params(param_1, param_2)
147147
end
148148

149149
it 'does not call logger' do
150-
tracer.tracer.enable do
150+
tracer.enable do
151151
Foo.new.dummy_method
152152
end
153153

@@ -179,7 +179,7 @@ def dummy_method_with_params(param_1, param_2)
179179
end
180180

181181
it "calls logger" do
182-
tracer.tracer.enable do
182+
tracer.enable do
183183
Foo.new.dummy_method
184184
end
185185

spec/shared/tracer_examples.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
RSpec.shared_examples "tracer success examples asserts" do
22
context "when log format is text" do
33
it 'calls logger with correct log' do
4-
tracer.tracer.enable do
4+
tracer.enable do
55
Foo.new.dummy_method
66
end
77

@@ -19,7 +19,7 @@
1919
end
2020
# TODO: Extract this test to a proper place
2121
it 'calls logger with correct log with json log format' do
22-
tracer.tracer.enable do
22+
tracer.enable do
2323
Foo.new.dummy_method
2424
end
2525

0 commit comments

Comments
 (0)