From a02e7076437d51d7035c77e5da5f9f8c3cd377ee Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Sun, 30 Jan 2022 12:58:18 +0500 Subject: [PATCH] Ruby: ensure 100% doc coverage --- pkgs/ruby/Rakefile | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkgs/ruby/Rakefile b/pkgs/ruby/Rakefile index b1d77db..2675fc7 100644 --- a/pkgs/ruby/Rakefile +++ b/pkgs/ruby/Rakefile @@ -20,7 +20,7 @@ CLEAN << 'doc' CLEAN << 'spec/examples.txt' desc 'Run default checks' -task default: %i[test lint] +task default: %i[test lint yard:cov] desc 'Run tests' task test: :spec @@ -65,3 +65,16 @@ desc 'Open development console' task :console do sh 'bundle', 'exec', File.expand_path(File.join('bin', 'console'), __dir__) end + +namespace :yard do + desc 'Measure documentation coverage' + task :cov do + result = `bundle exec yard stats`.lines.last.strip.freeze + m = result.match(/\A(\d+(\.\d+)?)% documented\z/) + raise 'Invalid result' if m.nil? + + coverage = m[1].to_f.round(2) + puts "Documentation coverage: #{coverage}%" + raise 'Not fully documented!' if coverage != 100 + end +end