activerecord-postgis-adapter 3.1.5 → 4.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/active_record/connection_adapters/postgis/create_connection.rb +3 -2
- data/lib/active_record/connection_adapters/postgis/oid/spatial.rb +5 -12
- data/lib/active_record/connection_adapters/postgis/postgis_database_tasks.rb +2 -2
- data/lib/active_record/connection_adapters/postgis/schema_statements.rb +28 -25
- data/lib/active_record/connection_adapters/postgis/spatial_column.rb +10 -19
- data/lib/active_record/connection_adapters/postgis/version.rb +1 -1
- data/lib/active_record/connection_adapters/postgis_adapter.rb +10 -1
- metadata +13 -12
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 380360884a0395acaf0c5aef06a7629723fb626c
         | 
| 4 | 
            +
              data.tar.gz: 946d727f1d802b68fdaa9cc699ddab13cca21366
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1b6e68a52ef70938e8b8299938049262c6acd45d1fe3df802f38f69d225034ee24a3ef66a19d8d4b2082dbea77fe0f804d8ac2b2d4b021b088b7ec2832b2e55e
         | 
| 7 | 
            +
              data.tar.gz: 1fe70438744374e09787d1c9409976b85887eae506381384e3cc72b6b34de01314194106ead29b942f163c0a61b74e479011803ac4d138566f419812e4d24018
         | 
| @@ -19,8 +19,8 @@ module ActiveRecord  # :nodoc: | |
| 19 19 |  | 
| 20 20 | 
             
                  # Based on the default <tt>postgresql_connection</tt> definition from ActiveRecord.
         | 
| 21 21 | 
             
                  # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
         | 
| 22 | 
            +
                  # FULL REPLACEMENT because we need to create a different class.
         | 
| 22 23 | 
             
                  def postgis_connection(config)
         | 
| 23 | 
            -
                    # FULL REPLACEMENT because we need to create a different class.
         | 
| 24 24 | 
             
                    conn_params = config.symbolize_keys
         | 
| 25 25 |  | 
| 26 26 | 
             
                    conn_params.delete_if { |_, v| v.nil? }
         | 
| @@ -30,7 +30,8 @@ module ActiveRecord  # :nodoc: | |
| 30 30 | 
             
                    conn_params[:dbname] = conn_params.delete(:database) if conn_params[:database]
         | 
| 31 31 |  | 
| 32 32 | 
             
                    # Forward only valid config params to PGconn.connect.
         | 
| 33 | 
            -
                     | 
| 33 | 
            +
                    valid_conn_param_keys = PGconn.conndefaults_hash.keys + [:requiressl]
         | 
| 34 | 
            +
                    conn_params.slice!(*valid_conn_param_keys)
         | 
| 34 35 |  | 
| 35 36 | 
             
                    # The postgres drivers don't allow the creation of an unconnected PGconn object,
         | 
| 36 37 | 
             
                    # so just pass a nil connection object for the time being.
         | 
| @@ -54,7 +54,7 @@ module ActiveRecord | |
| 54 54 | 
             
                            has_m:    @has_m,
         | 
| 55 55 | 
             
                            has_z:    @has_z,
         | 
| 56 56 | 
             
                            sql_type: @sql_type,
         | 
| 57 | 
            -
                            srid:     @srid | 
| 57 | 
            +
                            srid:     @srid
         | 
| 58 58 | 
             
                          )
         | 
| 59 59 | 
             
                      end
         | 
| 60 60 |  | 
| @@ -71,30 +71,23 @@ module ActiveRecord | |
| 71 71 | 
             
                      end
         | 
| 72 72 |  | 
| 73 73 | 
             
                      # support setting an RGeo object or a WKT string
         | 
| 74 | 
            -
                      def  | 
| 74 | 
            +
                      def serialize(value)
         | 
| 75 75 | 
             
                        return if value.nil?
         | 
| 76 | 
            -
                        geo_value =  | 
| 76 | 
            +
                        geo_value = cast_value(value)
         | 
| 77 77 |  | 
| 78 78 | 
             
                        # TODO - only valid types should be allowed
         | 
| 79 79 | 
             
                        # e.g. linestring is not valid for point column
         | 
| 80 80 | 
             
                        # raise "maybe should raise" unless RGeo::Feature::Geometry.check_type(geo_value)
         | 
