david-mccullars/dijkstra_fast

View on GitHub
dijkstra_fast.gemspec

Summary

Maintainability
Test Coverage
lib = File.expand_path('lib', __dir__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'dijkstra_fast/version'

Gem::Specification.new do |spec|
  spec.name          = 'dijkstra_fast'
  spec.version       = DijkstraFast::VERSION
  spec.authors       = ['David McCullars']
  spec.email         = ['david.mccullars@gmail.com']

  spec.summary       = '(Native) implementation of Dijkstra algorithm for large, sparse graphs'
  spec.description   = <<~DESCRIPTION
    Native implementation of Dijkstra algorithm for finding the shortest path
    between two vertices in a large, sparse graphs. Underlying algorithm is
    implemented in C using a priority queue.  Edges are represented using linked
    lists rather than an adjacency matrix to reduce memory footprint when operating
    on very large graphs where the average number of edges between nodes is
    relatively small (e.g. < 1/10 the number of nodes). See
    https://en.wikipedia.org/wiki/Dijkstra's_algorithm for additional information.
  DESCRIPTION
  spec.homepage      = 'https://github.com/david-mccullars/dijkstra_fast'
  spec.license       = 'MIT'

  spec.files         = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
  spec.bindir        = 'exe'
  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
  spec.extensions    = ['ext/dijkstra_fast/extconf.rb']
  spec.require_paths = ['lib']
  spec.required_ruby_version = '>= 3.0.0'

  spec.add_development_dependency 'bundler'
  spec.add_development_dependency 'github-markup'
  spec.add_development_dependency 'rake'
  spec.add_development_dependency 'rake-compiler'
  spec.add_development_dependency 'redcarpet'
  spec.add_development_dependency 'rspec'
  spec.add_development_dependency 'rubocop'
  spec.add_development_dependency 'rubocop-rake'
  spec.add_development_dependency 'rubocop-rspec'
  spec.add_development_dependency 'simplecov', '~> 0.17.0' # 0.18 not supported by code climate
  spec.add_development_dependency 'yard'
  spec.metadata = {
    'rubygems_mfa_required' => 'true',
  }
end