pboling/gem_bench

View on GitHub
gem_bench.gemspec

Summary

Maintainability
Test Coverage
# Get the GEMFILE_VERSION without *require* "my_gem/version", for code coverage accuracy
# See: https://github.com/simplecov-ruby/simplecov/issues/557#issuecomment-825171399
load "lib/gem_bench/version.rb"
gem_version = GemBench::Version::VERSION
GemBench::Version.send(:remove_const, :VERSION)

Gem::Specification.new do |spec|
  spec.name = "gem_bench"
  spec.version = gem_version
  spec.authors = ["Peter Boling"]
  spec.email = ["peter.boling@gmail.com"]

  # See CONTRIBUTING.md
  spec.cert_chain = ["certs/pboling.pem"]
  spec.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $PROGRAM_NAME.end_with?("gem")

  spec.summary = "Static Gemfile and installed gem library source code analysis"
  spec.description = "Enforce Gemfile version constraints
Regex search across all installed gem's source code to find issues quickly
Trim down app load times by keeping your worst players on the bench (useful for beating Heroku slug load time cutoff)"
  spec.homepage = "http://github.com/pboling/gem_bench"

  spec.licenses = ["MIT"]
  spec.platform = Gem::Platform::RUBY
  spec.required_ruby_version = ">= 2.3"

  spec.metadata["homepage_uri"] = "https://railsbling.com/tags/gem_bench/"
  spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}"
  spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md"
  spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues"
  spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}"
  spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki"
  spec.metadata["funding_uri"] = "https://liberapay.com/pboling"
  spec.metadata["rubygems_mfa_required"] = "true"

  # Specify which files should be added to the gem when it is released.
  spec.files = Dir[
    # Splats (alphabetical)
    "lib/**/*.rb",
    # Files (alphabetical)
    "CHANGELOG.md",
    "CODE_OF_CONDUCT.md",
    "CONTRIBUTING.md",
    "LICENSE.txt",
    "README.md",
    "SECURITY.md"
  ]
  spec.bindir = "exe"
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
  spec.require_paths = ["lib"]

  # Yes, it *is* actually a run-time dependency. This gem is sort of a bundler add-on.
  spec.add_runtime_dependency("bundler", ">= 1.14")
  spec.add_runtime_dependency("version_gem", "~> 1.1", ">= 1.1.3")

  # Documentation
  spec.add_development_dependency("yard")
  spec.add_development_dependency("yard-junk")

  spec.add_development_dependency("awesome_print")
  spec.add_development_dependency("gem-release", "~> 2.0")
  spec.add_development_dependency("rake")
  spec.add_development_dependency("rspec")
  spec.add_development_dependency("rspec-block_is_expected")
  spec.add_development_dependency("rubocop-lts", "~> 10.1") # Lint & Style Support for Ruby 2.3+
  spec.add_development_dependency("rubocop-packaging", "~> 0.5", ">=0.5.2")
  spec.add_development_dependency("rubocop-rspec")
  spec.add_development_dependency("simplecov")
end