module GeoDistanceArel::Adapters::PostgreSQL

Public Instance Methods

acos_of(attr) click to toggle source
# File lib/geodistance_arel/adapters/postgresql.rb, line 24
def acos_of(attr)
  Arel::Nodes::NamedFunction.new('ACOS', [attr])
end
addition(*attrs) click to toggle source
# File lib/geodistance_arel/adapters/postgresql.rb, line 44
def addition(*attrs)
  Arel::Nodes::Addition.new(
    *attrs.in_groups(2, false).map do |group|
      if group.size > 1
        addition(*group)
      else
        group
      end
    end.flatten
  )
end
cos_of(attr) click to toggle source
# File lib/geodistance_arel/adapters/postgresql.rb, line 16
def cos_of(attr)
  Arel::Nodes::NamedFunction.new('COS', [attr])
end
least_of(attr) click to toggle source
# File lib/geodistance_arel/adapters/postgresql.rb, line 28
def least_of(attr)
  Arel::Nodes::NamedFunction.new('least', [1, attr])
end
literal_of(attr) click to toggle source
# File lib/geodistance_arel/adapters/postgresql.rb, line 8
def literal_of(attr)
  Arel::Nodes::SqlLiteral.new(attr.to_s)
end
multiply(*attrs) click to toggle source
# File lib/geodistance_arel/adapters/postgresql.rb, line 32
def multiply(*attrs)
  Arel::Nodes::Multiplication.new(
    *attrs.in_groups(2, false).map do |group|
      if group.size > 1
        multiply(*group)
      else
        group
      end
    end.flatten
  )
end
radians_of(attr) click to toggle source
# File lib/geodistance_arel/adapters/postgresql.rb, line 12
def radians_of(attr)
  Arel::Nodes::NamedFunction.new('RADIANS', [attr])
end
sin_of(attr) click to toggle source
# File lib/geodistance_arel/adapters/postgresql.rb, line 20
def sin_of(attr)
  Arel::Nodes::NamedFunction.new('SIN', [attr])
end