trace_viz 0.0.2 → 1.0.0

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.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +40 -37
  3. data/Steepfile +34 -0
  4. data/examples/eu_central_bank.rb +69 -0
  5. data/examples/example.cast +189 -285
  6. data/lib/trace_viz/adapters/base_adapter.rb +24 -1
  7. data/lib/trace_viz/adapters/trace_point_adapter.rb +3 -10
  8. data/lib/trace_viz/collectors/base_collector.rb +42 -35
  9. data/lib/trace_viz/collectors/filters/base_class_filter.rb +29 -0
  10. data/lib/trace_viz/collectors/filters/base_exclude_filter.rb +16 -0
  11. data/lib/trace_viz/collectors/filters/base_filter.rb +2 -8
  12. data/lib/trace_viz/collectors/filters/base_include_filter.rb +16 -0
  13. data/lib/trace_viz/collectors/filters/exclude_classes_filter.rb +4 -17
  14. data/lib/trace_viz/collectors/filters/exclude_default_classes_filter.rb +22 -26
  15. data/lib/trace_viz/collectors/filters/include_classes_filter.rb +4 -17
  16. data/lib/trace_viz/collectors/hierarchy_linker.rb +30 -0
  17. data/lib/trace_viz/collectors/matchers/base_matcher.rb +13 -0
  18. data/lib/trace_viz/collectors/matchers/trace_point_action_matcher.rb +12 -10
  19. data/lib/trace_viz/collectors/matchers/within_depth_matcher.rb +6 -5
  20. data/lib/trace_viz/collectors/steps/assign_depth_for_call_step.rb +30 -0
  21. data/lib/trace_viz/collectors/steps/assign_depth_for_return_step.rb +39 -0
  22. data/lib/trace_viz/collectors/steps/base_step.rb +27 -0
  23. data/lib/trace_viz/collectors/steps/build_hierarchy_step.rb +32 -0
  24. data/lib/trace_viz/collectors/{evaluators/hidden_evaluator.rb → steps/hidden_step.rb} +9 -5
  25. data/lib/trace_viz/collectors/steps/linking_step.rb +36 -0
  26. data/lib/trace_viz/collectors/{evaluators/filter_evaluator.rb → steps/validation_step.rb} +9 -6
  27. data/lib/trace_viz/collectors/steps.rb +10 -0
  28. data/lib/trace_viz/collectors/trace_pipeline.rb +26 -0
  29. data/lib/trace_viz/collectors/trace_pipeline_builder.rb +29 -0
  30. data/lib/trace_viz/collectors/trace_point_collector.rb +1 -11
  31. data/lib/trace_viz/config/validator.rb +6 -5
  32. data/lib/trace_viz/configuration.rb +3 -3
  33. data/lib/trace_viz/context/tracking_context.rb +4 -0
  34. data/lib/trace_viz/core/tracer.rb +2 -0
  35. data/lib/trace_viz/defaults/actions.rb +84 -0
  36. data/lib/trace_viz/defaults/colors.rb +61 -0
  37. data/lib/trace_viz/defaults/config.rb +89 -0
  38. data/lib/trace_viz/defaults/themes.rb +66 -0
  39. data/lib/trace_viz/defaults.rb +10 -129
  40. data/lib/trace_viz/exporters/base_exporter.rb +8 -11
  41. data/lib/trace_viz/exporters/export_manager.rb +33 -0
  42. data/lib/trace_viz/exporters/registry.rb +25 -0
  43. data/lib/trace_viz/exporters/text_exporter.rb +22 -0
  44. data/lib/trace_viz/formatters/base_formatter.rb +3 -30
  45. data/lib/trace_viz/formatters/export/base_formatter.rb +12 -0
  46. data/lib/trace_viz/formatters/export/formatter_factory.rb +27 -0
  47. data/lib/trace_viz/formatters/export/method_call_formatter.rb +21 -0
  48. data/lib/trace_viz/formatters/export/method_return_formatter.rb +22 -0
  49. data/lib/trace_viz/formatters/export/summary_group_formatter.rb +35 -0
  50. data/lib/trace_viz/formatters/helpers/depth_helper.rb +2 -8
  51. data/lib/trace_viz/formatters/helpers/indent_helper.rb +1 -1
  52. data/lib/trace_viz/formatters/helpers/log/color_helper.rb +23 -0
  53. data/lib/trace_viz/formatters/helpers/log/depth_helper.rb +22 -0
  54. data/lib/trace_viz/formatters/helpers/log/method_name_helper.rb +29 -0
  55. data/lib/trace_viz/formatters/helpers/log/params_helper.rb +51 -0
  56. data/lib/trace_viz/formatters/helpers/log/result_helper.rb +27 -0
  57. data/lib/trace_viz/formatters/helpers/log/summary/params_helper.rb +53 -0
  58. data/lib/trace_viz/formatters/helpers/method_details_helper.rb +1 -1
  59. data/lib/trace_viz/formatters/helpers/params_helper.rb +26 -9
  60. data/lib/trace_viz/formatters/helpers/result_helper.rb +1 -1
  61. data/lib/trace_viz/formatters/helpers/source_helper.rb +2 -1
  62. data/lib/trace_viz/formatters/helpers/summary/params_helper.rb +41 -0
  63. data/lib/trace_viz/formatters/helpers/summary/source_helper.rb +24 -0
  64. data/lib/trace_viz/formatters/helpers/time_helper.rb +2 -2
  65. data/lib/trace_viz/formatters/helpers.rb +10 -0
  66. data/lib/trace_viz/formatters/log/base_formatter.rb +13 -0
  67. data/lib/trace_viz/formatters/log/formatter_factory.rb +27 -0
  68. data/lib/trace_viz/formatters/log/method_call_formatter.rb +34 -0
  69. data/lib/trace_viz/formatters/log/method_return_formatter.rb +24 -0
  70. data/lib/trace_viz/formatters/log/summary_group_formatter.rb +40 -0
  71. data/lib/trace_viz/formatters/log/verbose_formatter.rb +14 -0
  72. data/lib/trace_viz/formatters/trace_data_formatter.rb +24 -0
  73. data/lib/trace_viz/helpers/config_helper.rb +13 -0
  74. data/lib/trace_viz/helpers/trace_point/param_helper.rb +98 -0
  75. data/lib/trace_viz/helpers/tracking_helper.rb +26 -0
  76. data/lib/trace_viz/helpers.rb +9 -0
  77. data/lib/trace_viz/logger.rb +9 -20
  78. data/lib/trace_viz/loggers/base_logger.rb +29 -0
  79. data/lib/trace_viz/loggers/log_level_resolver.rb +18 -0
  80. data/lib/trace_viz/loggers/logging_manager.rb +46 -0
  81. data/lib/trace_viz/loggers/post_collection_logger.rb +39 -0
  82. data/lib/trace_viz/loggers/trace_logger.rb +17 -18
  83. data/lib/trace_viz/loggers/trace_stats_logger.rb +28 -14
  84. data/lib/trace_viz/renderers/base_renderer.rb +24 -0
  85. data/lib/trace_viz/renderers/render_context.rb +18 -0
  86. data/lib/trace_viz/renderers/renderer_factory.rb +41 -0
  87. data/lib/trace_viz/renderers/summary/node_processor.rb +82 -0
  88. data/lib/trace_viz/renderers/summary_renderer.rb +22 -0
  89. data/lib/trace_viz/renderers/verbose_renderer.rb +29 -0
  90. data/lib/trace_viz/shared/renderer_helper.rb +46 -0
  91. data/lib/trace_viz/shared.rb +8 -0
  92. data/lib/trace_viz/trace_data/base.rb +16 -23
  93. data/lib/trace_viz/trace_data/node.rb +33 -0
  94. data/lib/trace_viz/trace_data/root_node.rb +20 -0
  95. data/lib/trace_viz/trace_data/summary_node.rb +49 -0
  96. data/lib/trace_viz/trace_data/trace_point/base.rb +22 -31
  97. data/lib/trace_viz/trace_data/trace_point/method_call.rb +22 -17
  98. data/lib/trace_viz/trace_data/trace_point/method_return.rb +21 -1
  99. data/lib/trace_viz/traits/depth_trackable.rb +13 -0
  100. data/lib/trace_viz/traits/identifiable.rb +25 -0
  101. data/lib/trace_viz/traits/time_trackable.rb +13 -0
  102. data/lib/trace_viz/traits.rb +10 -0
  103. data/lib/trace_viz/utils/colorize.rb +6 -6
  104. data/lib/trace_viz/utils/format_utils/key_value_formatter.rb +37 -0
  105. data/lib/trace_viz/utils/format_utils/value_truncator.rb +74 -0
  106. data/lib/trace_viz/utils/format_utils.rb +10 -53
  107. data/lib/trace_viz/utils/id_generator.rb +35 -0
  108. data/lib/trace_viz/version.rb +1 -1
  109. data/sig/adapters/base_adapter.rbs +11 -0
  110. data/sig/adapters/trace_point_adapter.rbs +13 -0
  111. data/sig/collectors/filters/registry.rbs +13 -0
  112. data/sig/collectors/trace_point_collector.rbs +17 -0
  113. data/sig/config/copier.rbs +15 -0
  114. data/sig/config/validator.rbs +18 -0
  115. data/sig/configuration.rbs +22 -0
  116. data/sig/context/base_context.rbs +9 -0
  117. data/sig/context/config_context.rbs +13 -0
  118. data/sig/context/manager.rbs +10 -0
  119. data/sig/context/map.rbs +13 -0
  120. data/sig/context.rbs +5 -0
  121. data/sig/core/tracer.rbs +7 -0
  122. data/sig/core.rbs +4 -0
  123. data/sig/defaults.rbs +17 -0
  124. data/sig/errors.rbs +13 -0
  125. data/sig/logger.rbs +33 -0
  126. data/sig/trace_viz.rbs +1 -2
  127. data/sig/utils/colorize.rbs +8 -0
  128. data/sig/utils/format_utils/key_value_formatter.rbs +16 -0
  129. data/sig/utils/format_utils/value_truncator.rbs +19 -0
  130. data/sig/utils/format_utils.rbs +8 -0
  131. data/sig/version.rbs +3 -0
  132. metadata +97 -18
  133. data/lib/trace_viz/collectors/depth_manager.rb +0 -37
  134. data/lib/trace_viz/collectors/evaluators/base_evaluator.rb +0 -23
  135. data/lib/trace_viz/exporters/formatters/base_formatter.rb +0 -12
  136. data/lib/trace_viz/exporters/formatters/method_call_formatter.rb +0 -21
  137. data/lib/trace_viz/exporters/formatters/method_return_formatter.rb +0 -22
  138. data/lib/trace_viz/exporters/transformers/base_transformer.rb +0 -25
  139. data/lib/trace_viz/exporters/transformers/text_transformer.rb +0 -28
  140. data/lib/trace_viz/loggers/trace_builder.rb +0 -30
  141. data/lib/trace_viz/loggers/trace_formatters/base_formatter.rb +0 -32
  142. data/lib/trace_viz/loggers/trace_formatters/method_call_formatter.rb +0 -21
  143. data/lib/trace_viz/loggers/trace_formatters/method_return_formatter.rb +0 -22
