ShogunPanda/ballast

View on GitHub
Rakefile

Summary

Maintainability
Test Coverage
#
# This file is part of the ballast gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
# Licensed under the MIT license, which can be found at https://choosealicense.com/licenses/mit.
#

require "bundler/gem_tasks"
require "rspec/core/rake_task"

# Compatibility layer for Rake 11.0
Rake.application.class.send(:alias_method, :last_comment, :last_description) unless Rake.application.respond_to?(:last_comment)

RSpec::Core::RakeTask.new("spec")

RSpec::Core::RakeTask.new("spec:coverage") do
  ENV["COVERAGE"] = "true"
end

RSpec::Core::RakeTask.new("spec:ci") do
  ENV["COVERAGE"] = "true"
  ENV["NO_COLOR"] = "true"
end

desc "Performs linting of the code using rubocop"
task "lint" do
  Kernel.exec("rubocop -ED lib")
end

desc "Generates the documentation"
task :docs do
  system("yardoc") || raise("Failed Execution of: yardoc")
end
  
desc "Gets the current release version"
task :version, :with_name do |_, args|
  gem = Bundler::GemHelper.instance.gemspec
  puts [args[:with_name] == "true" ? gem.name : nil, gem.version].compact.join("-")
end

desc "Prepares the release"
task :prerelease => ["spec:coverage", "docs"] do
  ["git add -A", "git commit -am \"Version #{Bundler::GemHelper.instance.gemspec.version}\""].each do |cmd|
    system(cmd) || raise("Failed Execution of: #{cmd}")
  end
end