module SemanticInterval
Constants
- VERSION
Public Class Methods
parse(range)
click to toggle source
# File lib/semantic_interval.rb, line 4 def self.parse(range) parts = range[1..-2].split(',') requirements = [] low_bound = range[0] high_bound = range[-1] low_number = parts[0].strip high_number = parts[1].strip if parts[1] # lowest low_sign = low_bound == '[' ? '>=' : '>' high_sign = high_bound == ']' ? '<=' : '<' # highest if high_number if high_number != low_number requirements << "#{low_sign} #{low_number}" if low_number && !low_number.empty? requirements << "#{high_sign} #{high_number}" if high_number && !high_number.empty? elsif high_number == low_number requirements << "= #{high_number}" end else requirements << "#{low_sign} #{low_number}" if low_number && !low_number.empty? end requirements << '>= 0' if requirements.empty? requirements.join(' ') end