337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
|
# File 'lib/library/version.rb', line 337
def parse(constraint)
case constraint
when Array
op, num = constraint
when /^(.*?)\~$/
op, val = "=~", $1
when /^(.*?)\+$/
op, val = ">=", $1
when /^(.*?)\-$/
op, val = "<", $1
when /^(=~|~>|<=|>=|==|=|<|>)?\s*(\d+(:?[-.]\w+)*)$/
if op = $1
op = '=~' if op == '~>'
op = '==' if op == '='
val = $2.split(/\W+/)
else
op = '=='
val = constraint.split(/\W+/)
end
else
raise ArgumentError
end
return op, Version.new(*val)
end
|