Module: Equation::Comparison1

Defined in:
lib/equation_grammar.rb

Instance Method Summary collapse

Instance Method Details

#value(ctx:) ⇒ Object



374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
# File 'lib/equation_grammar.rb', line 374

def value(ctx:)
  case operator.text_value
    when 'in'
      return rhs.value(ctx: ctx).include?(lhs.value(ctx: ctx))
    when '<='
      return lhs.value(ctx: ctx) <= rhs.value(ctx: ctx)
    when '<'
      return lhs.value(ctx: ctx) < rhs.value(ctx: ctx)
    when '>='
      return lhs.value(ctx: ctx) >= rhs.value(ctx: ctx)
    when '>'
      return lhs.value(ctx: ctx) > rhs.value(ctx: ctx)
    when '=='
      return lhs.value(ctx: ctx) == rhs.value(ctx: ctx)
    when '!='
      return lhs.value(ctx: ctx) != rhs.value(ctx: ctx)
    when '=~'
      expression = Regexp.new rhs.value(ctx: ctx)
      return !(lhs.value(ctx: ctx) =~ expression).nil?
  end
end