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.
Files changed (172) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +68 -43
  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/builders/base_builder.rb +11 -0
  9. data/lib/trace_viz/builders/diagram/base_builder.rb +10 -0
  10. data/lib/trace_viz/builders/diagram/message_builder.rb +96 -0
  11. data/lib/trace_viz/builders/diagram/sequence_builder.rb +50 -0
  12. data/lib/trace_viz/collectors/base_collector.rb +42 -35
  13. data/lib/trace_viz/collectors/filters/base_class_filter.rb +31 -0
  14. data/lib/trace_viz/collectors/filters/base_exclude_filter.rb +16 -0
  15. data/lib/trace_viz/collectors/filters/base_filter.rb +2 -8
  16. data/lib/trace_viz/collectors/filters/base_include_filter.rb +16 -0
  17. data/lib/trace_viz/collectors/filters/exclude_classes_filter.rb +4 -17
  18. data/lib/trace_viz/collectors/filters/exclude_default_classes_filter.rb +22 -26
  19. data/lib/trace_viz/collectors/filters/include_classes_filter.rb +4 -17
  20. data/lib/trace_viz/collectors/hierarchy_linker.rb +30 -0
  21. data/lib/trace_viz/collectors/matchers/base_matcher.rb +13 -0
  22. data/lib/trace_viz/collectors/matchers/trace_point_action_matcher.rb +12 -10
  23. data/lib/trace_viz/collectors/matchers/within_depth_matcher.rb +6 -5
  24. data/lib/trace_viz/collectors/steps/assign_depth_for_call_step.rb +30 -0
  25. data/lib/trace_viz/collectors/steps/assign_depth_for_return_step.rb +39 -0
  26. data/lib/trace_viz/collectors/steps/base_step.rb +27 -0
  27. data/lib/trace_viz/collectors/steps/build_hierarchy_step.rb +32 -0
  28. data/lib/trace_viz/collectors/{evaluators/hidden_evaluator.rb → steps/hidden_step.rb} +9 -5
  29. data/lib/trace_viz/collectors/steps/linking_step.rb +36 -0
  30. data/lib/trace_viz/collectors/{evaluators/filter_evaluator.rb → steps/validation_step.rb} +9 -6
  31. data/lib/trace_viz/collectors/steps.rb +10 -0
  32. data/lib/trace_viz/collectors/trace_pipeline.rb +26 -0
  33. data/lib/trace_viz/collectors/trace_pipeline_builder.rb +29 -0
  34. data/lib/trace_viz/collectors/trace_point_collector.rb +1 -11
  35. data/lib/trace_viz/config/validator.rb +6 -5
  36. data/lib/trace_viz/configuration.rb +3 -3
  37. data/lib/trace_viz/context/tracking_context.rb +4 -0
  38. data/lib/trace_viz/core/tracer.rb +2 -0
  39. data/lib/trace_viz/defaults/actions.rb +84 -0
  40. data/lib/trace_viz/defaults/colors.rb +61 -0
  41. data/lib/trace_viz/defaults/config.rb +91 -0
  42. data/lib/trace_viz/defaults/themes.rb +66 -0
  43. data/lib/trace_viz/defaults.rb +10 -129
  44. data/lib/trace_viz/exporters/base_exporter.rb +31 -13
  45. data/lib/trace_viz/exporters/export_manager.rb +33 -0
  46. data/lib/trace_viz/exporters/mermaid_exporter.rb +17 -0
  47. data/lib/trace_viz/exporters/registry.rb +27 -0
  48. data/lib/trace_viz/exporters/text_exporter.rb +2 -2
  49. data/lib/trace_viz/extractors/base_extractor.rb +17 -0
  50. data/lib/trace_viz/extractors/diagram/base_extractor.rb +18 -0
  51. data/lib/trace_viz/extractors/diagram/box_extractor.rb +50 -0
  52. data/lib/trace_viz/extractors/diagram/message_extractor.rb +23 -0
  53. data/lib/trace_viz/extractors/diagram/participant_extractor.rb +37 -0
  54. data/lib/trace_viz/extractors/diagram/processors/message_processor.rb +93 -0
  55. data/lib/trace_viz/formatters/base_formatter.rb +4 -30
  56. data/lib/trace_viz/formatters/base_formatter_factory.rb +23 -0
  57. data/lib/trace_viz/formatters/diagram/sequence/base_formatter.rb +14 -0
  58. data/lib/trace_viz/formatters/diagram/sequence/message_formatter.rb +37 -0
  59. data/lib/trace_viz/formatters/diagram_formatter.rb +10 -0
  60. data/lib/trace_viz/formatters/export/base_formatter.rb +12 -0
  61. data/lib/trace_viz/formatters/export/formatter_factory.rb +22 -0
  62. data/lib/trace_viz/formatters/export/method_call_formatter.rb +21 -0
  63. data/lib/trace_viz/formatters/export/method_return_formatter.rb +22 -0
  64. data/lib/trace_viz/formatters/export/summary_group_formatter.rb +35 -0
  65. data/lib/trace_viz/formatters/helpers/depth_helper.rb +2 -8
  66. data/lib/trace_viz/formatters/helpers/digram/action_helper.rb +17 -0
  67. data/lib/trace_viz/formatters/helpers/digram/result_helper.rb +39 -0
  68. data/lib/trace_viz/formatters/helpers/indent_helper.rb +1 -1
  69. data/lib/trace_viz/formatters/helpers/log/color_helper.rb +23 -0
  70. data/lib/trace_viz/formatters/helpers/log/depth_helper.rb +22 -0
  71. data/lib/trace_viz/formatters/helpers/log/method_name_helper.rb +29 -0
  72. data/lib/trace_viz/formatters/helpers/log/params_helper.rb +55 -0
  73. data/lib/trace_viz/formatters/helpers/log/result_helper.rb +27 -0
  74. data/lib/trace_viz/formatters/helpers/log/summary/params_helper.rb +57 -0
  75. data/lib/trace_viz/formatters/helpers/method_details_helper.rb +1 -1
  76. data/lib/trace_viz/formatters/helpers/params_helper.rb +30 -9
  77. data/lib/trace_viz/formatters/helpers/result_helper.rb +5 -4
  78. data/lib/trace_viz/formatters/helpers/source_helper.rb +6 -4
  79. data/lib/trace_viz/formatters/helpers/summary/params_helper.rb +45 -0
  80. data/lib/trace_viz/formatters/helpers/summary/source_helper.rb +24 -0
  81. data/lib/trace_viz/formatters/helpers/time_helper.rb +2 -2
  82. data/lib/trace_viz/formatters/helpers.rb +10 -0
  83. data/lib/trace_viz/formatters/log/base_formatter.rb +13 -0
  84. data/lib/trace_viz/formatters/log/formatter_factory.rb +22 -0
  85. data/lib/trace_viz/formatters/log/method_call_formatter.rb +34 -0
  86. data/lib/trace_viz/formatters/log/method_return_formatter.rb +24 -0
  87. data/lib/trace_viz/formatters/log/summary_group_formatter.rb +40 -0
  88. data/lib/trace_viz/formatters/log/verbose_formatter.rb +14 -0
  89. data/lib/trace_viz/formatters/trace_data_formatter.rb +24 -0
  90. data/lib/trace_viz/helpers/config_helper.rb +17 -0
  91. data/lib/trace_viz/helpers/trace_point/param_helper.rb +98 -0
  92. data/lib/trace_viz/helpers/tracking_helper.rb +26 -0
  93. data/lib/trace_viz/helpers.rb +9 -0
  94. data/lib/trace_viz/logger.rb +9 -20
  95. data/lib/trace_viz/loggers/base_logger.rb +29 -0
  96. data/lib/trace_viz/loggers/log_level_resolver.rb +18 -0
  97. data/lib/trace_viz/loggers/logging_manager.rb +46 -0
  98. data/lib/trace_viz/loggers/post_collection_logger.rb +44 -0
  99. data/lib/trace_viz/loggers/trace_logger.rb +14 -18
  100. data/lib/trace_viz/loggers/trace_stats_logger.rb +28 -14
  101. data/lib/trace_viz/managers/diagram/participant_manager.rb +23 -0
  102. data/lib/trace_viz/models/box.rb +19 -0
  103. data/lib/trace_viz/models/diagram.rb +27 -0
  104. data/lib/trace_viz/models/message.rb +16 -0
  105. data/lib/trace_viz/models/participant.rb +18 -0
  106. data/lib/trace_viz/models.rb +8 -0
  107. data/lib/trace_viz/renderers/base_renderer.rb +27 -0
  108. data/lib/trace_viz/renderers/diagram/sequence_renderer.rb +59 -0
  109. data/lib/trace_viz/renderers/render_context.rb +17 -0
  110. data/lib/trace_viz/renderers/renderer_builder.rb +20 -0
  111. data/lib/trace_viz/renderers/renderer_factory.rb +29 -0
  112. data/lib/trace_viz/renderers/summary_renderer.rb +34 -0
  113. data/lib/trace_viz/renderers/verbose_renderer.rb +29 -0
  114. data/lib/trace_viz/shared/renderer_helper.rb +25 -0
  115. data/lib/trace_viz/shared.rb +8 -0
  116. data/lib/trace_viz/syntax/mermaid/sequence_syntax.rb +99 -0
  117. data/lib/trace_viz/trace_data/base.rb +22 -22
  118. data/lib/trace_viz/trace_data/node.rb +39 -0
  119. data/lib/trace_viz/trace_data/root_node.rb +24 -0
  120. data/lib/trace_viz/trace_data/summary_node.rb +45 -0
  121. data/lib/trace_viz/trace_data/trace_point/base.rb +26 -31
  122. data/lib/trace_viz/trace_data/trace_point/method_call.rb +25 -16
  123. data/lib/trace_viz/trace_data/trace_point/method_return.rb +21 -1
  124. data/lib/trace_viz/traits/depth_trackable.rb +13 -0
  125. data/lib/trace_viz/traits/identifiable.rb +25 -0
  126. data/lib/trace_viz/traits/time_trackable.rb +13 -0
  127. data/lib/trace_viz/traits.rb +10 -0
  128. data/lib/trace_viz/transformers/base_transformer.rb +29 -0
  129. data/lib/trace_viz/transformers/summary_transformer.rb +70 -0
  130. data/lib/trace_viz/utils/alias_generator.rb +58 -0
  131. data/lib/trace_viz/utils/colorize.rb +6 -6
  132. data/lib/trace_viz/utils/format/key_value_formatter.rb +42 -0
  133. data/lib/trace_viz/utils/format/value_truncator.rb +123 -0
  134. data/lib/trace_viz/utils/id_generator.rb +35 -0
  135. data/lib/trace_viz/utils.rb +8 -0
  136. data/lib/trace_viz/version.rb +1 -1
  137. data/sig/adapters/base_adapter.rbs +11 -0
  138. data/sig/adapters/trace_point_adapter.rbs +13 -0
  139. data/sig/collectors/filters/registry.rbs +13 -0
  140. data/sig/collectors/trace_point_collector.rbs +17 -0
  141. data/sig/config/copier.rbs +15 -0
  142. data/sig/config/validator.rbs +18 -0
  143. data/sig/configuration.rbs +22 -0
  144. data/sig/context/base_context.rbs +9 -0
  145. data/sig/context/config_context.rbs +13 -0
  146. data/sig/context/manager.rbs +10 -0
  147. data/sig/context/map.rbs +13 -0
  148. data/sig/context.rbs +5 -0
  149. data/sig/core/tracer.rbs +7 -0
  150. data/sig/core.rbs +4 -0
  151. data/sig/defaults.rbs +17 -0
  152. data/sig/errors.rbs +13 -0
  153. data/sig/logger.rbs +33 -0
  154. data/sig/trace_viz.rbs +1 -2
  155. data/sig/utils/colorize.rbs +8 -0
  156. data/sig/utils/format_utils/key_value_formatter.rbs +16 -0
  157. data/sig/utils/format_utils/value_truncator.rbs +19 -0
  158. data/sig/utils/format_utils.rbs +8 -0
  159. data/sig/version.rbs +3 -0
  160. metadata +124 -18
  161. data/lib/trace_viz/collectors/depth_manager.rb +0 -37
  162. data/lib/trace_viz/collectors/evaluators/base_evaluator.rb +0 -23
  163. data/lib/trace_viz/exporters/formatters/base_formatter.rb +0 -12
  164. data/lib/trace_viz/exporters/formatters/method_call_formatter.rb +0 -21
  165. data/lib/trace_viz/exporters/formatters/method_return_formatter.rb +0 -22
  166. data/lib/trace_viz/exporters/transformers/base_transformer.rb +0 -25
  167. data/lib/trace_viz/exporters/transformers/text_transformer.rb +0 -28
  168. data/lib/trace_viz/loggers/trace_builder.rb +0 -30
  169. data/lib/trace_viz/loggers/trace_formatters/base_formatter.rb +0 -32
  170. data/lib/trace_viz/loggers/trace_formatters/method_call_formatter.rb +0 -21
  171. data/lib/trace_viz/loggers/trace_formatters/method_return_formatter.rb +0 -22
  172. data/lib/trace_viz/utils/format_utils.rb +0 -67
