Module: Podrpt::VersionComparer
- Defined in:
- lib/podrpt/version_comparer.rb
Class Method Summary collapse
Class Method Details
.compare(a, b) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/podrpt/version_comparer.rb', line 4 def self.compare(a, b) ta, tb = tokenize(a), tokenize(b) [ta.length, tb.length].max.times do |i| va, vb = ta[i] || 0, tb[i] || 0 if va.is_a?(vb.class) next if va == vb return va > vb ? 1 : -1 else return va.is_a?(Integer) ? 1 : -1 end end 0 end |
.tokenize(version) ⇒ Object
3 |
# File 'lib/podrpt/version_comparer.rb', line 3 def self.tokenize(version); (version || '').to_s.scan(/[A-Za-z]+|\d+/).map { |t| t.match?(/\d+/) ? t.to_i : t.downcase }; end |