class SemanticVersionSegment

Attributes

is_post_release[RW]
is_pre_release[RW]
normalized_group_string[RW]
original_group_string[RW]

Public Class Methods

new(group_string) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 229
def initialize(group_string)
  @is_post_release = false
  @is_pre_release = false

  @version_string = group_string
  @original_group_string = group_string
  # use x as unique placeholder
  group_string_ucase = group_string.to_s.gsub(/\*/, "x").upcase

  if @@group_suffixes.key?(group_string_ucase)
    value = @@group_suffixes[group_string_ucase]
    @is_post_release = value > 0
    @is_pre_release = value < 0
    @normalized_group_string = @@group_suffixes[group_string_ucase].to_s
  else
    @normalized_group_string = group_string_ucase
  end
end

Public Instance Methods

!=(other_semver) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 292
def !=(other_semver)
  return !(self == other_semver)
end
<(other_semver) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 272
def <(other_semver)
  compare(self.normalized_group_string, other_semver.normalized_group_string, true, false, :<)
end
<=(other_semver) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 284
def <=(other_semver)
  self == other_semver || compare(self.normalized_group_string, other_semver.normalized_group_string, true, false, :<)
end
==(other_semver) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 288
def ==(other_semver)
  self.normalized_group_string == other_semver.normalized_group_string
end
>(other_semver) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 276
def >(other_semver)
  compare(self.normalized_group_string, other_semver.normalized_group_string, false, true, :>)
end
>=(other_semver) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 280
def >=(other_semver)
  self == other_semver || compare(self.normalized_group_string, other_semver.normalized_group_string, false, true, :>)
end
compare(semver_a, semver_b, ret_anr_bnonr, ret_anonr_bnr, comparator) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 248
def compare(semver_a, semver_b, ret_anr_bnonr, ret_anonr_bnr, comparator)
  if semver_a.number? && semver_b.number?
    semver_a.to_i.send(comparator, semver_b.to_i)
  elsif semver_a.number? && !semver_b.number?
    if semver_b == "X"
      true
    else
      ret_anr_bnonr
    end
  elsif !semver_a.number? && semver_b.number?
    if semver_a == "X"
      true
    else
      ret_anonr_bnr
    end
  else # !semantic_version_b.group_string.is_number? && !semantic_version_agrous_string.is_number?
    if semver_a == "X" || semver_b == "X"
      true
    else
      semver_a.send(comparator, semver_b)
    end
  end
end
diff(other_semver, abs = true) click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 312
def diff(other_semver, abs = true)

  if other_semver.normalized_group_string == "X" || self.normalized_group_string == "X"
    "0"
  elsif self.normalized_group_string.number? && other_semver.normalized_group_string.number?
    ret = self.normalized_group_string.to_i - other_semver.normalized_group_string.to_i
    (abs && ret < 0) ? -ret : ret
  else
    nil
  end
end
is_number?() click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 304
def is_number?
  self.normalized_group_string.number?
end
is_zero?() click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 308
def is_zero?
  is_number? ? self.normalized_group_string.to_i == 0 : false
end
to_normalized_s() click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 296
def to_normalized_s
  @normalized_group_string
end
to_s() click to toggle source
# File lib/semver_dialects/semantic_version/semantic_version.rb, line 300
def to_s
  @version_string
end