@@ -0,0 +1,13 @@
1
+ module TraceViz
2
+ module Collectors
3
+ module Filters
4
+ class Registry
5
+ FILTERS: Hash[Symbol, untyped]
6
+
7
+ def self.build: (Array[Symbol | Hash[Symbol, untyped]] filters) -> Array[untyped]
8
+
9
+ private def self.fetch_filter_class: (Symbol filter_key) -> untyped
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ module TraceViz
2
+ module Collectors
3
+ class TracePointCollector
4
+ def initialize: () -> void
5
+
6
+ private attr_reader action_matcher: TraceViz::Matchers::TracePointActionMatcher
7
+ private attr_reader within_depth_matcher: TraceViz::Matchers::WithinDepthMatcher
8
+
9
+ private def collectible?: (untyped) -> bool
10
+ private def build_trace: (untyped) -> untyped
11
+ private def update_trace_depth: (untyped) -> void
12
+ private def match_action?: (untyped) -> bool
13
+ private def within_depth?: () -> bool
14
+ private def depth_manager: () -> TraceViz::Collectors::DepthManager
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ module TraceViz
2
+ module Config
3
+ class Copier
4
+ @origin_configuration: untyped
5
+ @settings: Hash[Symbol, untyped]
6
+
7
+ def initialize: (untyped configuration) -> void
8
+ def copy: () -> untyped
9
+
10
+ private def deep_copy: (untyped value) -> untyped
11
+ private attr_reader origin_configuration: untyped
12
+ private attr_reader settings: Hash[Symbol, untyped]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ module TraceViz
2
+ module Config
3
+ class Validator
4
+ FILTER_KEYS: Array[Symbol]
5
+
6
+ @validations: Hash[Symbol, ^(untyped) -> void]
7
+
8
+ def initialize: () -> void
9
+ def validate: (Symbol group, Symbol value) -> void
10
+
11
+ private def validate_params: (Hash[Symbol, untyped] value) -> void
12
+ private def validate_result: (Hash[Symbol, untyped] value) -> void
13
+ private def validate_source_location: (Hash[Symbol, untyped] value) -> void
14
+ private def validate_filters: (Array[untyped] filters) -> void
15
+ private def validate_export: (Hash[Symbol, untyped] value) -> void
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ module TraceViz
2
+ class Configuration
3
+ @logger: TraceViz::Logger
4
+ @validator: TraceViz::Config::Validator
5
+ @settings: Hash[Symbol, untyped]
6
+
7
+ attr_reader logger: TraceViz::Logger
8
+ attr_reader settings: Hash[Symbol, untyped]
9
+
10
+ def initialize: () -> void
11
+ def []: (Symbol key) -> untyped
12
+ def update: (Symbol group, untyped values) -> void
13
+ def reset_defaults: () -> void
14
+ def dup: () -> TraceViz::Config::Copier
15
+
16
+ private def define_dynamic_accessors: () -> void
17
+ end
18
+
19
+ def self.configuration: () -> TraceViz::Configuration
20
+ def self.configure: () { (TraceViz::Configuration) -> void } -> void
21
+ def self.logger: () -> TraceViz::Logger
22
+ end
@@ -0,0 +1,9 @@
1
+ module TraceViz
2
+ module Context
3
+ class BaseContext
4
+ attr_reader options: Hash[Symbol, untyped]
5
+
6
+ def initialize: (options: Hash[Symbol, untyped]) -> void
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ module TraceViz
2
+ module Context
3
+ class ConfigContext
4
+ attr_reader configuration: untyped
5
+
6
+ def initialize: (options: Hash[Symbol, untyped]) -> void
7
+
8
+ def temp_configuration: () -> untyped
9
+
10
+ def apply_options: (Hash[Symbol, untyped]) -> untyped
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ module TraceViz
2
+ module Context
3
+ class Manager
4
+ def self.enter_contexts: (Hash[Symbol, untyped] contexts) -> void
5
+ def self.exit_contexts: (*Symbol keys) -> void
6
+ def self.with_contexts: (?Hash[Symbol, untyped] contexts) { () -> void } -> void
7
+ def self.fetch_context: (Symbol key) -> untyped
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ module TraceViz
2
+ module Context
3
+ class Map
4
+ @context_map: Hash[Symbol, untyped]
5
+
6
+ def initialize: () -> void
7
+ def replace: (Hash[Symbol, untyped] new_map) -> void
8
+ def fetch: (Symbol key) -> untyped
9
+ def remove: (*Symbol keys) -> void
10
+ def reset: () -> void
11
+ end
12
+ end
13
+ end
data/sig/context.rbs ADDED
@@ -0,0 +1,5 @@
1
+ module TraceViz
2
+ module Context
3
+ def self.for: (Symbol key) -> TraceViz::Context::Manager
4
+ end
5
+ end
@@ -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,18 +1,17 @@
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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Huy Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-26 00:00:00.000000000 Z
11
+ date: 2025-03-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
- \nin a block of code. Useful for debugging and logging. \nDiagram generation is
15
- currently under development.\n"
14
+ \nin a block of code. Useful for debugging and logging.\n"
16
15
  email:
17
16
  - patrick204nqh@gmail.com
18
17
  executables: []
@@ -29,17 +28,22 @@ files:
29
28
  - LICENSE.txt
30
29
  - README.md
31
30
  - Rakefile
31
+ - Steepfile
32
+ - examples/eu_central_bank.rb
32
33
  - examples/example.cast
33
34
  - examples/example.rb
34
35
  - lib/trace_viz.rb
35
36
  - lib/trace_viz/adapters/base_adapter.rb
36
37
  - lib/trace_viz/adapters/trace_point_adapter.rb
38
+ - lib/trace_viz/builders/base_builder.rb
39
+ - lib/trace_viz/builders/diagram/base_builder.rb
40
+ - lib/trace_viz/builders/diagram/message_builder.rb
41
+ - lib/trace_viz/builders/diagram/sequence_builder.rb
37
42
  - 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
43
+ - lib/trace_viz/collectors/filters/base_class_filter.rb
44
+ - lib/trace_viz/collectors/filters/base_exclude_filter.rb
42
45
  - lib/trace_viz/collectors/filters/base_filter.rb
46
+ - lib/trace_viz/collectors/filters/base_include_filter.rb
43
47
  - lib/trace_viz/collectors/filters/exclude_classes_filter.rb
44
48
  - lib/trace_viz/collectors/filters/exclude_default_classes_filter.rb