@@ -0,0 +1,7 @@
1
+ module TraceViz
2
+ module Core
3
+ class Tracer
4
+ def trace: (options: Hash[Symbol, untyped]) { () -> void } -> void
5
+ end
6
+ end
7
+ end
data/sig/core.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module TraceViz
2
+ module Core
3
+ end
4
+ end
data/sig/defaults.rbs ADDED
@@ -0,0 +1,17 @@
1
+ module TraceViz
2
+ class Defaults
3
+ COLORS: Hash[Symbol, String]
4
+ ACTION_EMOJIS: Hash[Symbol, String]
5
+ ACTION_COLORS: Hash[Symbol, Symbol]
6
+ CONFIG: Hash[Symbol, untyped]
7
+ VALID_PARAM_MODES: Array[Symbol]
8
+ VALID_EXPORT_FORMATS: Array[Symbol]
9
+
10
+ def self.colors: () -> Hash[Symbol, String]
11
+ def self.action_colors: () -> Hash[Symbol, Symbol]
12
+ def self.action_emojis: () -> Hash[Symbol, String]
13
+ def self.fetch_defaults: () -> Hash[Symbol, untyped]
14
+ def self.valid_param_modes: () -> Array[Symbol]
15
+ def self.valid_export_formats: () -> Array[Symbol]
16
+ end
17
+ end
data/sig/errors.rbs ADDED
@@ -0,0 +1,13 @@
1
+ module TraceViz
2
+ class Error < StandardError
3
+ end
4
+
5
+ class ConfigurationError < Error
6
+ end
7
+
8
+ class AdapterError < Error
9
+ end
10
+
11
+ class ContextError < Error
12
+ end
13
+ end
data/sig/logger.rbs ADDED
@@ -0,0 +1,33 @@
1
+ module TraceViz
2
+ class Logger
3
+ # Constants
4
+ LEVELS: Array[Symbol]
5
+
6
+ # Constructor
7
+ def initialize: (output: IO) -> void
8
+
9
+ # Dynamic methods for each log level
10
+ def info: (String?) -> void
11
+ def success: (String?) -> void
12
+ def error: (String?) -> void
13
+ def warn: (String?) -> void
14
+ def start: (String?) -> void
15
+ def processing: (String?) -> void
16
+ def finish: (String?) -> void
17
+ def exported: (String?) -> void
18
+ def skipped: (String?) -> void
19
+ def stats: (String?) -> void
20
+ def default: (String?) -> void
21
+
22
+ # Public methods
23
+ def log: (String?, Symbol) -> void
24
+
25
+ # Private methods
26
+ private def validate_message!: (String?) -> void
27
+ private def validate_level!: (Symbol) -> void
28
+ private def colors_for: (Symbol) -> Array[Symbol]
29
+ private def emoji_for: (Symbol) -> String
30
+ private def build_message: (String?, Symbol, String) -> String
31
+ private def apply_colors: (String, Array[Symbol]) -> String
32
+ end
33
+ end
data/sig/trace_viz.rbs CHANGED
@@ -1,4 +1,3 @@
1
1
  module TraceViz
