Normalize best-effort vs strict operator usage

This commit is contained in:
Loic Nageleisen 2017-11-22 17:22:27 +01:00
parent 354f4a6860
commit 6ffa4e88f0
3 changed files with 76 additions and 22 deletions

View file

@ -117,26 +117,22 @@ module Rebel
alias | or
def eq(n)
case n
when nil
sql.raw("#{self} IS NULL")
else
sql.raw("#{self} = #{sql.name_or_value(n)}")
end
sql.raw("#{self} = #{sql.name_or_value(n)}")
end
alias == eq
alias is eq
def is(n)
sql.raw("#{self} IS #{sql.name_or_value(n)}")
end
def ne(n)
case n
when nil
sql.raw("#{self} IS NOT NULL")
else
sql.raw("#{self} != #{sql.name_or_value(n)}")
end
sql.raw("#{self} != #{sql.name_or_value(n)}")
end
alias != ne
alias is_not ne
def is_not(n)
sql.raw("#{self} IS NOT #{sql.name_or_value(n)}")
end
def lt(n)
sql.raw("#{self} < #{sql.name_or_value(n)}")
@ -343,6 +339,8 @@ module Rebel
case right
when Array
name(left).in(*right)
when nil
name(left).is(name_or_value(right))
else
name(left).eq(name_or_value(right))
end