45
49
  - lib/trace_viz/collectors/filters/exclude_gems_filter.rb
@@ -48,8 +52,20 @@ files:
48
52
  - lib/trace_viz/collectors/filters/include_classes_filter.rb
49
53
  - lib/trace_viz/collectors/filters/include_gems_filter.rb
50
54
  - lib/trace_viz/collectors/filters/registry.rb
55
+ - lib/trace_viz/collectors/hierarchy_linker.rb
56
+ - lib/trace_viz/collectors/matchers/base_matcher.rb
51
57
  - lib/trace_viz/collectors/matchers/trace_point_action_matcher.rb
52
58
  - lib/trace_viz/collectors/matchers/within_depth_matcher.rb
59
+ - lib/trace_viz/collectors/steps.rb
60
+ - lib/trace_viz/collectors/steps/assign_depth_for_call_step.rb
61
+ - lib/trace_viz/collectors/steps/assign_depth_for_return_step.rb
62
+ - lib/trace_viz/collectors/steps/base_step.rb
63
+ - lib/trace_viz/collectors/steps/build_hierarchy_step.rb
64
+ - lib/trace_viz/collectors/steps/hidden_step.rb
65
+ - lib/trace_viz/collectors/steps/linking_step.rb
66
+ - lib/trace_viz/collectors/steps/validation_step.rb
67
+ - lib/trace_viz/collectors/trace_pipeline.rb
68
+ - lib/trace_viz/collectors/trace_pipeline_builder.rb
53
69
  - lib/trace_viz/collectors/trace_point_collector.rb
