Created
August 22, 2019 13:21
-
-
Save havenwood/3390af146094df37e7f75fd187aff63a to your computer and use it in GitHub Desktop.
Response to IRC question
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'bundler' | |
def lockfile | |
Bundler.read_file Bundler.default_lockfile | |
end | |
def lockfile_gems | |
Bundler::LockfileParser.new(lockfile).specs.map do |spec| | |
[spec.name, spec.version ] | |
end | |
end | |
def missing_gems | |
lockfile_gems.select do |name, version| | |
dep = Gem::Dependency.new name, version | |
Gem::Specification.find { |spec| spec != dep } | |
end | |
end | |
def missing_extensions | |
missing_gems.select do |name, version| | |
dep = Gem::Dependency.new name, version | |
((spec, _), _), _ = Gem::SpecFetcher.fetcher.spec_for_dependency dep | |
spec.missing_extensions? | |
end | |
end | |
puts missing_extensions if missing_extensions.any? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment