Module: Arel

Defined in:
lib/arel_extensions.rb

Defined Under Namespace

Classes: InsertManager, SelectManager, Table

Class Method Summary collapse

Class Method Details

.duration(s, expr) ⇒ Object



115
116
117
# File 'lib/arel_extensions.rb', line 115

def self.duration s, expr
  ArelExtensions::Nodes::Duration.new("#{s}i", expr)
end

.falseObject

The FALSE pseudo literal.



129
130
131
# File 'lib/arel_extensions.rb', line 129

def self.false
  Arel::Nodes::Equality.new(1, 0)
end

.grouping(*v) ⇒ Object



119
120
121
# File 'lib/arel_extensions.rb', line 119

def self.grouping *v
  Arel::Nodes::Grouping.new(*v)
end

.json(*expr) ⇒ Object



101
102
103
104
105
106
107
108
109
# File 'lib/arel_extensions.rb', line 101

def self.json *expr
  ArelExtensions::Nodes::Json.new(
    if expr.length == 1
      expr.first
    else
      expr
    end
  )
end

.nullObject

The NULL literal.



134
135
136
# File 'lib/arel_extensions.rb', line 134

def self.null
  Arel::Nodes.build_quoted(nil)
end

.randObject



93
94
95
# File 'lib/arel_extensions.rb', line 93

def self.rand
  ArelExtensions::Nodes::Rand.new
end

.shorten(s) ⇒ Object



97
98
99
# File 'lib/arel_extensions.rb', line 97

def self.shorten s
  Base64.urlsafe_encode64(Digest::MD5.new.digest(s)).tr('=', '').tr('-', '_')
end

.trueObject

The TRUE pseudo literal.



124
125
126
# File 'lib/arel_extensions.rb', line 124

def self.true
  Arel::Nodes::Equality.new(1, 1)
end

.tuple(*v) ⇒ Object



138
139
140
141
# File 'lib/arel_extensions.rb', line 138

def self.tuple *v
  tmp = Arel.grouping(nil)
  Arel.grouping v.map{|e| tmp.convert_to_node(e)}
end

.when(condition) ⇒ Object



111
112
113
# File 'lib/arel_extensions.rb', line 111

def self.when condition
  ArelExtensions::Nodes::Case.new.when(condition)
end