Module: RGeo::ActiveRecord

Defined in:
lib/rgeo/active_record.rb,
lib/rgeo/active_record/version.rb,
lib/rgeo/active_record/geometry_mixin.rb,
lib/rgeo/active_record/adapter_test_helper.rb,
lib/rgeo/active_record/ar_factory_settings.rb,
lib/rgeo/active_record/spatial_expressions.rb,
lib/rgeo/active_record/arel_spatial_queries.rb,
lib/rgeo/active_record/common_adapter_elements.rb

Overview

This module contains a set of ActiveRecord extensions for RGeo. Generally, you will not need to interact with the contents of this module directly, unless you are writing a spatial ActiveRecord connection adapter.

Defined Under Namespace

Modules: ActiveRecordBaseFactorySettings, AdapterTestHelper, GeoConnectionAdapters, GeoSchemaDumper, GeoTableDefinitions, GeometryMixin, SpatialExpressions, SpatialToSql Classes: RGeoFactorySettings, SpatialConstantNode, SpatialIndexDefinition, SpatialNamedFunction

Constant Summary collapse

VERSION =
'0.7.1'.freeze
DEFAULT_FACTORY_GENERATOR =

The default factory generator for ActiveRecord::Base.

::Proc.new do |config_|
  if config_.delete(:geographic)
    ::RGeo::Geographic.spherical_factory(config_)
  else
    ::RGeo::Cartesian.preferred_factory(config_)
  end
end
DEFAULT_SPATIAL_COLUMN_CONSTRUCTORS =

Some default column constructors specifications for most spatial databases. Individual adapters may add to or override this list.

{
  :spatial => {:type => 'geometry'}.freeze,
  :geometry => {}.freeze,
  :point => {}.freeze,
  :line_string => {}.freeze,
  :polygon => {}.freeze,
  :geometry_collection => {}.freeze,
  :multi_line_string => {}.freeze,
  :multi_point => {}.freeze,
  :multi_polygon => {}.freeze,
}.freeze

Class Method Summary collapse

Class Method Details

.geometric_type_from_name(name_) ⇒ Object

Returns a feature type module given a string type.



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rgeo/active_record/common_adapter_elements.rb', line 27

def self.geometric_type_from_name(name_)
  case name_.to_s
  when /^geometry/i then ::RGeo::Feature::Geometry
  when /^point/i then ::RGeo::Feature::Point
  when /^linestring/i then ::RGeo::Feature::LineString
  when /^polygon/i then ::RGeo::Feature::Polygon
  when /^geometrycollection/i then ::RGeo::Feature::GeometryCollection
  when /^multipoint/i then ::RGeo::Feature::MultiPoint
  when /^multilinestring/i then ::RGeo::Feature::MultiLineString
  when /^multipolygon/i then ::RGeo::Feature::MultiPolygon
  else nil
  end
end

.spatial_expressions_supported?Boolean

Returns true if spatial expressions (i.e. the methods in the SpatialExpressions module) are supported. Generally, this is true if Arel is at version 2.1 or later.

Returns:

  • (Boolean)


7
8
9
# File 'lib/rgeo/active_record/spatial_expressions.rb', line 7

def self.spatial_expressions_supported?
  defined?(::Arel::Nodes::NamedFunction)
end