sul-dlss/harvestdor-indexer

View on GitHub
Rakefile

Summary

Maintainability
Test Coverage
# frozen_string_literal: true

require 'bundler/gem_tasks'

require 'rake'
require 'bundler'

begin
  Bundler.setup(:default, :development)
rescue Bundler::BundlerError => e
  warn e.message
  warn 'Run `bundle install` to install missing gems'
  exit e.status_code
end

task default: %i[rspec rubocop]

desc 'run continuous integration suite (tests, coverage, docs)'
task ci: %i[rspec doc rubocop]

require 'rspec/core/rake_task'

task spec: :rspec

desc 'run specs EXCEPT integration specs'
RSpec::Core::RakeTask.new(:spec_fast) do |spec|
  spec.rspec_opts = ['-c', '-f progress', '--tty', '-t ~integration', '-r ./spec/spec_helper.rb']
end

RSpec::Core::RakeTask.new(:rspec) do |spec|
  spec.rspec_opts = ['-c', '-f progress', '--tty', '-r ./spec/spec_helper.rb']
end

require 'rubocop/rake_task'
RuboCop::RakeTask.new(:rubocop)

# Use yard to build docs
require 'yard'
require 'yard/rake/yardoc_task'
begin
  project_root = __dir__
  doc_dest_dir = File.join(project_root, 'doc')

  YARD::Rake::YardocTask.new(:doc) do |yt|
    yt.files = Dir.glob(File.join(project_root, 'lib', '**', '*.rb')) + [File.join(project_root, 'README.md')]
    yt.options = ['--output-dir', doc_dest_dir, '--readme', 'README.md', '--title', 'Harvestdor Gem Documentation']
  end
rescue LoadError
  desc 'Generate YARD Documentation'
  task :doc do
    abort 'Please install the YARD gem to generate rdoc.'
  end
end