Sha256: bbc20ec330ad3a204e8449b7d591de45154d13a303551d9888addb80db5bc165

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

require 'bundler/gem_tasks'
require 'rspec/core/rake_task'
require 'rubocop'
require 'rubocop/rake_task'
require 'rubocop-performance'
require 'rubocop-rspec'
require 'rubocop-rake'
require 'yard'

RuboCop::RakeTask.new(:rubocop) do |t|
  config_path = File.expand_path(File.join('.rubocop.yml'), __dir__)
  t.options = ['--config', config_path]
  t.requires << 'rubocop-rspec'
  t.requires << 'rubocop-performance'
  t.requires << 'rubocop-rake'
end

RSpec::Core::RakeTask.new(:rspec)

YARD::Rake::YardocTask.new(:doc) do |t|
  t.files = Dir[Pathname.new(__FILE__).join('../lib/**/*.rb')]
  t.options = %w[--protected --private]
end

task default: :rspec

desc 'Code documentation coverage check'
task yardoc: :doc do
  undocumented_code_objects = YARD::Registry.tap(&:load).select do |code_object|
    code_object.docstring.empty?
  end

  if undocumented_code_objects.empty?
    puts 'YARD COVERAGE [SUCCESS] => 100% documentation coverage!'
  else
    failing_code_objects = undocumented_code_objects.map do |code_object|
      "- #{code_object.class} => #{code_object}"
    end.join("\n")

    abort("YARD COVERAGE [FAILURE] => No documentation found for: \n #{failing_code_objects}")
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
symbiont-ruby-0.7.0 Rakefile