Module: Vers::VersionComparison

Extended by:
VersionComparison
Included in:
VersionComparison
Defined in:
lib/vers/version_comparison.rb

Instance Method Summary collapse

Instance Method Details

#compare_numbers(left, right) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/vers/version_comparison.rb', line 7

def compare_numbers(left, right)
  normalized_left = normalize_number(left)
  normalized_right = normalize_number(right)

  length_comparison = normalized_left.length <=> normalized_right.length
  return length_comparison unless length_comparison.zero?

  normalized_left <=> normalized_right
end

#normalize_number(value) ⇒ Object



17
18
19
20
# File 'lib/vers/version_comparison.rb', line 17

def normalize_number(value)
  normalized = value.to_s.sub(/\A0+/, "")
  normalized.empty? ? "0" : normalized
end

#numeric?(value) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/vers/version_comparison.rb', line 22

def numeric?(value)
  value.match?(/\A\d+\z/)
end