arbitrary functions

This commit is contained in:
Loic Nageleisen 2017-03-03 14:53:28 +01:00
parent 892b21eaf8
commit 448a342d5f
2 changed files with 13 additions and 0 deletions

View file

@ -218,6 +218,11 @@ module Rebel::SQL
## Functions
def function(name, *args)
raw("#{name}(#{names_or_values(*args)})")
end
alias fn function
def count(*n)
raw("COUNT(#{names(*n)})")
end
@ -282,6 +287,10 @@ module Rebel::SQL
item.is_a?(Symbol) ? name(item) : value(item)
end
def names_or_values(*items)
list(items.map { |v| name_or_value(v) })
end
def equal(l, r)
"#{name_or_value(l)} = #{name_or_value(r)}"
end