2
- VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
2
+ def self.trace: (options: Hash[Symbol, untyped]) { () -> untyped } -> untyped
4
3
  end
@@ -0,0 +1,8 @@
1
+ module TraceViz
2
+ module Utils
3
+ module Colorize
4
+ def self.colorize: (String text, *Symbol colors) -> String?
5
+ private def self.build_color_sequence: (Array[Symbol] colors) -> String
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,16 @@
1
+ module TraceViz
2
+ module Utils
3
+ module FormatUtils
4
+ class KeyValueFormatter
5
+ DEFAULT_MODE: Symbol
6
+
7
+ def initialize: (mode: Symbol) -> void
8
+
9
+ def format: (Hash[untyped, untyped]) -> String
10
+
11
+ private def validate_input: (untyped) -> void
12
+ private def build_formatter: () -> Hash[Symbol, ^(untyped, untyped) -> String]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ module TraceViz
2
+ module Utils
3
+ module FormatUtils
4
+ class ValueTruncator
5
+ DEFAULT_LENGTH: Integer
6
+
7
+ def initialize: (length: Integer) -> void
8
+
9
+ def truncate: (String | Array[untyped] | Hash[untyped, untyped] | Object) -> (String | Array[untyped] | Hash[untyped, untyped] | Object)
10
+
11
+ private def valid_length?: () -> bool
12
+ private def truncate_string: (String) -> String
13
+ private def truncate_array: (Array[untyped]) -> Array[untyped]
14
+ private def truncate_hash: (Hash[untyped, untyped]) -> String
15
+ private def truncate_generic: (Object) -> String
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,8 @@
1
+ module TraceViz
2
+ module Utils
3
+ module FormatUtils
4
+ def self.format_key_value_pairs: (Hash[untyped, untyped] data, Symbol mode) -> String
5
+ def self.truncate_value: (untyped value, Integer length) -> untyped
6
+ end
7
+ end
8
+ end
data/sig/version.rbs ADDED
@@ -0,0 +1,3 @@
1
+ module TraceViz
2
+ VERSION: String
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trace_viz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Huy Nguyen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-26 00:00:00.000000000 Z
11
+ date: 2025-01-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: "TraceViz is a Ruby library designed to trace and visualize events executed
14
14
  \nin a block of code. Useful for debugging and logging. \nDiagram generation is
