callstacking-rails 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 643536b00e33ea23bde289b22362e6aa38456fe24ee7dad49086a2b62c0eba3d
4
- data.tar.gz: d49b09ee59ef7f64d4c5c8dbd68c003d0ef2bab4902870496c7affe7a653fa8f
3
+ metadata.gz: 5d44334293141ed52816f662a764b60a880c6a8942ad0803dc365b5eaa7bcec6
4
+ data.tar.gz: 979b68d010c25055b21ba482165a64b850f6b9eefb1cdb1445192cd6e1afbc70
5
5
  SHA512:
6
- metadata.gz: ab33b68a03c006d14ff14f77f9096f762e19b60fbb2601a7eb4cda71a20deb4c2cd7b34410451bf44960303ce52ebb72489739aba7c7cc1ddec63ec10393b451
7
- data.tar.gz: 7433ed646c676d6bbee5ee78e52752dfb310abf8b452b44f0c41299cfb3083462564689c418fe8e0aa7eb968f25351f9c713cd0d70048938ea40e5c6b331a125
6
+ metadata.gz: 997f19b2eda526ea52667967af3712605a3e7caf6daa1ceb40957e905d68dcad62cdfac50f02094838bd75b5108f1788d166600d997796d4de61cb4dcd0107fb
7
+ data.tar.gz: 45095a4346af6d99208e0e089f492d29d9d21196a13ef63570ad2d7403c6dd1ea3db2412db99aa8d3d0a0009144f0873cb9312ac092e6969afa49dcf4104d1ea
@@ -16,7 +16,7 @@ module Callstacking
16
16
  include Settings
17
17
  isolate_namespace Callstacking::Rails
18
18
 
19
- read_settings
19
+ read_settingsx
20
20
 
21
21
  spans = Spans.new
22
22
  trace = Trace.new(spans)
@@ -28,25 +28,52 @@ module Callstacking
28
28
  tmp_module.instance_methods.include?(method_name) ||
29
29
  tmp_module.singleton_methods.include?(method_name)
30
30
 
31
- tmp_module.define_method(method_name) do |*args, **kwargs, &block|
32
- method_name = __method__
31
+ new_method = nil
32
+ if RUBY_VERSION < "2.7.8"
33
+ new_method = tmp_module.define_method(method_name) do |*args, &block|
34
+ method_name = __method__
33
35
 
34
- path = method(__method__).super_method.source_location.first
35
- line_no = method(__method__).super_method.source_location.last
36
+ path = method(__method__).super_method.source_location.first
37
+ line_no = method(__method__).super_method.source_location.last
36
38
 