54
70
  - lib/trace_viz/collectors/trace_stats.rb
55
71
  - lib/trace_viz/config/copier.rb
@@ -67,38 +83,128 @@ files:
67
83
  - lib/trace_viz/core.rb
68
84
  - lib/trace_viz/core/tracer.rb
69
85
  - lib/trace_viz/defaults.rb
86
+ - lib/trace_viz/defaults/actions.rb
87
+ - lib/trace_viz/defaults/colors.rb
88
+ - lib/trace_viz/defaults/config.rb
89
+ - lib/trace_viz/defaults/themes.rb
70
90
  - lib/trace_viz/errors.rb
71
91
  - 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
92
+ - lib/trace_viz/exporters/export_manager.rb
93
+ - lib/trace_viz/exporters/mermaid_exporter.rb
94
+ - lib/trace_viz/exporters/registry.rb
75
95
  - 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
96
+ - lib/trace_viz/extractors/base_extractor.rb
97
+ - lib/trace_viz/extractors/diagram/base_extractor.rb
98
+ - lib/trace_viz/extractors/diagram/box_extractor.rb
99
+ - lib/trace_viz/extractors/diagram/message_extractor.rb
100
+ - lib/trace_viz/extractors/diagram/participant_extractor.rb
101
+ - lib/trace_viz/extractors/diagram/processors/message_processor.rb
78
102
  - lib/trace_viz/formatters/base_formatter.rb