@@ -29,17 +29,18 @@ files:
29
29
  - LICENSE.txt
30
30
  - README.md
31
31
  - Rakefile
32
+ - Steepfile
33
+ - examples/eu_central_bank.rb
32
34
  - examples/example.cast
33
35
  - examples/example.rb
34
36
  - lib/trace_viz.rb
35
37
  - lib/trace_viz/adapters/base_adapter.rb
36
38
  - lib/trace_viz/adapters/trace_point_adapter.rb
37
39
  - lib/trace_viz/collectors/base_collector.rb
38
- - lib/trace_viz/collectors/depth_manager.rb
39
- - lib/trace_viz/collectors/evaluators/base_evaluator.rb
40
- - lib/trace_viz/collectors/evaluators/filter_evaluator.rb
41
- - lib/trace_viz/collectors/evaluators/hidden_evaluator.rb
40
+ - lib/trace_viz/collectors/filters/base_class_filter.rb
41
+ - lib/trace_viz/collectors/filters/base_exclude_filter.rb
42
42
  - lib/trace_viz/collectors/filters/base_filter.rb
43
+ - lib/trace_viz/collectors/filters/base_include_filter.rb
43
44
  - lib/trace_viz/collectors/filters/exclude_classes_filter.rb
44
45
  - lib/trace_viz/collectors/filters/exclude_default_classes_filter.rb
45
46
  - lib/trace_viz/collectors/filters/exclude_gems_filter.rb
@@ -48,8 +49,20 @@ files:
48
49
  - lib/trace_viz/collectors/filters/include_classes_filter.rb
49
50
  - lib/trace_viz/collectors/filters/include_gems_filter.rb
50
51
  - lib/trace_viz/collectors/filters/registry.rb
52
+ - lib/trace_viz/collectors/hierarchy_linker.rb
53
+ - lib/trace_viz/collectors/matchers/base_matcher.rb
51
54
  - lib/trace_viz/collectors/matchers/trace_point_action_matcher.rb
52
55
  - lib/trace_viz/collectors/matchers/within_depth_matcher.rb
56
+ - lib/trace_viz/collectors/steps.rb
57
+ - lib/trace_viz/collectors/steps/assign_depth_for_call_step.rb
58
+ - lib/trace_viz/collectors/steps/assign_depth_for_return_step.rb
59
+ - lib/trace_viz/collectors/steps/base_step.rb
60
+ - lib/trace_viz/collectors/steps/build_hierarchy_step.rb
61
+ - lib/trace_viz/collectors/steps/hidden_step.rb
62
+ - lib/trace_viz/collectors/steps/linking_step.rb
63
+ - lib/trace_viz/collectors/steps/validation_step.rb
64
+ - lib/trace_viz/collectors/trace_pipeline.rb
65
+ - lib/trace_viz/collectors/trace_pipeline_builder.rb
53
66
  - lib/trace_viz/collectors/trace_point_collector.rb
54
67
  - lib/trace_viz/collectors/trace_stats.rb
55
68
  - lib/trace_viz/config/copier.rb
@@ -67,38 +80,104 @@ files:
67
80
  - lib/trace_viz/core.rb
68
81
  - lib/trace_viz/core/tracer.rb
69
82
  - lib/trace_viz/defaults.rb
83
+ - lib/trace_viz/defaults/actions.rb
84
+ - lib/trace_viz/defaults/colors.rb
85
+ - lib/trace_viz/defaults/config.rb
86
+ - lib/trace_viz/defaults/themes.rb
70
87
  - lib/trace_viz/errors.rb
71
88
  - lib/trace_viz/exporters/base_exporter.rb
72
- - lib/trace_viz/exporters/formatters/base_formatter.rb
73
- - lib/trace_viz/exporters/formatters/method_call_formatter.rb
74
- - lib/trace_viz/exporters/formatters/method_return_formatter.rb
89
+ - lib/trace_viz/exporters/export_manager.rb
90
+ - lib/trace_viz/exporters/registry.rb
75
91
  - lib/trace_viz/exporters/text_exporter.rb
76
- - lib/trace_viz/exporters/transformers/base_transformer.rb
77
- - lib/trace_viz/exporters/transformers/text_transformer.rb
78
92
  - lib/trace_viz/formatters/base_formatter.rb
93
+ - lib/trace_viz/formatters/export/base_formatter.rb
94
+ - lib/trace_viz/formatters/export/formatter_factory.rb
95
+ - lib/trace_viz/formatters/export/method_call_formatter.rb
96
+ - lib/trace_viz/formatters/export/method_return_formatter.rb
97
+ - lib/trace_viz/formatters/export/summary_group_formatter.rb
98
+ - lib/trace_viz/formatters/helpers.rb
79
99
  - lib/trace_viz/formatters/helpers/depth_helper.rb
80
100
  - lib/trace_viz/formatters/helpers/indent_helper.rb
