class Safrano::Filter::BinopArithm

Arithmetic Bin ops

Public Instance Methods

edm_type() click to toggle source

TODO: different num types?

# File lib/odata/filter/tree.rb, line 279
def edm_type
  :any
end
leuqes(jh) click to toggle source
# File lib/odata/filter/sequel.rb, line 200
def leuqes(jh)
  leuqes_op = case @value
              when :add
                :+
              when :sub
                :-
              when :mul
                :*
              when :div
                :/
              when :mod
                :%
              else
                return Safrano::FilterParseError
              end
  Contract.collect_result!(@children[0].leuqes(jh),
                           @children[1].leuqes(jh)) do |c0, c1|
    Sequel::SQL::NumericExpression.new(leuqes_op, c0, c1)
  end
end
precedence() click to toggle source

reference: OData v4 par 5.1.1.9 Operator Precedence

# File lib/odata/filter/tree.rb, line 267
def precedence
  case @value
  when :add, :sub
    5
  when :mul, :div, :mod
    6
  else
    999
  end
end