Method: Library::Version::Constraint#parse

Defined in:
lib/library/version.rb

#parse(constraint) ⇒ Object (private)



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 #constraint.split(/\s+/)
  end
  return op, Version.new(*val) #Version::Number.new(*val)
end