37
- p, l = caller.find { |c| c.to_s =~ /#{::Rails.root.to_s}/}&.split(':')
39
+ p, l = caller.find { |c| c.to_s =~ /#{::Rails.root.to_s}/}&.split(':')
38
40
 
39
- spans = tmp_module.instance_variable_get(:@spans)
40
- klass = tmp_module.instance_variable_get(:@klass)
41
+ spans = tmp_module.instance_variable_get(:@spans)
42
+ klass = tmp_module.instance_variable_get(:@klass)
41
43
 
42
- arguments = Callstacking::Rails::Instrument.arguments_for(method(__method__).super_method, args)
44
+ arguments = Callstacking::Rails::Instrument.arguments_for(method(__method__).super_method, args)
43
45
 
44
- spans.call_entry(klass, method_name, arguments, p || path, l || line_no)
45
- return_val = super(*args, **kwargs, &block)
46
- spans.call_return(klass, method_name, p || path, l || line_no, return_val)
46
+ spans.call_entry(klass, method_name, arguments, p || path, l || line_no)
47
+ return_val = super(*args, &block)
48
+ spans.call_return(klass, method_name, p || path, l || line_no, return_val)
49
+
50
+ return_val
51
+ end
52
+ new_method.ruby2_keywords if new_method.respond_to?(:ruby2_keywords)
53
+ else
54
+ new_method = tmp_module.define_method(method_name) do |*args, **kwargs, &block|
55
+ method_name = __method__
56
+
57
+ path = method(__method__).super_method.source_location.first
58
+ line_no = method(__method__).super_method.source_location.last
59
+
60
+ p, l = caller.find { |c| c.to_s =~ /#{::Rails.root.to_s}/}&.split(':')
61
+
62
+ spans = tmp_module.instance_variable_get(:@spans)
63
+ klass = tmp_module.instance_variable_get(:@klass)
64
+
65
+ arguments = Callstacking::Rails::Instrument.arguments_for(method(__method__).super_method, args)
66
+
67
+ spans.call_entry(klass, method_name, arguments, p || path, l || line_no)
68
+ return_val = super(*args, **kwargs, &block)
69
+ spans.call_return(klass, method_name, p || path, l || line_no, return_val)
70
+
71
+ return_val
72
+ end
47
73
 
48
- return_val
49
74
  end
75
+
76
+ new_method
50
77
  end
51
78
 
52
79
  def find_or_initialize_module
@@ -32,6 +32,7 @@ module Callstacking
32
32
 
33
33
  def enabled?
34
34
  return false if settings.nil?
35
+ return false if ENV['CALLSTACKING_ENABLED'] == 'false'
35
36
  settings[:enabled]
36
37
  end
37
38
 
@@ -2,6 +2,7 @@ require 'yaml'
2
2
  require "callstacking/rails/settings"
3
3
  require "callstacking/rails/client/authenticate"
4
4
  require "callstacking/rails/env"
5
+ require 'io/console'
5
6
 
6
7
  module Callstacking
7
8
  module Rails
@@ -24,7 +25,7 @@ module Callstacking
24
25
  puts
25
26
 
26
27
  email = prompt("Enter email:")
27
- password = prompt("Enter password:")
28
+ password = prompt("Enter password:", echo: false)
28
29
 
29
30
  url = if Callstacking::Rails::Env.production? && ENV['CHECKPOINT_RAILS_LOCAL_TEST'].nil?
30
31
  PRODUCTION_URL
@@ -50,9 +51,14 @@ module Callstacking
50
51
  write_settings(complete_settings.merge(props))
51
52
  end
52
53
 
53
- def prompt(label)
54
+ def prompt(label, echo: true)
54
55
  puts label
55
- value = STDIN.gets.chomp
56
+
57
+ value = if echo
58
+ STDIN.gets.chomp
59
+ else
60
+ STDIN.noecho(&:gets).chomp
61
+ end
56
62
  puts
57
63
 
58
64
  return nil if value == ''
@@ -30,7 +30,7 @@ module Callstacking
30
30
  ActiveSupport::Notifications.subscribe("start_processing.action_controller") do |name, start, finish, id, payload|
31
31
  trace_id, max_trace_entries = start_request(payload[:request]&.request_id, payload[:method], payload[:controller],
32
32
  payload[:action], payload[:format], ::Rails.root,
33
- payload[:request]&.original_url,
33
+ payload[:request]&.original_url || payload[:path],
34
34
  payload[:headers], payload[:params])
35
35
  end
36
36
 
@@ -45,8 +45,8 @@ module Callstacking
45
45
  ActiveSupport::Notifications.subscribe("process_action.action_controller") do |name, start, finish, id, payload|
46
46
  complete_request(payload[:method], payload[:controller],
47
47
  payload[:action], payload[:format],
48
- payload[:request]&.original_url,
49
- trace_id, max_trace_entries)
48
+ payload[:request]&.original_url || payload[:path],
49
+ trace_id, @traces, max_trace_entries)
50
50
  end
51
51
  end
52
52
 
@@ -123,7 +123,7 @@ module Callstacking
123
123
  end
124
124
  end
125
125
  def start_request(request_id, method, controller, action, format, path, original_url, headers, params)
126
- return if do_not_track_request?(original_url)
126
+ return if do_not_track_request?(original_url, format)
127
127
 
128
128
  request_id = request_id || SecureRandom.uuid
129
129
  Callstacking::Rails::Trace.current_request_id = request_id
@@ -140,23 +140,25 @@ module Callstacking
140
140
  return trace_id, max_trace_entries
141
141
  end
142
142
 
143
- def complete_request(method, controller, action, format, original_url, trace_id, max_trace_entries)
144
- if do_not_track_request?(original_url)
143
+ def complete_request(method, controller, action, format, original_url, trace_id, traces, max_trace_entries)
144
+ if do_not_track_request?(original_url, format)
145
145
  traces.clear
146
146
  return
147
147
  end
148
148
 
149
149
  create_message(completed_request_message(method, controller, action, format),
150
- spans.increment_order_num, @traces)
150
+ spans.increment_order_num, traces)
151
151
 
152
- send_traces!(trace_id, @traces[0..max_trace_entries])
152
+ send_traces!(trace_id, traces[0..max_trace_entries])
153
153
  end
154
154
 
155
155
  def track_request?(url)
156
156
  !(track_request?(url))
157
157
  end
158
158
 
159
- def do_not_track_request?(url)
159
+ def do_not_track_request?(url, format)
160
+ return false if format =~ /(html|json)/i
161
+
160
162
  url =~ /(\/stylesheets\/|\/javascripts\/|\/css\/|\/js\/|\.js|\.css)/i
161
163
  end
162
164
 
@@ -1,5 +1,5 @@
1
1
  module Callstacking
2
2
  module Rails
3
- VERSION = "0.1.12"
3
+ VERSION = "0.1.14"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: callstacking-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Jones
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-31 00:00:00.000000000 Z
11
+ date: 2023-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.10.0
33
+ version: 1.10.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 1.10.0
40
+ version: 1.10.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: faraday-follow_redirects
43
43
  requirement: !ruby/object:Gem::Requirement