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