103
+ - lib/trace_viz/formatters/base_formatter_factory.rb
104
+ - lib/trace_viz/formatters/diagram/sequence/base_formatter.rb
105
+ - lib/trace_viz/formatters/diagram/sequence/message_formatter.rb
106
+ - lib/trace_viz/formatters/diagram_formatter.rb
107
+ - lib/trace_viz/formatters/export/base_formatter.rb
108
+ - lib/trace_viz/formatters/export/formatter_factory.rb
109
+ - lib/trace_viz/formatters/export/method_call_formatter.rb
110
+ - lib/trace_viz/formatters/export/method_return_formatter.rb
111
+ - lib/trace_viz/formatters/export/summary_group_formatter.rb
112
+ - lib/trace_viz/formatters/helpers.rb
79
113
  - lib/trace_viz/formatters/helpers/depth_helper.rb
114
+ - lib/trace_viz/formatters/helpers/digram/action_helper.rb
115
+ - lib/trace_viz/formatters/helpers/digram/result_helper.rb
80
116
  - lib/trace_viz/formatters/helpers/indent_helper.rb
117
+ - lib/trace_viz/formatters/helpers/log/color_helper.rb
118
+ - lib/trace_viz/formatters/helpers/log/depth_helper.rb
119
+ - lib/trace_viz/formatters/helpers/log/method_name_helper.rb
120
+ - lib/trace_viz/formatters/helpers/log/params_helper.rb
121
+ - lib/trace_viz/formatters/helpers/log/result_helper.rb
122
+ - lib/trace_viz/formatters/helpers/log/summary/params_helper.rb
81
123
  - lib/trace_viz/formatters/helpers/method_details_helper.rb
82
124
  - lib/trace_viz/formatters/helpers/params_helper.rb
83
125
  - lib/trace_viz/formatters/helpers/result_helper.rb
84
126
  - lib/trace_viz/formatters/helpers/source_helper.rb
127
+ - lib/trace_viz/formatters/helpers/summary/params_helper.rb
128
+ - lib/trace_viz/formatters/helpers/summary/source_helper.rb
85
129
  - lib/trace_viz/formatters/helpers/time_helper.rb
130
+ - lib/trace_viz/formatters/log/base_formatter.rb
131
+ - lib/trace_viz/formatters/log/formatter_factory.rb
132
+ - lib/trace_viz/formatters/log/method_call_formatter.rb
133
+ - lib/trace_viz/formatters/log/method_return_formatter.rb
134
+ - lib/trace_viz/formatters/log/summary_group_formatter.rb
135
+ - lib/trace_viz/formatters/log/verbose_formatter.rb
136
+ - lib/trace_viz/formatters/trace_data_formatter.rb
137
+ - lib/trace_viz/helpers.rb
138
+ - lib/trace_viz/helpers/config_helper.rb
139
+ - lib/trace_viz/helpers/trace_point/param_helper.rb
140
+ - lib/trace_viz/helpers/tracking_helper.rb
86
141
  - 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
