callstacking-rails 0.1.6 → 0.1.8

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: ae9342c9f37c47dde2042523854b08bbc9c7f94ce3f4fec32b3ecde123b62603
4
- data.tar.gz: 500efff1f6650199ebea44d1964248758244caf8a0e1c0b40da98194d5797c22
3
+ metadata.gz: ba4839162aee95292d54812c4c9f86be937f9ff13a5765197c34a371c21940a7
4
+ data.tar.gz: 56518b971c4fac333b0c2c5e645bdc92c580ff426fb62f4f72460bc2e3a95cd7
5
5
  SHA512:
6
- metadata.gz: 330b4e4dbe4eb13c09708e661963e130d9f164389b1ab0911b90cd89b5c2d37de9e41dd8bfcae60f5cccfa64eb9f013ed34fc1ffd0248778df4f334cf4eea8ef
7
- data.tar.gz: 2e5219f83a3fdf775daf72d79708a49f7b76707b596508a424837b688a450d4d52c140456af6ec524ffbf6968e0e1db3d7a8b86b2619adc3a2450d0f3ce57ced
6
+ metadata.gz: 276072fc8c408926760d2cae1949ec24ce0ebcd0b4afda094a0132761db1b127dfae00900e9c50de1a0a1af697068effe1b84b922336a2de9f25a15db5753785
7
+ data.tar.gz: 53ab41b4aae0ce86466561a3381746b8853697f7927398e938604e95e4e17297ebbce6958e3e7f4be965a79c9ad488a89c7f18e21482511d2350d399a0394a9a
@@ -3,7 +3,7 @@ require "active_support/inflector"
3
3
  module Callstacking
4
4
  module Rails
5
5
  class Env
6
- DEFAULT_ENVIRONMENT = "development"
6
+ DEFAULT_ENVIRONMENT = 'development'.freeze
7
7
 
8
8
  cattr_accessor :environment
9
9
 
@@ -26,7 +26,7 @@ module Callstacking
26
26
  tmp_module.instance_methods.include?(method_name) ||
27
27
  tmp_module.singleton_methods.include?(method_name)
28
28
 
29
- tmp_module.define_method(method_name) do |*args, &block|
29
+ tmp_module.define_method(method_name) do |*args, **kwargs, &block|
30
30
  method_name = __method__
31
31
 
32
32
  path = method(__method__).super_method.source_location.first
@@ -40,7 +40,7 @@ module Callstacking
40
40
  arguments = Callstacking::Rails::Instrument.arguments_for(method(__method__).super_method, args)
41
41
 
42
42
  spans.call_entry(klass, method_name, arguments, p || path, l || line_no)
43
- return_val = super(*args, &block)
43
+ return_val = super(*args, **kwargs, &block)
44
44
  spans.call_return(klass, method_name, p || path, l || line_no, return_val)
45
45
 
46
46
  return_val
@@ -20,6 +20,9 @@ module Callstacking
20
20
  end
21
21
 
22
22
  def start
23
+ puts "Login to callstacking.com"
24
+ puts
25
+
23
26
  email = prompt("Enter email:")
24
27
  password = prompt("Enter password:")
25
28
 
@@ -27,18 +27,9 @@ module Callstacking
27
27
  trace_id = nil
28
28
 
29
29
  ActiveSupport::Notifications.subscribe("start_processing.action_controller") do |name, start, finish, id, payload|
30
- request_id = payload[:request]&.request_id || SecureRandom.uuid
31
- Callstacking::Rails::Trace.current_request_id = request_id
32
-
33
- trace_id, _interval = client.create(payload[:method], payload[:controller],
34
- payload[:action], payload[:format],
35
- ::Rails.root, payload[:request]&.original_url,
36
- request_id, payload[:headers],
37
- payload[:params])
38
-
39
- puts "#{settings[:url] || Callstacking::Rails::Settings::PRODUCTION_URL}/traces/#{trace_id}"
40
-
41
- create_message(start_request_message(payload), spans.increment_order_num, @traces)
30
+ trace_id = start_request(payload[:request]&.request_id, payload[:method], payload[:controller],
31
+ payload[:action], payload[:format], ::Rails.root,
32
+ payload[:original_url], payload[:headers], payload[:params])
42
33
  end
