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,