Use plugin name instead of metadata because sometimes Bundler-provided Gem::Specifications have nil metadata.

Fixes #7530
This commit is contained in:
Jordan Sissel 2017-06-23 01:06:05 -07:00
parent 468b8d2257
commit a355d9f09d

View file

@ -135,7 +135,12 @@ class PluginVersionWorking
end
def extract_versions(definition, dependencies, from)
definition.specs.select { |spec| spec.metadata && spec.metadata["logstash_plugin"] == "true" }.each do |spec|
#definition.specs.select { |spec| spec.metadata && spec.metadata["logstash_plugin"] == "true" }.each do |spec|
#
# Bundler doesn't seem to provide us with `spec.metadata` for remotely
# discovered plugins (via rubygems.org api), so we have to choose by
# a name pattern instead of by checking spec.metadata["logstash_plugin"]
definition.specs.select { |spec| spec.name =~ /^logstash-(input|filter|output|codec)-/ }.each do |spec|
dependencies[spec.name] ||= []
dependencies[spec.name] << VersionDependencies.new(spec.version, from)
end