101
+ - lib/trace_viz/formatters/helpers/log/color_helper.rb
102
+ - lib/trace_viz/formatters/helpers/log/depth_helper.rb
103
+ - lib/trace_viz/formatters/helpers/log/method_name_helper.rb
104
+ - lib/trace_viz/formatters/helpers/log/params_helper.rb
105
+ - lib/trace_viz/formatters/helpers/log/result_helper.rb
106
+ - lib/trace_viz/formatters/helpers/log/summary/params_helper.rb
81
107
  - lib/trace_viz/formatters/helpers/method_details_helper.rb
82
108
  - lib/trace_viz/formatters/helpers/params_helper.rb
83
109
  - lib/trace_viz/formatters/helpers/result_helper.rb
84
110
  - lib/trace_viz/formatters/helpers/source_helper.rb
111
+ - lib/trace_viz/formatters/helpers/summary/params_helper.rb
112
+ - lib/trace_viz/formatters/helpers/summary/source_helper.rb
85
113
  - lib/trace_viz/formatters/helpers/time_helper.rb
114
+ - lib/trace_viz/formatters/log/base_formatter.rb
115
+ - lib/trace_viz/formatters/log/formatter_factory.rb
116
+ - lib/trace_viz/formatters/log/method_call_formatter.rb
117
+ - lib/trace_viz/formatters/log/method_return_formatter.rb
118
+ - lib/trace_viz/formatters/log/summary_group_formatter.rb
119
+ - lib/trace_viz/formatters/log/verbose_formatter.rb
120
+ - lib/trace_viz/formatters/trace_data_formatter.rb
121
+ - lib/trace_viz/helpers.rb
122
+ - lib/trace_viz/helpers/config_helper.rb
123
+ - lib/trace_viz/helpers/trace_point/param_helper.rb
124
+ - lib/trace_viz/helpers/tracking_helper.rb
86
125
  - lib/trace_viz/logger.rb
87
- - lib/trace_viz/loggers/trace_builder.rb
88
- - lib/trace_viz/loggers/trace_formatters/base_formatter.rb
89
- - lib/trace_viz/loggers/trace_formatters/method_call_formatter.rb
90
- - lib/trace_viz/loggers/trace_formatters/method_return_formatter.rb
126
+ - lib/trace_viz/loggers/base_logger.rb
127
+ - lib/trace_viz/loggers/log_level_resolver.rb
128
+ - lib/trace_viz/loggers/logging_manager.rb
129
+ - lib/trace_viz/loggers/post_collection_logger.rb
91
130
  - lib/trace_viz/loggers/trace_logger.rb
92
131
  - lib/trace_viz/loggers/trace_stats_logger.rb
132
+ - lib/trace_viz/renderers/base_renderer.rb
133
+ - lib/trace_viz/renderers/render_context.rb
134
+ - lib/trace_viz/renderers/renderer_factory.rb
135
+ - lib/trace_viz/renderers/summary/node_processor.rb
136
+ - lib/trace_viz/renderers/summary_renderer.rb
137
+ - lib/trace_viz/renderers/verbose_renderer.rb
138
+ - lib/trace_viz/shared.rb
139
+ - lib/trace_viz/shared/renderer_helper.rb
93
140
  - lib/trace_viz/trace_data/base.rb
141
+ - lib/trace_viz/trace_data/node.rb
142
+ - lib/trace_viz/trace_data/root_node.rb
143
+ - lib/trace_viz/trace_data/summary_node.rb
94
144
  - lib/trace_viz/trace_data/trace_point/base.rb
95
145
  - lib/trace_viz/trace_data/trace_point/method_call.rb
96
146
  - lib/trace_viz/trace_data/trace_point/method_return.rb
97
147
  - lib/trace_viz/trace_data/trace_point_builder.rb
148
+ - lib/trace_viz/traits.rb
149
+ - lib/trace_viz/traits/depth_trackable.rb
150
+ - lib/trace_viz/traits/identifiable.rb
151
+ - lib/trace_viz/traits/time_trackable.rb
98
152
  - lib/trace_viz/utils/colorize.rb
99
153
  - lib/trace_viz/utils/format_utils.rb
154
+ - lib/trace_viz/utils/format_utils/key_value_formatter.rb
155
+ - lib/trace_viz/utils/format_utils/value_truncator.rb
156
+ - lib/trace_viz/utils/id_generator.rb
100
157
  - lib/trace_viz/version.rb