| 81 81 |  | 
| 82 82 | 
             
                        RGeo::WKRep::WKBGenerator.new(hex_format: true, type_format: :ewkb, emit_ewkb_srid: true)
         | 
| 83 | 
            -
             | 
| 83 | 
            +
                                                 .generate(geo_value)
         | 
| 84 84 | 
             
                      end
         | 
| 85 85 |  | 
| 86 86 | 
             
                      private
         | 
| 87 87 |  | 
| 88 | 
            -
                      def type_cast(value)
         | 
| 89 | 
            -
                        return if value.nil?
         | 
| 90 | 
            -
                        String === value ? parse_wkt(value) : value
         | 
| 91 | 
            -
                      end
         | 
| 92 | 
            -
             | 
| 93 88 | 
             
                      def cast_value(value)
         | 
| 94 89 | 
             
                        return if value.nil?
         | 
| 95 | 
            -
                         | 
| 96 | 
            -
                      rescue RGeo::Error::ParseError
         | 
| 97 | 
            -
                        nil
         | 
| 90 | 
            +
                        String === value ? parse_wkt(value) : value
         | 
| 98 91 | 
             
                      end
         | 
| 99 92 |  | 
| 100 93 | 
             
                      # convert WKT string into RGeo object
         | 
| @@ -38,7 +38,7 @@ module ActiveRecord  # :nodoc: | |
| 38 38 | 
             
                        "database"           => "postgres",
         | 
| 39 39 | 
             
                        "password"           => su_password,
         | 
| 40 40 | 
             
                        "schema_search_path" => "public",
         | 
| 41 | 
            -
                        "username"           => su_username | 
| 41 | 
            +
                        "username"           => su_username
         | 
| 42 42 | 
             
                      ))
         | 
| 43 43 | 
             
                    end
         | 
| 44 44 |  | 
| @@ -46,7 +46,7 @@ module ActiveRecord  # :nodoc: | |
| 46 46 | 
             
                      establish_connection(configuration.merge(
         | 
| 47 47 | 
             
                        "password"           => su_password,
         | 
| 48 48 | 
             
                        "schema_search_path" => "public",
         | 
| 49 | 
            -
                        "username"           => su_username | 
| 49 | 
            +
                        "username"           => su_username
         | 
| 50 50 | 
             
                      ))
         | 
| 51 51 | 
             
                    end
         | 
| 52 52 |  | 
| @@ -6,36 +6,39 @@ module ActiveRecord | |
| 6 6 | 
             
                    # pass table_name to #new_column
         | 
| 7 7 | 
             
                    def columns(table_name)
         | 
| 8 8 | 
             
                      # Limit, precision, and scale are all handled by the superclass.
         | 
| 9 | 
            -
                      column_definitions(table_name).map do |column_name, type, default, notnull, oid, fmod|
         | 
| 10 | 
            -
                        oid =  | 
| 11 | 
            -
                         | 
| 9 | 
            +
                      column_definitions(table_name).map do |column_name, type, default, notnull, oid, fmod, collation|
         | 
| 10 | 
            +
                        oid = oid.to_i
         | 
| 11 | 
            +
                        fmod = fmod.to_i
         | 
| 12 | 
            +
                        type_metadata = fetch_type_metadata(column_name, type, oid, fmod)
         | 
| 13 | 
            +
                        cast_type = get_oid_type(oid.to_i, fmod.to_i, column_name, type)
         | 
| 14 | 
            +
                        default_value = extract_value_from_default(default)
         | 
| 15 | 
            +
             | 
| 12 16 | 
             
                        default_function = extract_default_function(default_value, default)
         | 
| 13 | 
            -
                         | 
| 14 | 
            -
                        new_column(table_name, column_name, default_value, oid, type, !notnull, default_function)
         | 
| 17 | 
            +
                        new_column(table_name, column_name, default_value, cast_type, type_metadata, !notnull, default_function, collation)
         | 
| 15 18 | 
             
                      end
         | 
| 16 19 | 
             
                    end
         | 
| 17 20 |  | 
| 18 21 | 
             
                    # override
         | 
