trace_viz 0.0.2 → 1.0.1
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 +4 -4
- data/README.md +68 -43
- data/Steepfile +34 -0
- data/examples/eu_central_bank.rb +69 -0
- data/examples/example.cast +189 -285
- data/lib/trace_viz/adapters/base_adapter.rb +24 -1
- data/lib/trace_viz/adapters/trace_point_adapter.rb +3 -10
- data/lib/trace_viz/builders/base_builder.rb +11 -0
- data/lib/trace_viz/builders/diagram/base_builder.rb +10 -0
- data/lib/trace_viz/builders/diagram/message_builder.rb +96 -0
- data/lib/trace_viz/builders/diagram/sequence_builder.rb +50 -0
- data/lib/trace_viz/collectors/base_collector.rb +42 -35
- data/lib/trace_viz/collectors/filters/base_class_filter.rb +31 -0
- data/lib/trace_viz/collectors/filters/base_exclude_filter.rb +16 -0
- data/lib/trace_viz/collectors/filters/base_filter.rb +2 -8
- data/lib/trace_viz/collectors/filters/base_include_filter.rb +16 -0
- data/lib/trace_viz/collectors/filters/exclude_classes_filter.rb +4 -17
- data/lib/trace_viz/collectors/filters/exclude_default_classes_filter.rb +22 -26
- data/lib/trace_viz/collectors/filters/include_classes_filter.rb +4 -17
- data/lib/trace_viz/collectors/hierarchy_linker.rb +30 -0
- data/lib/trace_viz/collectors/matchers/base_matcher.rb +13 -0
- data/lib/trace_viz/collectors/matchers/trace_point_action_matcher.rb +12 -10
- data/lib/trace_viz/collectors/matchers/within_depth_matcher.rb +6 -5
- data/lib/trace_viz/collectors/steps/assign_depth_for_call_step.rb +30 -0
- data/lib/trace_viz/collectors/steps/assign_depth_for_return_step.rb +39 -0
- data/lib/trace_viz/collectors/steps/base_step.rb +27 -0
- data/lib/trace_viz/collectors/steps/build_hierarchy_step.rb +32 -0
- data/lib/trace_viz/collectors/{evaluators/hidden_evaluator.rb → steps/hidden_step.rb} +9 -5
- data/lib/trace_viz/collectors/steps/linking_step.rb +36 -0
- data/lib/trace_viz/collectors/{evaluators/filter_evaluator.rb → steps/validation_step.rb} +9 -6
- data/lib/trace_viz/collectors/steps.rb +10 -0
- data/lib/trace_viz/collectors/trace_pipeline.rb +26 -0
- data/lib/trace_viz/collectors/trace_pipeline_builder.rb +29 -0
- data/lib/trace_viz/collectors/trace_point_collector.rb +1 -11
- data/lib/trace_viz/config/validator.rb +6 -5
- data/lib/trace_viz/configuration.rb +3 -3
- data/lib/trace_viz/context/tracking_context.rb +4 -0
- data/lib/trace_viz/core/tracer.rb +2 -0
- data/lib/trace_viz/defaults/actions.rb +84 -0
- data/lib/trace_viz/defaults/colors.rb +61 -0
- data/lib/trace_viz/defaults/config.rb +91 -0
- data/lib/trace_viz/defaults/themes.rb +66 -0
- data/lib/trace_viz/defaults.rb +10 -129
- data/lib/trace_viz/exporters/base_exporter.rb +31 -13
- data/lib/trace_viz/exporters/export_manager.rb +33 -0
- data/lib/trace_viz/exporters/mermaid_exporter.rb +17 -0
- data/lib/trace_viz/exporters/registry.rb +27 -0
- data/lib/trace_viz/exporters/text_exporter.rb +2 -2
- data/lib/trace_viz/extractors/base_extractor.rb +17 -0
- data/lib/trace_viz/extractors/diagram/base_extractor.rb +18 -0
- data/lib/trace_viz/extractors/diagram/box_extractor.rb +50 -0
- data/lib/trace_viz/extractors/diagram/message_extractor.rb +23 -0
- data/lib/trace_viz/extractors/diagram/participant_extractor.rb +37 -0
- data/lib/trace_viz/extractors/diagram/processors/message_processor.rb +93 -0
- data/lib/trace_viz/formatters/base_formatter.rb +4 -30
- data/lib/trace_viz/formatters/base_formatter_factory.rb +23 -0
- data/lib/trace_viz/formatters/diagram/sequence/base_formatter.rb +14 -0
- data/lib/trace_viz/formatters/diagram/sequence/message_formatter.rb +37 -0
- data/lib/trace_viz/formatters/diagram_formatter.rb +10 -0
- data/lib/trace_viz/formatters/export/base_formatter.rb +12 -0
- data/lib/trace_viz/formatters/export/formatter_factory.rb +22 -0
- data/lib/trace_viz/formatters/export/method_call_formatter.rb +21 -0
- data/lib/trace_viz/formatters/export/method_return_formatter.rb +22 -0
- data/lib/trace_viz/formatters/export/summary_group_formatter.rb +35 -0
- data/lib/trace_viz/formatters/helpers/depth_helper.rb +2 -8
- data/lib/trace_viz/formatters/helpers/digram/action_helper.rb +17 -0
- data/lib/trace_viz/formatters/helpers/digram/result_helper.rb +39 -0
- data/lib/trace_viz/formatters/helpers/indent_helper.rb +1 -1
- data/lib/trace_viz/formatters/helpers/log/color_helper.rb +23 -0
- data/lib/trace_viz/formatters/helpers/log/depth_helper.rb +22 -0
- data/lib/trace_viz/formatters/helpers/log/method_name_helper.rb +29 -0
- data/lib/trace_viz/formatters/helpers/log/params_helper.rb +55 -0
- data/lib/trace_viz/formatters/helpers/log/result_helper.rb +27 -0
- data/lib/trace_viz/formatters/helpers/log/summary/params_helper.rb +57 -0
- data/lib/trace_viz/formatters/helpers/method_details_helper.rb +1 -1
- data/lib/trace_viz/formatters/helpers/params_helper.rb +30 -9
- data/lib/trace_viz/formatters/helpers/result_helper.rb +5 -4
- data/lib/trace_viz/formatters/helpers/source_helper.rb +6 -4
- data/lib/trace_viz/formatters/helpers/summary/params_helper.rb +45 -0
- data/lib/trace_viz/formatters/helpers/summary/source_helper.rb +24 -0
- data/lib/trace_viz/formatters/helpers/time_helper.rb +2 -2
- data/lib/trace_viz/formatters/helpers.rb +10 -0
- data/lib/trace_viz/formatters/log/base_formatter.rb +13 -0
- data/lib/trace_viz/formatters/log/formatter_factory.rb +22 -0
- data/lib/trace_viz/formatters/log/method_call_formatter.rb +34 -0
- data/lib/trace_viz/formatters/log/method_return_formatter.rb +24 -0
- data/lib/trace_viz/formatters/log/summary_group_formatter.rb +40 -0
- data/lib/trace_viz/formatters/log/verbose_formatter.rb +14 -0
- data/lib/trace_viz/formatters/trace_data_formatter.rb +24 -0
- data/lib/trace_viz/helpers/config_helper.rb +17 -0
- data/lib/trace_viz/helpers/trace_point/param_helper.rb +98 -0
- data/lib/trace_viz/helpers/tracking_helper.rb +26 -0
- data/lib/trace_viz/helpers.rb +9 -0
- data/lib/trace_viz/logger.rb +9 -20
- data/lib/trace_viz/loggers/base_logger.rb +29 -0
- data/lib/trace_viz/loggers/log_level_resolver.rb +18 -0
- data/lib/trace_viz/loggers/logging_manager.rb +46 -0
- data/lib/trace_viz/loggers/post_collection_logger.rb +44 -0
- data/lib/trace_viz/loggers/trace_logger.rb +14 -18
- data/lib/trace_viz/loggers/trace_stats_logger.rb +28 -14
- data/lib/trace_viz/managers/diagram/participant_manager.rb +23 -0
- data/lib/trace_viz/models/box.rb +19 -0
- data/lib/trace_viz/models/diagram.rb +27 -0
- data/lib/trace_viz/models/message.rb +16 -0
- data/lib/trace_viz/models/participant.rb +18 -0
- data/lib/trace_viz/models.rb +8 -0
- data/lib/trace_viz/renderers/base_renderer.rb +27 -0
- data/lib/trace_viz/renderers/diagram/sequence_renderer.rb +59 -0
- data/lib/trace_viz/renderers/render_context.rb +17 -0
- data/lib/trace_viz/renderers/renderer_builder.rb +20 -0
- data/lib/trace_viz/renderers/renderer_factory.rb +29 -0
- data/lib/trace_viz/renderers/summary_renderer.rb +34 -0
- data/lib/trace_viz/renderers/verbose_renderer.rb +29 -0
- data/lib/trace_viz/shared/renderer_helper.rb +25 -0
- data/lib/trace_viz/shared.rb +8 -0
- data/lib/trace_viz/syntax/mermaid/sequence_syntax.rb +99 -0
- data/lib/trace_viz/trace_data/base.rb +22 -22
- data/lib/trace_viz/trace_data/node.rb +39 -0
- data/lib/trace_viz/trace_data/root_node.rb +24 -0
- data/lib/trace_viz/trace_data/summary_node.rb +45 -0
- data/lib/trace_viz/trace_data/trace_point/base.rb +26 -31
- data/lib/trace_viz/trace_data/trace_point/method_call.rb +25 -16
- data/lib/trace_viz/trace_data/trace_point/method_return.rb +21 -1
- data/lib/trace_viz/traits/depth_trackable.rb +13 -0
- data/lib/trace_viz/traits/identifiable.rb +25 -0
- data/lib/trace_viz/traits/time_trackable.rb +13 -0
- data/lib/trace_viz/traits.rb +10 -0
- data/lib/trace_viz/transformers/base_transformer.rb +29 -0
- data/lib/trace_viz/transformers/summary_transformer.rb +70 -0
- data/lib/trace_viz/utils/alias_generator.rb +58 -0
- data/lib/trace_viz/utils/colorize.rb +6 -6
- data/lib/trace_viz/utils/format/key_value_formatter.rb +42 -0
- data/lib/trace_viz/utils/format/value_truncator.rb +123 -0
- data/lib/trace_viz/utils/id_generator.rb +35 -0
- data/lib/trace_viz/utils.rb +8 -0
- data/lib/trace_viz/version.rb +1 -1
- data/sig/adapters/base_adapter.rbs +11 -0
- data/sig/adapters/trace_point_adapter.rbs +13 -0
- data/sig/collectors/filters/registry.rbs +13 -0
- data/sig/collectors/trace_point_collector.rbs +17 -0
- data/sig/config/copier.rbs +15 -0
- data/sig/config/validator.rbs +18 -0
- data/sig/configuration.rbs +22 -0
- data/sig/context/base_context.rbs +9 -0
- data/sig/context/config_context.rbs +13 -0
- data/sig/context/manager.rbs +10 -0
- data/sig/context/map.rbs +13 -0
- data/sig/context.rbs +5 -0
- data/sig/core/tracer.rbs +7 -0
- data/sig/core.rbs +4 -0
- data/sig/defaults.rbs +17 -0
- data/sig/errors.rbs +13 -0
- data/sig/logger.rbs +33 -0
- data/sig/trace_viz.rbs +1 -2
- data/sig/utils/colorize.rbs +8 -0
- data/sig/utils/format_utils/key_value_formatter.rbs +16 -0
- data/sig/utils/format_utils/value_truncator.rbs +19 -0
- data/sig/utils/format_utils.rbs +8 -0
- data/sig/version.rbs +3 -0
- metadata +124 -18
- data/lib/trace_viz/collectors/depth_manager.rb +0 -37
- data/lib/trace_viz/collectors/evaluators/base_evaluator.rb +0 -23
- data/lib/trace_viz/exporters/formatters/base_formatter.rb +0 -12
- data/lib/trace_viz/exporters/formatters/method_call_formatter.rb +0 -21
- data/lib/trace_viz/exporters/formatters/method_return_formatter.rb +0 -22
- data/lib/trace_viz/exporters/transformers/base_transformer.rb +0 -25
- data/lib/trace_viz/exporters/transformers/text_transformer.rb +0 -28
- data/lib/trace_viz/loggers/trace_builder.rb +0 -30
- data/lib/trace_viz/loggers/trace_formatters/base_formatter.rb +0 -32
- data/lib/trace_viz/loggers/trace_formatters/method_call_formatter.rb +0 -21
- data/lib/trace_viz/loggers/trace_formatters/method_return_formatter.rb +0 -22
- data/lib/trace_viz/utils/format_utils.rb +0 -67
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "base_transformer"
|
4
|
-
require "trace_viz/exporters/formatters/method_call_formatter"
|
5
|
-
require "trace_viz/exporters/formatters/method_return_formatter"
|
6
|
-
|
7
|
-
module TraceViz
|
8
|
-
module Exporters
|
9
|
-
module Transformers
|
10
|
-
class TextTransformer < BaseTransformer
|
11
|
-
def transform
|
12
|
-
collection.map do |trace_data|
|
13
|
-
format_item(trace_data)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def format_item(trace_data)
|
18
|
-
case trace_data.event
|
19
|
-
when :call
|
20
|
-
Formatters::MethodCallFormatter.new(trace_data).format
|
21
|
-
when :return
|
22
|
-
Formatters::MethodReturnFormatter.new(trace_data).format
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "trace_viz/loggers/trace_formatters/method_call_formatter"
|
4
|
-
require "trace_viz/loggers/trace_formatters/method_return_formatter"
|
5
|
-
|
6
|
-
module TraceViz
|
7
|
-
module Loggers
|
8
|
-
class TraceBuilder
|
9
|
-
FORMATTERS = {
|
10
|
-
call: TraceFormatters::MethodCallFormatter,
|
11
|
-
return: TraceFormatters::MethodReturnFormatter,
|
12
|
-
}.freeze
|
13
|
-
|
14
|
-
def initialize(trace_data)
|
15
|
-
@trace_data = trace_data
|
16
|
-
end
|
17
|
-
|
18
|
-
def build
|
19
|
-
formatter_class = FORMATTERS[trace_data.event]
|
20
|
-
raise ArgumentError, "No formatter found for #{trace_data.event}" unless formatter_class
|
21
|
-
|
22
|
-
formatter_class.new(trace_data).format
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
attr_reader :trace_data
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "trace_viz/formatters/base_formatter"
|
4
|
-
require "trace_viz/utils/colorize"
|
5
|
-
|
6
|
-
module TraceViz
|
7
|
-
module Loggers
|
8
|
-
module TraceFormatters
|
9
|
-
class BaseFormatter < TraceViz::Formatters::BaseFormatter
|
10
|
-
private
|
11
|
-
|
12
|
-
def colorize(text, *styles)
|
13
|
-
Utils::Colorize.colorize(text, *styles)
|
14
|
-
end
|
15
|
-
|
16
|
-
def formatted_method_name
|
17
|
-
return unless config.general[:show_method_name]
|
18
|
-
|
19
|
-
"#{formatted_class_name}#{formatted_action_name}"
|
20
|
-
end
|
21
|
-
|
22
|
-
def formatted_class_name
|
23
|
-
colorize("#{trace_data.klass}#", :bold, :yellow)
|
24
|
-
end
|
25
|
-
|
26
|
-
def formatted_action_name
|
27
|
-
colorize(trace_data.action, :light_cyan)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "base_formatter"
|
4
|
-
|
5
|
-
module TraceViz
|
6
|
-
module Loggers
|
7
|
-
module TraceFormatters
|
8
|
-
class MethodCallFormatter < BaseFormatter
|
9
|
-
def format
|
10
|
-
[
|
11
|
-
indent_representation,
|
12
|
-
colorize(depth_representation, :blue),
|
13
|
-
formatted_method_name,
|
14
|
-
colorize(source_location_representation, :dark_gray),
|
15
|
-
colorize(params_representation, :light_yellow),
|
16
|
-
].compact.join(" ")
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "base_formatter"
|
4
|
-
|
5
|
-
module TraceViz
|
6
|
-
module Loggers
|
7
|
-
module TraceFormatters
|
8
|
-
class MethodReturnFormatter < BaseFormatter
|
9
|
-
def format
|
10
|
-
[
|
11
|
-
indent_representation,
|
12
|
-
colorize(depth_representation, :blue),
|
13
|
-
formatted_method_name,
|
14
|
-
colorize(result_representation, :cyan),
|
15
|
-
colorize(source_location_representation, :dark_gray),
|
16
|
-
colorize(execution_time_representation, :red),
|
17
|
-
].compact.join(" ")
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module TraceViz
|
4
|
-
module Utils
|
5
|
-
module FormatUtils
|
6
|
-
class << self
|
7
|
-
# Formats a hash or array of key-value pairs based on the specified mode
|
8
|
-
def format_key_value_pairs(data, mode)
|
9
|
-
data.map { |key, value| display_mode(mode).call(key, value) }.join(", ")
|
10
|
-
end
|
11
|
-
|
12
|
-
# Determines how key-value pairs are displayed based on the mode
|
13
|
-
def display_mode(mode)
|
14
|
-
{
|
15
|
-
name_and_value: ->(name, value) { "#{name}: #{value}" },
|
16
|
-
name_only: ->(name, _) { name.to_s },
|
17
|
-
value_only: ->(_, value) { value },
|
18
|
-
}.fetch(mode)
|
19
|
-
end
|
20
|
-
|
21
|
-
# Truncates a string or array to the specified length
|
22
|
-
def truncate_value(value, length)
|
23
|
-
return value unless length.is_a?(Integer) && length.positive?
|
24
|
-
|
25
|
-
case value
|
26
|
-
when String
|
27
|
-
truncate_string(value, length)
|
28
|
-
when Array
|
29
|
-
truncate_array(value, length)
|
30
|
-
when Hash
|
31
|
-
truncate_hash(value, length)
|
32
|
-
else
|
33
|
-
truncate_object(value, length)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
private
|
38
|
-
|
39
|
-
def truncate_string(string, length)
|
40
|
-
string.length > length ? "#{string[0, length]}..." : string
|
41
|
-
end
|
42
|
-
|
43
|
-
def truncate_array(array, length)
|
44
|
-
truncated_array = array.take(length)
|
45
|
-
truncated_array << "..." if array.size > length
|
46
|
-
truncated_array
|
47
|
-
end
|
48
|
-
|
49
|
-
def truncate_hash(hash, length)
|
50
|
-
keys = hash.keys.take(length)
|
51
|
-
truncated_pairs = keys.map { |key| "#{key}: #{truncate_value(hash[key], length)}" }
|
52
|
-
truncated_pairs << "..." if hash.size > length
|
53
|
-
"{#{truncated_pairs.join(", ")}}"
|
54
|
-
end
|
55
|
-
|
56
|
-
def truncate_object(object, length)
|
57
|
-
object_string = object.inspect
|
58
|
-
if object.is_a?(Hash) || object.is_a?(Array)
|
59
|
-
truncate_value(object, length)
|
60
|
-
else
|
61
|
-
object_string.length > length ? "#{object.class}(#{object_string[0, length]}...)" : object_string
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|