Class: ActiveRecord::ConnectionAdapters::Mysql2RgeoAdapter
Constant Summary
collapse
- SPATIAL_COLUMN_OPTIONS =
{
geometry: {},
geometrycollection: {},
linestring: {},
multilinestring: {},
multipoint: {},
multipolygon: {},
spatial: { type: "geometry" },
point: {},
polygon: {}
}.freeze
- DEFAULT_SRID =
0
Class Method Summary
collapse
Instance Method Summary
collapse
#indexes, #initialize_type_map, #native_database_types, #type_to_sql
Constructor Details
#initialize(connection, logger, connection_options, config) ⇒ Mysql2RgeoAdapter
Returns a new instance of Mysql2RgeoAdapter.
53
54
55
56
57
|
# File 'lib/active_record/connection_adapters/mysql2rgeo_adapter.rb', line 53
def initialize(connection, logger, connection_options, config)
super
@visitor = Arel::Visitors::Mysql2Rgeo.new(self)
end
|
Class Method Details
.spatial_column_options(key) ⇒ Object
63
64
65
|
# File 'lib/active_record/connection_adapters/mysql2rgeo_adapter.rb', line 63
def self.spatial_column_options(key)
SPATIAL_COLUMN_OPTIONS[key]
end
|
Instance Method Details
#adapter_name ⇒ Object
59
60
61
|
# File 'lib/active_record/connection_adapters/mysql2rgeo_adapter.rb', line 59
def adapter_name
"Mysql2Rgeo"
end
|
#default_srid ⇒ Object
67
68
69
|
# File 'lib/active_record/connection_adapters/mysql2rgeo_adapter.rb', line 67
def default_srid
DEFAULT_SRID
end
|
#quote(value) ⇒ Object
75
76
77
78
79
80
81
82
|
# File 'lib/active_record/connection_adapters/mysql2rgeo_adapter.rb', line 75
def quote(value)
dbval = value.try(:value_for_database) || value
if RGeo::Feature::Geometry.check_type(dbval)
"ST_GeomFromWKB(0x#{RGeo::WKRep::WKBGenerator.new(hex_format: true, little_endian: true).generate(dbval)},#{dbval.srid})"
else
super
end
end
|
#supports_spatial? ⇒ Boolean
71
72
73
|
# File 'lib/active_record/connection_adapters/mysql2rgeo_adapter.rb', line 71
def supports_spatial?
!mariadb? && version >= "5.7.6"
end
|