| 19 | 
            -
                    def new_column(table_name, column_name, default, cast_type,  | 
| 22 | 
            +
                    def new_column(table_name, column_name, default, cast_type, sql_type_metadata = nil, null = true, default_function = nil, collation = nil)
         | 
| 20 23 | 
             
                      # JDBC gets true/false in Rails 4, where other platforms get 't'/'f' strings.
         | 
| 21 24 | 
             
                      if null.is_a?(String)
         | 
| 22 25 | 
             
                        null = (null == "t")
         | 
| 23 26 | 
             
                      end
         | 
| 24 27 |  | 
| 25 | 
            -
                      column_info = spatial_column_info(table_name).get(column_name, sql_type)
         | 
| 28 | 
            +
                      column_info = spatial_column_info(table_name).get(column_name, sql_type_metadata.sql_type)
         | 
| 26 29 |  | 
| 27 | 
            -
                      SpatialColumn.new( | 
| 28 | 
            -
                                        column_name,
         | 
| 30 | 
            +
                      SpatialColumn.new(column_name,
         | 
| 29 31 | 
             
                                        default,
         | 
| 30 | 
            -
                                         | 
| 31 | 
            -
                                        sql_type,
         | 
| 32 | 
            +
                                        sql_type_metadata,
         | 
| 32 33 | 
             
                                        null,
         | 
| 33 34 | 
             
                                        default_function,
         | 
| 35 | 
            +
                                        collation,
         | 
| 36 | 
            +
                                        cast_type,
         | 
| 34 37 | 
             
                                        column_info)
         | 
| 35 38 | 
             
                    end
         | 
| 36 39 |  | 
| 37 40 | 
             
                    # override
         | 
| 38 | 
            -
                    # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb# | 
| 41 | 
            +
                    # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb#L583
         | 
| 39 42 | 
             
                    #
         | 
| 40 43 | 
             
                    # returns Postgresql sql type string
         | 
| 41 44 | 
             
                    # examples:
         | 
| @@ -47,7 +50,7 @@ module ActiveRecord | |
| 47 50 | 
             
                    #
         | 
| 48 51 | 
             
                    # type_to_sql(:geography, "Point,4326")
         | 
| 49 52 | 
             
                    # => "geography(Point,4326)"
         | 
| 50 | 
            -
                    def type_to_sql(type, limit = nil, precision = nil, scale = nil)
         | 
| 53 | 
            +
                    def type_to_sql(type, limit = nil, precision = nil, scale = nil, array = nil)
         | 
| 51 54 | 
             
                      case type
         | 
| 52 55 | 
             
                      when :geometry, :geography
         | 
| 53 56 | 
             
                        "#{type}(#{limit})"
         | 
| @@ -60,22 +63,22 @@ module ActiveRecord | |
| 60 63 | 
             
                    def native_database_types
         | 
| 61 64 | 
             
                      # Add spatial types
         | 
| 62 65 | 
             
                      super.merge(
         | 
| 63 | 
            -
                        geography:           "geography",
         | 
| 64 | 
            -
                        geometry:            "geometry",
         | 
| 65 | 
            -
                        geometry_collection: "geometry_collection",
         | 
| 66 | 
            -
                        line_string:         "line_string",
         | 
| 67 | 
            -
                        multi_line_string:   "multi_line_string",
         | 
| 68 | 
            -
                        multi_point:         "multi_point",
         | 
| 69 | 
            -
                        multi_polygon:       "multi_polygon",
         | 
| 70 | 
            -
                        spatial:             "geometry",
         | 
| 71 | 
            -
                        st_point:            "st_point",
         | 
| 72 | 
            -
                        st_polygon:          "st_polygon" | 
| 66 | 
            +
                        geography:           { name: "geography" },
         | 
| 67 | 
            +
                        geometry:            { name: "geometry" },
         | 
| 68 | 
            +
                        geometry_collection: { name: "geometry_collection" },
         | 
| 69 | 
            +
                        line_string:         { name: "line_string" },
         | 
| 70 | 
            +
                        multi_line_string:   { name: "multi_line_string" },
         | 
| 71 | 
            +
                        multi_point:         { name: "multi_point" },
         | 
| 72 | 
            +
                        multi_polygon:       { name: "multi_polygon" },
         | 
| 73 | 
            +
                        spatial:             { name: "geometry" },
         | 
| 74 | 
            +
                        st_point:            { name: "st_point" },
         | 
| 75 | 
            +
                        st_polygon:          { name: "st_polygon" }
         | 
| 73 76 | 
             
                      )
         | 
| 74 77 | 
             
                    end
         | 
| 75 78 |  | 
| 76 79 | 
             
                    # override
         | 
| 77 | 
            -
                    def create_table_definition(name, temporary, options, as = nil)
         | 
| 78 | 
            -
                      PostGIS::TableDefinition.new( | 
| 80 | 
            +
                    def create_table_definition(name, temporary = false, options = nil, as = nil)
         | 
| 81 | 
            +
                      PostGIS::TableDefinition.new(name, temporary, options, as)
         | 
| 79 82 | 
             
                    end
         | 
| 80 83 |  | 
| 81 84 | 
             
                    # memoize hash of column infos for tables
         | 
| @@ -8,9 +8,9 @@ module ActiveRecord  # :nodoc: | |
| 8 8 | 
             
                    # cast_type example classes:
         | 
| 9 9 | 
             
                    #   OID::Spatial
         | 
| 10 10 | 
             
                    #   OID::Integer
         | 
| 11 | 
            -
                    def initialize( | 
| 12 | 
            -
                      @ | 
| 13 | 
            -
                      @geographic = !!(sql_type =~ /geography\(/i)
         | 
| 11 | 
            +
                    def initialize(name, default, sql_type_metadata = nil, null = true, default_function = nil, collation = nil, cast_type = nil, opts = nil)
         | 
| 12 | 
            +
                      @cast_type = cast_type
         | 
| 13 | 
            +
                      @geographic = !!(sql_type_metadata.sql_type =~ /geography\(/i)
         | 
| 14 14 | 
             
                      if opts
         | 
| 15 15 | 
             
                        # This case comes from an entry in the geometry_columns table
         | 
| 16 16 | 
             
                        set_geometric_type_from_name(opts[:type])
         | 
| @@ -21,16 +21,18 @@ module ActiveRecord  # :nodoc: | |
| 21 21 | 
             
                        # Geographic type information is embedded in the SQL type
         | 
| 22 22 | 
             
                        @srid = 4326
         | 
| 23 23 | 
             
                        @has_z = @has_m = false
         | 
| 24 | 
            -
                        build_from_sql_type(sql_type)
         | 
| 24 | 
            +
                        build_from_sql_type(sql_type_metadata.sql_type)
         | 
| 25 25 | 
             
                      elsif sql_type =~ /geography|geometry|point|linestring|polygon/i
         | 
| 26 | 
            +
                        build_from_sql_type(sql_type_metadata.sql_type)
         | 
| 27 | 
            +
                      elsif sql_type_metadata.sql_type =~ /geography|geometry|point|linestring|polygon/i
         | 
| 26 28 | 
             
                        # A geometry column with no geometry_columns entry.
         | 
| 27 29 | 
             
                        # @geometric_type = geo_type_from_sql_type(sql_type)
         | 
| 28 | 
            -
                        build_from_sql_type(sql_type)
         | 
| 30 | 
            +
                        build_from_sql_type(sql_type_metadata.sql_type)
         | 
| 29 31 | 
             
                      end
         | 
| 30 | 
            -
                      super(name, default,  | 
| 32 | 
            +
                      super(name, default, sql_type_metadata, null, default_function, collation)
         | 
| 31 33 | 
             
                      if spatial?
         | 
| 32 34 | 
             
                        if @srid
         | 
| 33 | 
            -
                          @limit = { srid: @srid, type:  | 
| 35 | 
            +
                          @limit = { srid: @srid, type: geometric_type.type_name.underscore }
         | 
| 34 36 | 
             
                          @limit[:has_z] = true if @has_z
         | 
| 35 37 | 
             
                          @limit[:has_m] = true if @has_m
         | 
| 36 38 | 
             
                          @limit[:geographic] = true if @geographic
         | 
| @@ -57,7 +59,7 @@ module ActiveRecord  # :nodoc: | |
| 57 59 | 
             
                    end
         | 
| 58 60 |  | 
| 59 61 | 
             
                    def spatial?
         | 
| 60 | 
            -
                      cast_type.respond_to?(:spatial?) && cast_type.spatial?
         | 
| 62 | 
            +
                      @cast_type.respond_to?(:spatial?) && @cast_type.spatial?
         | 
| 61 63 | 
             
                    end
         | 
| 62 64 |  | 
| 63 65 | 
             
                    private
         | 
| @@ -70,17 +72,6 @@ module ActiveRecord  # :nodoc: | |
| 70 72 | 
             
                      geo_type, @srid, @has_z, @has_m = OID::Spatial.parse_sql_type(sql_type)
         | 
| 71 73 | 
             
                      set_geometric_type_from_name(geo_type)
         | 
| 72 74 | 
             
                    end
         | 
| 73 | 
            -
             | 
| 74 | 
            -
                    def to_type_name(geometric_type)
         | 
| 75 | 
            -
                      name = geometric_type.type_name.underscore
         | 
| 76 | 
            -
                      if name == "point"
         | 
| 77 | 
            -
                        "st_point"
         | 
| 78 | 
            -
                      elsif name == "polygon"
         | 
| 79 | 
            -
                        "st_polygon"
         | 
| 80 | 
            -
                      else
         | 
| 81 | 
            -
                        name
         | 
| 82 | 
            -
                      end
         | 
| 83 | 
            -
                    end
         | 
| 84 75 | 
             
                  end
         | 
| 85 76 | 
             
                end
         | 
| 86 77 | 
             
              end
         | 
| @@ -47,9 +47,18 @@ module ActiveRecord | |
| 47 47 | 
             
                  # http://postgis.17.x6.nabble.com/Default-SRID-td5001115.html
         | 
| 48 48 | 
             
                  DEFAULT_SRID = 0
         | 
| 49 49 |  | 
| 50 | 
            -
                  def initialize(*args)
         | 
| 50 | 
            +
                  # def initialize(*args)
         | 
| 51 | 
            +
                  def initialize(connection, logger, connection_parameters, config)
         | 
| 51 52 | 
             
                    super
         | 
| 53 | 
            +
             | 
| 52 54 | 
             
                    @visitor = Arel::Visitors::PostGIS.new(self)
         | 
| 55 | 
            +
                    # copy from https://github.com/rails/rails/blob/6ece7df8d80c6d93db43878fa4c0278a0204072c/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L199
         | 
| 56 | 
            +
                    if self.class.type_cast_config_to_boolean(config.fetch(:prepared_statements) { true })
         | 
| 57 | 
            +
                      @prepared_statements = true
         | 
| 58 | 
            +
                      @visitor.extend(DetermineIfPreparableVisitor)
         | 
| 59 | 
            +
                    else
         | 
| 60 | 
            +
                      @prepared_statements = false
         | 
| 61 | 
            +
                    end
         | 
| 53 62 | 
             
                  end
         | 
| 54 63 |  | 
| 55 64 | 
             
                  def adapter_name
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: activerecord-postgis-adapter
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 4.0.0.beta1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Daniel Azuma, Tee Parham
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2016-02-17 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activerecord
         | 
| @@ -16,28 +16,28 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 5.0.0.beta
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version:  | 
| 26 | 
            +
                    version: 5.0.0.beta
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: rgeo-activerecord
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - - " | 
| 31 | 
            +
                - - "~>"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version:  | 
| 33 | 
            +
                    version: 5.0.0.beta
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - - " | 
| 38 | 
            +
                - - "~>"
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version:  | 
| 40 | 
            +
                    version: 5.0.0.beta
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: rake
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -130,16 +130,17 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 130 130 | 
             
              requirements:
         | 
| 131 131 | 
             
              - - ">="
         | 
| 132 132 | 
             
                - !ruby/object:Gem::Version
         | 
| 133 | 
            -
                  version:  | 
| 133 | 
            +
                  version: 2.2.2
         | 
| 134 134 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 135 135 | 
             
              requirements:
         | 
| 136 | 
            -
              - - " | 
| 136 | 
            +
              - - ">"
         | 
| 137 137 | 
             
                - !ruby/object:Gem::Version
         | 
| 138 | 
            -
                  version:  | 
| 138 | 
            +
                  version: 1.3.1
         | 
| 139 139 | 
             
            requirements: []
         | 
| 140 140 | 
             
            rubyforge_project: 
         | 
| 141 | 
            -
            rubygems_version: 2. | 
| 141 | 
            +
            rubygems_version: 2.5.2
         | 
| 142 142 | 
             
            signing_key: 
         | 
| 143 143 | 
             
            specification_version: 4
         | 
| 144 144 | 
             
            summary: ActiveRecord adapter for PostGIS, based on RGeo.
         | 
| 145 145 | 
             
            test_files: []
         | 
| 146 | 
            +
            has_rdoc: 
         |