diff --git a/.yardopts b/.yardopts new file mode 100644 index 0000000..505c853 --- /dev/null +++ b/.yardopts @@ -0,0 +1,4 @@ +--markup markdown +--readme README.md +--protected +--private diff --git a/Rakefile b/Rakefile index 1061dcb..5ae7307 100644 --- a/Rakefile +++ b/Rakefile @@ -2,11 +2,14 @@ require 'bundler/gem_tasks' +CLEAN << '.yardoc' +CLEAN << 'doc' + desc 'Run default checks' task default: %i[lint] desc 'Run code analysis tools' -task lint: %i[rubocop] +task lint: %i[rubocop yard:cov] desc 'Fix code style (rubocop --auto-correct)' task fix: 'rubocop:auto_correct' @@ -18,7 +21,27 @@ rescue LoadError nil end +begin + require 'yard' + YARD::Rake::YardocTask.new +rescue LoadError + nil +end + desc 'Open development console' task :console do exec '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}%" + # TODO: raise 'Not fully documented!' if coverage != 100 + end +end diff --git a/diversipub.gemspec b/diversipub.gemspec index e1c0e38..4725d41 100644 --- a/diversipub.gemspec +++ b/diversipub.gemspec @@ -52,4 +52,5 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rake', '~> 13.0' spec.add_development_dependency 'rubocop-performance', '~> 1.13' spec.add_development_dependency 'rubocop-rake', '~> 0.6' + spec.add_development_dependency 'yard', '~> 0.9' end diff --git a/lib/diversipub.rb b/lib/diversipub.rb index f25f413..d60b032 100644 --- a/lib/diversipub.rb +++ b/lib/diversipub.rb @@ -25,3 +25,9 @@ require_relative 'diversipub/puma_task' require_relative 'diversipub/rack_app' require_relative 'diversipub/sinatra_app' require_relative 'diversipub/version' + +## +# A publishing platform for HTTP, Gemini, ActivityPub, RSS, Atom, and others. +# +module Diversipub +end diff --git a/lib/diversipub/version.rb b/lib/diversipub/version.rb index 82c96ae..b50501f 100644 --- a/lib/diversipub/version.rb +++ b/lib/diversipub/version.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true module Diversipub + # Gem version. VERSION = '0.0.0' end