class-metrix 1.0.0 → 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/.vscode/README.md +103 -47
- data/.vscode/extensions.json +10 -7
- data/.vscode/keybindings.json +26 -0
- data/.vscode/rbs.code-snippets +61 -0
- data/.vscode/settings.json +25 -1
- data/.vscode/tasks.json +141 -0
- data/CHANGELOG.md +2 -0
- data/README.md +46 -16
- data/Steepfile +26 -0
- data/docs/CHANGELOG_EVOLUTION_EXAMPLE.md +95 -0
- data/lib/class_metrix/extractor.rb +1 -1
- data/lib/class_metrix/extractors/constants_extractor.rb +1 -1
- data/lib/class_metrix/extractors/methods_extractor.rb +1 -1
- data/lib/class_metrix/extractors/multi_type_extractor.rb +2 -2
- data/lib/class_metrix/formatters/base/base_formatter.rb +3 -3
- data/lib/class_metrix/formatters/components/footer_component.rb +3 -3
- data/lib/class_metrix/formatters/components/generic_header_component.rb +2 -2
- data/lib/class_metrix/formatters/components/header_component.rb +4 -4
- data/lib/class_metrix/formatters/components/missing_behaviors_component.rb +7 -7
- data/lib/class_metrix/formatters/components/table_component/row_processor.rb +8 -5
- data/lib/class_metrix/formatters/components/table_component/table_data_extractor.rb +4 -1
- data/lib/class_metrix/formatters/components/table_component/table_renderer.rb +2 -2
- data/lib/class_metrix/formatters/components/table_component.rb +5 -4
- data/lib/class_metrix/formatters/csv_formatter.rb +3 -3
- data/lib/class_metrix/formatters/markdown_formatter.rb +3 -4
- data/lib/class_metrix/formatters/shared/markdown_table_builder.rb +2 -2
- data/lib/class_metrix/formatters/shared/table_builder.rb +8 -6
- data/lib/class_metrix/version.rb +1 -1
- data/sig/class_metrix.rbs +8 -0
- data/sig/extractor.rbs +54 -0
- data/sig/extractors.rbs +84 -0
- data/sig/formatters_base.rbs +59 -0
- data/sig/formatters_components.rbs +133 -0
- data/sig/formatters_main.rbs +20 -0
- data/sig/formatters_shared.rbs +102 -0
- data/sig/manifest.yaml +32 -0
- data/sig/utils.rbs +57 -0
- data/sig/value_processor.rbs +11 -0
- data/sig/version.rbs +4 -0
- metadata +44 -2
- data/sig/class/metrix.rbs +0 -6
data/sig/utils.rbs
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# Utility classes
|
2
|
+
module ClassMetrix
|
3
|
+
module Utils
|
4
|
+
class ClassResolver
|
5
|
+
def self.normalize_classes: (Array[Class | String] classes) -> Array[Class]
|
6
|
+
def self.resolve_class: (Class | String klass) -> Class
|
7
|
+
def self.string_to_class: (String class_name) -> Class
|
8
|
+
end
|
9
|
+
|
10
|
+
class DebugLogger
|
11
|
+
LEVELS: Hash[Symbol, Integer]
|
12
|
+
|
13
|
+
@component_name: String
|
14
|
+
@debug_mode: bool
|
15
|
+
@level: Integer
|
16
|
+
|
17
|
+
def initialize: (String component_name, bool debug_mode, Symbol debug_level) -> void
|
18
|
+
def log: (String message, ?Symbol level) -> void
|
19
|
+
def enabled?: () -> bool
|
20
|
+
def log_safe_operation: (String operation_name, ?Symbol level) { () -> untyped } -> untyped
|
21
|
+
def log_summary: (String operation, Array[untyped] items) { (untyped item, Integer index) -> void } -> void
|
22
|
+
def log_decision: (String decision, String reason, ?Symbol level) -> void
|
23
|
+
def log_anomaly: (String description) -> void
|
24
|
+
def safe_inspect: (untyped value) -> String
|
25
|
+
def safe_class: (untyped value) -> String
|
26
|
+
def safe_keys: (untyped value) -> String
|
27
|
+
def safe_length: (untyped value) -> String
|
28
|
+
def safe_truncate: (String str, Integer max_length) -> String
|
29
|
+
def safe_to_s: (untyped value) -> String
|
30
|
+
def log_value_details: (untyped value, ?Integer? index, ?Symbol level) -> void
|
31
|
+
def log_hash_detection: (untyped value, ?Integer? index, ?Symbol level) -> void
|
32
|
+
def log_hash_detection_summary: (Array[untyped] values) -> void
|
33
|
+
def set_level: (Symbol level) -> void
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def should_log?: (Symbol level) -> bool
|
38
|
+
def format_message: (String message) -> String
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Root level classes for processors
|
44
|
+
class ValueProcessor
|
45
|
+
def self.process: (untyped value, ?expand_hashes: bool) -> untyped
|
46
|
+
def self.format_hash: (Hash[untyped, untyped] hash) -> String
|
47
|
+
def self.expand_hash: (Hash[untyped, untyped] hash) -> Array[Hash[Symbol, untyped]]
|
48
|
+
def self.handle_extraction_error: (Exception error) -> String
|
49
|
+
def self.missing_constant: () -> String
|
50
|
+
def self.missing_method: () -> String
|
51
|
+
end
|
52
|
+
|
53
|
+
# Root level utility class references
|
54
|
+
module ClassMetrix
|
55
|
+
class ClassResolver < Utils::ClassResolver
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Legacy value processor for backward compatibility
|
2
|
+
module ClassMetrix
|
3
|
+
class ValueProcessor
|
4
|
+
def self.process: (untyped value, ?expand_hashes: bool) -> (String | Array[Hash[Symbol, untyped]])
|
5
|
+
def self.format_hash: (Hash[untyped, untyped] hash) -> String
|
6
|
+
def self.expand_hash: (Hash[untyped, untyped] hash) -> Array[Hash[Symbol, untyped]]
|
7
|
+
def self.handle_extraction_error: (Exception error) -> String
|
8
|
+
def self.missing_constant: () -> String
|
9
|
+
def self.missing_method: () -> String
|
10
|
+
end
|
11
|
+
end
|
data/sig/version.rbs
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: class-metrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Huy Nguyen
|
@@ -10,6 +10,20 @@ bindir: exe
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2025-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rbs
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rspec
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +52,20 @@ dependencies:
|
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: steep
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.0'
|
41
69
|
description: ClassMetrix allows you to easily extract and compare constants and class
|
42
70
|
methods across multiple Ruby classes, generating clean markdown tables for analysis
|
43
71
|
and documentation.
|
@@ -53,7 +81,9 @@ files:
|
|
53
81
|
- ".tool-versions"
|
54
82
|
- ".vscode/README.md"
|
55
83
|
- ".vscode/extensions.json"
|
84
|
+
- ".vscode/keybindings.json"
|
56
85
|
- ".vscode/launch.json"
|
86
|
+
- ".vscode/rbs.code-snippets"
|
57
87
|
- ".vscode/settings.json"
|
58
88
|
- ".vscode/tasks.json"
|
59
89
|
- CHANGELOG.md
|
@@ -61,7 +91,9 @@ files:
|
|
61
91
|
- README.md
|
62
92
|
- RELEASE_GUIDE.md
|
63
93
|
- Rakefile
|
94
|
+
- Steepfile
|
64
95
|
- docs/ARCHITECTURE.md
|
96
|
+
- docs/CHANGELOG_EVOLUTION_EXAMPLE.md
|
65
97
|
- examples/README.md
|
66
98
|
- examples/basic_usage.rb
|
67
99
|
- examples/debug_levels_demo.rb
|
@@ -93,7 +125,17 @@ files:
|
|
93
125
|
- lib/class_metrix/utils/class_resolver.rb
|
94
126
|
- lib/class_metrix/utils/debug_logger.rb
|
95
127
|
- lib/class_metrix/version.rb
|
96
|
-
- sig/
|
128
|
+
- sig/class_metrix.rbs
|
129
|
+
- sig/extractor.rbs
|
130
|
+
- sig/extractors.rbs
|
131
|
+
- sig/formatters_base.rbs
|
132
|
+
- sig/formatters_components.rbs
|
133
|
+
- sig/formatters_main.rbs
|
134
|
+
- sig/formatters_shared.rbs
|
135
|
+
- sig/manifest.yaml
|
136
|
+
- sig/utils.rbs
|
137
|
+
- sig/value_processor.rbs
|
138
|
+
- sig/version.rbs
|
97
139
|
homepage: https://github.com/patrick204nqh/class-metrix
|
98
140
|
licenses:
|
99
141
|
- MIT
|