v1 = '0.3.2' v2 = '0.10.1' a1 = v1.split('.').map{|v| v.to_i} a2 = v2.split('.').map{|v| v.to_i} (a1 <=> a2) < 0 # v1 < v2 => true (a1 <=> a2) > 0 # v1 > v2 => false # or Gem::Version.new('0.3.2') < Gem::Version.new('0.10.1') => true Gem::Version.new('0.3.0') == Gem::Version.new('0.3') => true