43
34
 
44
35
  @spans.on_call_entry do |nesting_level, order_num, klass, method_name, arguments, path, line_no|
@@ -50,19 +41,18 @@ module Callstacking
50
41
  end
51
42
 
52
43
  ActiveSupport::Notifications.subscribe("process_action.action_controller") do |name, start, finish, id, payload|
53
- create_message(completed_request_message(payload), spans.increment_order_num, @traces)
54
- send_traces!(trace_id, @traces)
44
+ complete_request(payload[:method], payload[:controller], payload[:action], payload[:format], trace_id)
55
45
  end
56
46
  end
57
47
 
58
48
  private
59
49
 
60
- def completed_request_message(payload)
61
- "Completed request: #{payload[:method]} #{payload[:controller]}##{payload[:action]} as #{payload[:format]}"
50
+ def completed_request_message(method, controller, action, format)
51
+ "Completed request: #{method} #{controller}##{action} as #{format}"
62
52
  end
63
53
 
64
- def start_request_message(payload)
65
- "Started request: #{payload[:method]} #{payload[:controller]}##{payload[:action]} as #{payload[:format]}"
54
+ def start_request_message(method, controller, action, format)
55
+ "Started request: #{method} #{controller}##{action} as #{format}"
66
56
  end
67
57
 
68
58
  def create_call_return(coupled_callee, nesting_level, order_num, klass, method_name, path, line_no, return_val, traces)
@@ -81,7 +71,6 @@ module Callstacking
81
71
  } } }
82
72
  end
83
73
  end
84
-
85
74
  def create_call_entry(nesting_level, order_num, klass, method_name, arguments, path, line_no, traces)
86
75
  lock.synchronize do
87
76
  traces << { trace_entry: { trace_entryable_type: 'TraceCallEntry',
@@ -116,8 +105,28 @@ module Callstacking
116
105
  traces.clear
117
106
  end
118
107
  end
108
+ def start_request(request_id, method, controller, action, format, path, original_url, headers, params)
109
+ request_id = request_id || SecureRandom.uuid
110
+ Callstacking::Rails::Trace.current_request_id = request_id
111
+
112
+ trace_id, _interval = client.create(method, controller, action, format,
113
+ path, original_url, request_id, headers,
114
+ params)
115
+
116
+ puts "#{settings[:url] || Callstacking::Rails::Settings::PRODUCTION_URL}/traces/#{trace_id}"
117
+
118
+ create_message(start_request_message(method, controller, action, format),
119
+ spans.increment_order_num, @traces)
120
+
121
+ trace_id
122
+ end
123
+
124
+ def complete_request(method, controller, action, format, trace_id)
125
+ create_message(completed_request_message(method, controller, action, format),
126
+ spans.increment_order_num, @traces)
127
+ send_traces!(trace_id, @traces)
128
+ end
119
129
 
120
- private
121
130
  def klass_name(klass)
122
131
  (klass.is_a?(Class) ? klass.name : klass.class.name)
123
132
  end
@@ -46,6 +46,7 @@ module Callstacking
46
46
  end
47
47
 
48
48
  def inject_hud
49
+ read_settings
49
50
  return unless enabled?
50
51
 
51
52
  response.body = response.body.sub(/<\/body>/i, "#{hud}</body>")
@@ -1,5 +1,5 @@
1
1
  module Callstacking
2
2
  module Rails
3
- VERSION = "0.1.6"
3
+ VERSION = "0.1.8"
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.6
4
+ version: 0.1.8
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-11 00:00:00.000000000 Z
11
+ date: 2023-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails