module Arel
Public Class Methods
column_of(table_name, column_name)
click to toggle source
# File lib/arel_extensions.rb, line 94 def self.column_of table_name, column_name ArelExtensions.column_of(table_name, column_name) end
duration(s, expr)
click to toggle source
# File lib/arel_extensions.rb, line 98 def self.duration s, expr ArelExtensions::Nodes::Duration.new("#{s}i", expr) end
false()
click to toggle source
The FALSE pseudo literal.
# File lib/arel_extensions.rb, line 103 def self.false Arel::Nodes::Equality.new(1, 0) end
grouping(*v)
click to toggle source
# File lib/arel_extensions.rb, line 107 def self.grouping *v Arel::Nodes::Grouping.new(*v) end
json(*expr)
click to toggle source
# File lib/arel_extensions.rb, line 111 def self.json *expr ArelExtensions::Nodes::Json.new( if expr.length == 1 expr.first else expr end ) end
null()
click to toggle source
The NULL literal.
# File lib/arel_extensions.rb, line 122 def self.null Arel.quoted(nil) end
quoted(*args)
click to toggle source
# File lib/arel_extensions.rb, line 126 def self.quoted *args Arel::Nodes.build_quoted(*args) end
rand()
click to toggle source
# File lib/arel_extensions.rb, line 130 def self.rand ArelExtensions::Nodes::Rand.new end
shorten(s)
click to toggle source
# File lib/arel_extensions.rb, line 134 def self.shorten s Base64.urlsafe_encode64(Digest::MD5.new.digest(s)).tr('=', '').tr('-', '_') end
true()
click to toggle source
The TRUE pseudo literal.
# File lib/arel_extensions.rb, line 139 def self.true Arel::Nodes::Equality.new(1, 1) end
tuple(*v)
click to toggle source
# File lib/arel_extensions.rb, line 143 def self.tuple *v tmp = Arel.grouping(nil) Arel.grouping v.map{|e| tmp.convert_to_node(e)} end
when(condition)
click to toggle source
For instance
“‘ Arel.when(at[field]
.is_null).then(0).else(1) “`
# File lib/arel_extensions.rb, line 153 def self.when condition ArelExtensions::Nodes::Case.new.when(condition) end