158
+ - sig/adapters/base_adapter.rbs
159
+ - sig/adapters/trace_point_adapter.rbs
160
+ - sig/collectors/filters/registry.rbs
161
+ - sig/collectors/trace_point_collector.rbs
162
+ - sig/config/copier.rbs
163
+ - sig/config/validator.rbs
164
+ - sig/configuration.rbs
165
+ - sig/context.rbs
166
+ - sig/context/base_context.rbs
167
+ - sig/context/config_context.rbs
168
+ - sig/context/manager.rbs
169
+ - sig/context/map.rbs
170
+ - sig/core.rbs
171
+ - sig/core/tracer.rbs
172
+ - sig/defaults.rbs
173
+ - sig/errors.rbs
174
+ - sig/logger.rbs
101
175
  - sig/trace_viz.rbs
176
+ - sig/utils/colorize.rbs
177
+ - sig/utils/format_utils.rbs
178
+ - sig/utils/format_utils/key_value_formatter.rbs
179
+ - sig/utils/format_utils/value_truncator.rbs
180
+ - sig/version.rbs
102
181
  homepage: https://github.com/patrick204nqh/trace_viz
103
182
  licenses:
104
183
  - MIT
@@ -106,7 +185,7 @@ metadata:
106
185
  homepage_uri: https://github.com/patrick204nqh/trace_viz
107
186
  source_code_uri: https://github.com/patrick204nqh/trace_viz
108
187
  changelog_uri: https://github.com/patrick204nqh/trace_viz/blob/main/CHANGELOG.md
109
- post_install_message:
188
+ post_install_message:
110
189
  rdoc_options: []
111
190
  require_paths:
112
191
  - lib
@@ -122,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
201
  version: '0'
123
202
  requirements: []
124
203
  rubygems_version: 3.5.3
125
- signing_key:
204
+ signing_key:
126
205
  specification_version: 4
127
206
  summary: Trace method and attribute usage in Ruby classes and generate diagrams.
128
207
  test_files: []
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TraceViz
4
- module Collectors
5
- class DepthManager
6
- def initialize
7
- @tracker = Context.for(:tracking)
8
- end
9
-
10
- def align(trace_data)
11
- case trace_data.event
12
- when :call
13
- push_to_call_stack(trace_data)
14
- when :return
15
- pop_from_call_stack(trace_data)
16
- end
17
- trace_data
18
- end
19
-
20
- private
21
-
22
- attr_reader :tracker
23
-
24
- # Increment the depth
25
- def push_to_call_stack(trace_data)
26
- trace_data.depth = tracker.current_depth
27
- tracker.active_calls.push(trace_data)
28
- end
29
-
30
- # Decrement the depth
31
- def pop_from_call_stack(trace_data)
32
- tracker.active_calls.pop
33
- trace_data.depth = tracker.current_depth
34
- end
35
- end
36
- end
37
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "trace_viz/context"
4
-
5
- module TraceViz
6
- module Collectors
7
- module Evaluators
8
- class BaseEvaluator
9
- def initialize
10
- @config = Context.for(:config).configuration
11
- end
12
-
13
- def pass?(trace_data)
14
- raise NotImplementedError
15
- end
16
-
17
- private
18
-
19
- attr_reader :config
20
- end
21
- end
22
- end
23
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "trace_viz/formatters/base_formatter"
4
-
5
- module TraceViz
6
- module Exporters
7
- module Formatters
8
- class BaseFormatter < TraceViz::Formatters::BaseFormatter
9
- end
10
- end
11
- end
12
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "base_formatter"
4
-
5
- module TraceViz
6
- module Exporters
7
- module Formatters
8
- class MethodCallFormatter < BaseFormatter
9
- def format
10
- [
11
- indent_representation,
12
- depth_representation,
13
- method_name_representation,
14
- source_location_representation,
15
- params_representation,
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 Exporters
7
- module Formatters
8
- class MethodReturnFormatter < BaseFormatter
9
- def format
10
- [
11
- indent_representation,
12
- depth_representation,
13
- method_name_representation,
14
- result_representation,
15
- source_location_representation,
16
- execution_time_representation,
17
- ].compact.join(" ")
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TraceViz
4
- module Exporters
5
- module Transformers
6
- class BaseTransformer
7
- def initialize(collector)
8
- @collector = collector
9
- end
10
-
11
- def transform
12
- raise NotImplementedError
13
- end
14
-
15
- private
16
-
17
- attr_reader :collector
18
-
19
- def collection
20
- collector.collection
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -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