Class: Arel::Visitors::Mysql2Rgeo

Inherits:
MySQLSuperclass
  • Object
show all
Includes:
BindVisitor, RGeo::ActiveRecord::SpatialToSql
Defined in:
lib/active_record/connection_adapters/mysql2rgeo/arel_tosql.rb

Overview

:nodoc:

Constant Summary collapse

FUNC_MAP =
{
  "st_wkttosql" => "ST_GeomFromText",
  "st_wkbtosql" => "ST_GeomFromWKB",
  "st_length" => "ST_Length"
}.freeze

Instance Method Summary collapse

Instance Method Details

#st_func(standard_name) ⇒ Object



23
24
25
# File 'lib/active_record/connection_adapters/mysql2rgeo/arel_tosql.rb', line 23

def st_func(standard_name)
  FUNC_MAP[standard_name.downcase] || standard_name
end

#visit_RGeo_ActiveRecord_SpatialNamedFunction(node, collector) ⇒ Object



31
32
33
# File 'lib/active_record/connection_adapters/mysql2rgeo/arel_tosql.rb', line 31

def visit_RGeo_ActiveRecord_SpatialNamedFunction(node, collector)
  aggregate(st_func(node.name), node, collector)
end

#visit_String(node, collector) ⇒ Object



27
28
29
# File 'lib/active_record/connection_adapters/mysql2rgeo/arel_tosql.rb', line 27

def visit_String(node, collector)
  collector << "#{st_func('ST_WKTToSQL')}(#{quote(node)})"
end