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



102
103
104
# File 'lib/arel_extensions.rb', line 102

def self.duration s, expr
  ArelExtensions::Nodes::Duration.new(s.to_s+'i',expr)
end

.falseObject



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

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

.json(*expr) ⇒ Object



90
91
92
93
94
95
96
# File 'lib/arel_extensions.rb', line 90

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

.randObject



82
83
84
# File 'lib/arel_extensions.rb', line 82

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

.shorten(s) ⇒ Object



86
87
88
# File 'lib/arel_extensions.rb', line 86

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

.trueObject



106
107
108
# File 'lib/arel_extensions.rb', line 106

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

.tuple(*v) ⇒ Object



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

def self.tuple *v
  tmp = Arel::Nodes::Grouping.new(nil)
  Arel::Nodes::Grouping.new(v.map{|e| tmp.convert_to_node(e)})
end

.when(condition) ⇒ Object



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

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