lib/spoom/coverage/snapshot.rb in spoom-1.1.12 vs lib/spoom/coverage/snapshot.rb in spoom-1.1.13
- old
+ new
@@ -20,10 +20,13 @@
prop :methods_without_sig, Integer, default: 0
prop :methods_with_sig, Integer, default: 0
prop :calls_untyped, Integer, default: 0
prop :calls_typed, Integer, default: 0
prop :sigils, T::Hash[String, Integer], default: Hash.new(0)
+ prop :methods_with_sig_excluding_rbis, Integer, default: 0
+ prop :methods_without_sig_excluding_rbis, Integer, default: 0
+ prop :sigils_excluding_rbis, T::Hash[String, Integer], default: Hash.new(0)
# The strictness name as found in the Sorbet metrics file
STRICTNESSES = T.let(["ignore", "false", "true", "strict", "strong", "stdlib"].freeze, T::Array[String])
sig { params(out: T.any(IO, StringIO), colors: T::Boolean, indent_level: Integer).void }
@@ -61,20 +64,31 @@
snapshot.singleton_classes = obj.fetch("singleton_classes", 0)
snapshot.methods_with_sig = obj.fetch("methods_with_sig", 0)
snapshot.methods_without_sig = obj.fetch("methods_without_sig", 0)
snapshot.calls_typed = obj.fetch("calls_typed", 0)
snapshot.calls_untyped = obj.fetch("calls_untyped", 0)
+ snapshot.methods_with_sig_excluding_rbis = obj.fetch("methods_with_sig_excluding_rbis", 0)
+ snapshot.methods_without_sig_excluding_rbis = obj.fetch("methods_without_sig_excluding_rbis", 0)
sigils = obj.fetch("sigils", {})
if sigils
Snapshot::STRICTNESSES.each do |strictness|
next unless sigils.key?(strictness)
snapshot.sigils[strictness] = sigils[strictness]
end
end
+ sigils_excluding_rbis = obj.fetch("sigils_excluding_rbis", {})
+ if sigils_excluding_rbis
+ Snapshot::STRICTNESSES.each do |strictness|
+ next unless sigils_excluding_rbis.key?(strictness)
+
+ snapshot.sigils_excluding_rbis[strictness] = sigils_excluding_rbis[strictness]
+ end
+ end
+
snapshot
end
end
end
@@ -82,23 +96,26 @@
extend T::Sig
sig { params(snapshot: Snapshot).void }
def print_snapshot(snapshot)
methods = snapshot.methods_with_sig + snapshot.methods_without_sig
+ methods_excluding_rbis = snapshot.methods_with_sig_excluding_rbis + snapshot.methods_without_sig_excluding_rbis
calls = snapshot.calls_typed + snapshot.calls_untyped
if snapshot.version_static || snapshot.version_runtime
printl("Sorbet static: #{snapshot.version_static}") if snapshot.version_static
printl("Sorbet runtime: #{snapshot.version_runtime}") if snapshot.version_runtime
printn
end
printl("Content:")
indent
- printl("files: #{snapshot.files} (including #{snapshot.rbi_files} RBIs)")
+ printl("files: #{snapshot.files}")
+ printl("files excluding rbis: #{snapshot.files - snapshot.rbi_files}")
printl("modules: #{snapshot.modules}")
printl("classes: #{snapshot.classes - snapshot.singleton_classes}")
printl("methods: #{methods}")
+ printl("methods excluding rbis: #{methods_excluding_rbis}")
dedent
printn
printl("Sigils:")
print_map(snapshot.sigils, snapshot.files)
printn
@@ -106,9 +123,16 @@
methods_map = {
"with signature" => snapshot.methods_with_sig,
"without signature" => snapshot.methods_without_sig,
}
print_map(methods_map, methods)
+ printn
+ printl("Methods excluding RBIs")
+ methods_excluding_rbis_map = {
+ "with signature" => snapshot.methods_with_sig_excluding_rbis,
+ "without signature" => snapshot.methods_without_sig_excluding_rbis,
+ }
+ print_map(methods_excluding_rbis_map, methods_excluding_rbis)
printn
printl("Calls:")
calls_map = {
"typed" => snapshot.calls_typed,
"untyped" => snapshot.calls_untyped,