Class: Dependabot::Utils::Elixir::Version
- Inherits:
-
Gem::Version
- Object
- Gem::Version
- Dependabot::Utils::Elixir::Version
- Defined in:
- lib/dependabot/utils/elixir/version.rb
Constant Summary collapse
- VERSION_PATTERN =
Gem::Version::VERSION_PATTERN + '(\+[0-9a-zA-Z\-.]+)?'
Instance Attribute Summary collapse
-
#build_info ⇒ Object
readonly
Returns the value of attribute build_info.
Class Method Summary collapse
Instance Method Summary collapse
- #<=>(other) ⇒ Object
-
#initialize(version) ⇒ Version
constructor
A new instance of Version.
-
#inspect ⇒ Object
:nodoc:.
- #to_s ⇒ Object
Constructor Details
#initialize(version) ⇒ Version
20 21 22 23 24 |
# File 'lib/dependabot/utils/elixir/version.rb', line 20 def initialize(version) @version_string = version.to_s version, @build_info = version.split("+") super end |
Instance Attribute Details
#build_info ⇒ Object (readonly)
Returns the value of attribute build_info.
11 12 13 |
# File 'lib/dependabot/utils/elixir/version.rb', line 11 def build_info @build_info end |
Class Method Details
.correct?(version) ⇒ Boolean
16 17 18 |
# File 'lib/dependabot/utils/elixir/version.rb', line 16 def self.correct?(version) super(version.to_s.split("+").first) end |
Instance Method Details
#<=>(other) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/dependabot/utils/elixir/version.rb', line 34 def <=>(other) version_comparison = super(other) return version_comparison unless version_comparison.zero? unless other.is_a?(Utils::Elixir::Version) return build_info.nil? ? 0 : 1 end # Build information comparison lhsegments = build_info.to_s.split(".").map(&:downcase) rhsegments = other.build_info.to_s.split(".").map(&:downcase) limit = [lhsegments.count, rhsegments.count].min lhs = ["1", *lhsegments.first(limit)].join(".") rhs = ["1", *rhsegments.first(limit)].join(".") local_comparison = Gem::Version.new(lhs) <=> Gem::Version.new(rhs) return local_comparison unless local_comparison.zero? lhsegments.count <=> rhsegments.count end |
#inspect ⇒ Object
:nodoc:
30 31 32 |
# File 'lib/dependabot/utils/elixir/version.rb', line 30 def inspect # :nodoc: "#<#{self.class} #{@version_string}>" end |
#to_s ⇒ Object
26 27 28 |
# File 'lib/dependabot/utils/elixir/version.rb', line 26 def to_s @version_string end |