Sha256: 84f0ee56fe783abc0110d6dbe8f804dcc53987d698e1814ce5a537bc56b3254f

Contents?: true

Size: 1.03 KB

Versions: 24

Compression:

Stored size: 1.03 KB

Contents

require 'logstash/errors'
require 'rubygems/version'
require 'forwardable'

module LogStash::Util
  class PluginVersion
    extend Forwardable
    include Comparable

    GEM_NAME_PREFIX = 'logstash'

    def_delegators :@version, :to_s
    attr_reader :version

    def initialize(*options)
      if options.size == 1 && options.first.is_a?(Gem::Version)
        @version = options.first
      else
        @version = Gem::Version.new(options.join('.'))
      end
    end

    def self.find_version!(name)
      begin
        specification = Gem::Specification.find_by_name(name)
        new(specification.version)
      rescue Gem::LoadError
        # Rescuing the LoadError and raise a Logstash specific error.
        # Likely we can't find the gem in the current GEM_PATH
        raise LogStash::PluginNoVersionError
      end
    end

    def self.find_plugin_version!(type, name)
      plugin_name = [GEM_NAME_PREFIX, type, name].join('-')
      find_version!(plugin_name)
    end

    def <=>(other)
      version <=> other.version
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
logstash-core-1.5.2.2-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.2.1-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.2-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.2.snapshot2-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.2.snapshot1-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.1-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.1.snapshot1-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.snapshot1-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc4-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc4.snapshot2-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc4.snapshot1-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc3-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc3.snapshot6-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc3.snapshot5-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc3.snapshot4-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc3.snapshot3-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc3.snapshot2-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc3.snapshot1-java lib/logstash/util/plugin_version.rb
logstash-core-1.5.0.rc2-java lib/logstash/util/plugin_version.rb