Sha256: 41bc3248044167d47a8cd42da9d77d5ab8d702191ee704911aee30df666b8815
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true require "rubocop" require "rubocop-rspec-extra" require "rubocop/cops_documentation_generator" require "yard" YARD::Rake::YardocTask.new(:yard_for_generate_documentation) do |task| task.files = ["lib/rubocop/cop/**/*.rb"] task.options = ["--no-output"] end desc "Generate docs of all cops departments" task generate_cops_documentation: :yard_for_generate_documentation do generator = CopsDocumentationGenerator.new( departments: %w[RSpec/Extra] ) generator.call end desc "Syntax check for the documentation comments" task documentation_syntax_check: :yard_for_generate_documentation do require "parser/ruby25" ok = true YARD::Registry.load! cops = RuboCop::Cop::Registry.global cops.each do |cop| examples = YARD::Registry.all(:class).find do |code_object| next unless RuboCop::Cop::Badge.for(code_object.to_s) == cop.badge break code_object.tags("example") end examples.to_a.each do |example| buffer = Parser::Source::Buffer.new("<code>", 1) buffer.source = example.text parser = Parser::Ruby25.new(RuboCop::AST::Builder.new) parser.diagnostics.all_errors_are_fatal = true parser.parse(buffer) rescue Parser::SyntaxError => e path = example.object.file puts "#{path}: Syntax Error in an example. #{e}" ok = false end end abort unless ok end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rubocop-rspec-extra-0.2.0 | tasks/cops_documentation.rake |
rubocop-rspec-extra-0.1.0 | tasks/cops_documentation.rake |