142
+ - lib/trace_viz/loggers/base_logger.rb
143
+ - lib/trace_viz/loggers/log_level_resolver.rb
144
+ - lib/trace_viz/loggers/logging_manager.rb
145
+ - lib/trace_viz/loggers/post_collection_logger.rb
91
146
  - lib/trace_viz/loggers/trace_logger.rb
92
147
  - lib/trace_viz/loggers/trace_stats_logger.rb
148
+ - lib/trace_viz/managers/diagram/participant_manager.rb
149
+ - lib/trace_viz/models.rb
150
+ - lib/trace_viz/models/box.rb
151
+ - lib/trace_viz/models/diagram.rb
152
+ - lib/trace_viz/models/message.rb
153
+ - lib/trace_viz/models/participant.rb
154
+ - lib/trace_viz/renderers/base_renderer.rb
155
+ - lib/trace_viz/renderers/diagram/sequence_renderer.rb
156
+ - lib/trace_viz/renderers/render_context.rb
157
+ - lib/trace_viz/renderers/renderer_builder.rb
158
+ - lib/trace_viz/renderers/renderer_factory.rb
159
+ - lib/trace_viz/renderers/summary_renderer.rb
160
+ - lib/trace_viz/renderers/verbose_renderer.rb
161
+ - lib/trace_viz/shared.rb
162
+ - lib/trace_viz/shared/renderer_helper.rb
163
+ - lib/trace_viz/syntax/mermaid/sequence_syntax.rb
93
164
  - lib/trace_viz/trace_data/base.rb
165
+ - lib/trace_viz/trace_data/node.rb
166
+ - lib/trace_viz/trace_data/root_node.rb
167
+ - lib/trace_viz/trace_data/summary_node.rb
94
168
  - lib/trace_viz/trace_data/trace_point/base.rb
95
169
  - lib/trace_viz/trace_data/trace_point/method_call.rb
96
170
  - lib/trace_viz/trace_data/trace_point/method_return.rb
97
171
  - lib/trace_viz/trace_data/trace_point_builder.rb
172
+ - lib/trace_viz/traits.rb
173
+ - lib/trace_viz/traits/depth_trackable.rb
174
+ - lib/trace_viz/traits/identifiable.rb
175
+ - lib/trace_viz/traits/time_trackable.rb
176
+ - lib/trace_viz/transformers/base_transformer.rb
177
+ - lib/trace_viz/transformers/summary_transformer.rb
178
+ - lib/trace_viz/utils.rb
179
+ - lib/trace_viz/utils/alias_generator.rb
98
180
  - lib/trace_viz/utils/colorize.rb
99
- - lib/trace_viz/utils/format_utils.rb
181
+ - lib/trace_viz/utils/format/key_value_formatter.rb
182
+ - lib/trace_viz/utils/format/value_truncator.rb
183
+ - lib/trace_viz/utils/id_generator.rb
100
184
  - lib/trace_viz/version.rb
185
+ - sig/adapters/base_adapter.rbs
186
+ - sig/adapters/trace_point_adapter.rbs
187
+ - sig/collectors/filters/registry.rbs
188
+ - sig/collectors/trace_point_collector.rbs
189
+ - sig/config/copier.rbs
190
+ - sig/config/validator.rbs
191
+ - sig/configuration.rbs
192
+ - sig/context.rbs
193
+ - sig/context/base_context.rbs
194
+ - sig/context/config_context.rbs
195
+ - sig/context/manager.rbs
196
+ - sig/context/map.rbs
197
+ - sig/core.rbs
198
+ - sig/core/tracer.rbs
199
+ - sig/defaults.rbs
200
+ - sig/errors.rbs
201
+ - sig/logger.rbs
101
202
  - sig/trace_viz.rbs
203
+ - sig/utils/colorize.rbs
204
+ - sig/utils/format_utils.rbs
205
+ - sig/utils/format_utils/key_value_formatter.rbs
206
+ - sig/utils/format_utils/value_truncator.rbs
207
+ - sig/version.rbs
102
208
  homepage: https://github.com/patrick204nqh/trace_viz
103
209
  licenses:
104
210
  - MIT
@@ -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