Sha256: 102b8f49a284c6d65e5984ec8a800d794b5438632bd79d7bbd1973e5fa4920cd
Contents?: true
Size: 1.68 KB
Versions: 3
Compression:
Stored size: 1.68 KB
Contents
# encoding: utf-8 require "pathname" require "semantic" module Desi class LocalInstall class Release def self.all_in(workdir) Dir[workdir.join('*')]. select {|subdir| File.directory?(subdir) && File.basename(subdir) =~ /^elasticsearch\-\d+\.\d+\.\d+/ }. map {|dirname| new(dirname, workdir) } end def initialize(dirname, workdir) @dirname = Pathname.new(dirname) @workdir = workdir end def name @name ||= File.basename(@dirname) end def current? current_symlink? && current_symlink.realpath == @dirname end def version @version ||= Semantic::Version.new(version_number) end def with_version?(other_version) version == Semantic::Version.new(other_version) end def to_s current_mark = current? ? '*' : '-' " #{current_mark} #{name} (#{@dirname})" end def ==(other) other.version.to_s == version.to_s end def <=>(other) name <=> other.name end def pre_one_zero? @pre_one_zero ||= (version < Semantic::Version.new("1.0.0-alpha")) end def to_path @dirname.to_path end private def current_symlink @current_symlink ||= Pathname(@workdir).join('current') end def current_symlink? current_symlink.exist? end # Ugly hack to get around elasticsearch's flakey semver naming # (e.g. `1.4.0.Beta1` instead of `1.4.0-beta1`) def version_number /^elasticsearch\-(?<version>.*)$/.match(name.to_s)[:version]. sub(/\.(alpha|beta)/i, '-\1') end end # Release end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
desi-0.7.2 | lib/desi/local_install/release.rb |
desi-0.7.1 | lib/desi/local_install/release.rb |
desi-0.7.0 | lib/desi/local_install/release.rb |