postgis_adapter 0.7.1 → 0.7.2
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.
- data/MIT-LICENSE +1 -1
- data/README.rdoc +7 -0
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/postgis_adapter.rb +1 -1
- data/postgis_adapter.gemspec +3 -3
- data/rails/init.rb +2 -1
- data/spec/postgis_adapter_spec.rb +51 -4
- data/spec/spec.opts +3 -3
- data/spec/spec_helper.rb +1 -0
- metadata +3 -3
    
        data/MIT-LICENSE
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            Spatial Adapter Copyright (c) 2006 Guilhem Vellut <guilhem.vellut+georuby@gmail.com>
         | 
| 1 | 
            +
            Spatial Adapter Copyright (c) 2006 Guilhem Vellut <guilhem.vellut+georuby@gmail.com>
         | 
| 2 2 | 
             
            PostGis Adapter Functions (c) 2008 Marcos Piccinini <nofxx>
         | 
| 3 3 |  | 
| 4 4 | 
             
            Permission is hereby granted, free of charge, to any person obtaining
         | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -57,6 +57,13 @@ in ruby schema mode and loaded in migrations the same way as columns | |
| 57 57 | 
             
            of basic types.
         | 
| 58 58 |  | 
| 59 59 |  | 
| 60 | 
            +
            === Example App
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            Simple rails app to demonstrate, check it out:
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            http://github.com/nofxx/postgis_example
         | 
| 65 | 
            +
             | 
| 66 | 
            +
             | 
| 60 67 | 
             
            === Model
         | 
| 61 68 |  | 
| 62 69 | 
             
                class TablePoint < ActiveRecord::Base
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -9,7 +9,7 @@ begin | |
| 9 9 | 
             
                gem.description = "Execute PostGIS functions on Active Record"
         | 
| 10 10 | 
             
                gem.email = "x@nofxx.com"
         | 
| 11 11 | 
             
                gem.homepage = "http://github.com/nofxx/postgis_adapter"
         | 
| 12 | 
            -
                gem.authors = ["Marcos  | 
| 12 | 
            +
                gem.authors = ["Marcos Piccinini"]
         | 
| 13 13 | 
             
                gem.rubyforge_project = "postgis_adapter"
         | 
| 14 14 | 
             
                # TODO: better way for this.....
         | 
| 15 15 | 
             
                #    gem.add_dependency 'geo_ruby'
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.7. | 
| 1 | 
            +
            0.7.2
         | 
    
        data/lib/postgis_adapter.rb
    CHANGED
    
    | @@ -243,7 +243,7 @@ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.class_eval do | |
| 243 243 | 
             
                      ActiveRecord::ConnectionAdapters::SpatialPostgreSQLColumn.new(name, default,raw_geom_info.type, notnull == "f", raw_geom_info.srid, raw_geom_info.with_z, raw_geom_info.with_m)
         | 
| 244 244 | 
             
                    end
         | 
| 245 245 | 
             
                  else
         | 
| 246 | 
            -
                    ActiveRecord::ConnectionAdapters::PostgreSQLColumn.new(name,  | 
| 246 | 
            +
                    ActiveRecord::ConnectionAdapters::PostgreSQLColumn.new(name, default, type, notnull == "f")
         | 
| 247 247 | 
             
                  end
         | 
| 248 248 | 
             
                end
         | 
| 249 249 | 
             
              end
         | 
    
        data/postgis_adapter.gemspec
    CHANGED
    
    | @@ -5,11 +5,11 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = %q{postgis_adapter}
         | 
| 8 | 
            -
              s.version = "0.7. | 
| 8 | 
            +
              s.version = "0.7.2"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 | 
            -
              s.authors = ["Marcos  | 
| 12 | 
            -
              s.date = %q{2009-10- | 
| 11 | 
            +
              s.authors = ["Marcos Piccinini"]
         | 
| 12 | 
            +
              s.date = %q{2009-10-18}
         | 
| 13 13 | 
             
              s.description = %q{Execute PostGIS functions on Active Record}
         | 
| 14 14 | 
             
              s.email = %q{x@nofxx.com}
         | 
| 15 15 | 
             
              s.extra_rdoc_files = [
         | 
    
        data/rails/init.rb
    CHANGED
    
    | @@ -3,6 +3,7 @@ end | |
| 3 3 |  | 
| 4 4 | 
             
            unless ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'
         | 
| 5 5 | 
             
              raise SpatialAdapterNotCompatibleError.
         | 
| 6 | 
            -
                new(" | 
| 6 | 
            +
                new("Database config file not set or it does not map to PostgreSQL\n" +
         | 
| 7 | 
            +
                    "Only PostgreSQL with PostGIS is supported by postgis_adapter.")
         | 
| 7 8 | 
             
            end
         | 
| 8 9 | 
             
            require 'postgis_adapter'
         | 
| @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            # -*- coding: utf-8 -*-
         | 
| 1 2 | 
             
            require File.dirname(__FILE__) + '/spec_helper.rb'
         | 
| 2 3 |  | 
| 3 4 | 
             
            describe "PostgisAdapter" do
         | 
| @@ -150,8 +151,8 @@ describe "PostgisAdapter" do | |
| 150 151 | 
             
                  pts = Area.find_all_by_geom(LineString.from_coordinates([[0,0],[2,2]],4326))
         | 
| 151 152 | 
             
                  pts.should be_instance_of(Array)
         | 
| 152 153 | 
             
                  pts.length.should eql(2)
         | 
| 153 | 
            -
                  pts[0].data.should match | 
| 154 | 
            -
                  pts[1].data.should match | 
| 154 | 
            +
                  pts[0].data.should match(/Point/)
         | 
| 155 | 
            +
                  pts[1].data.should match(/Point/)
         | 
| 155 156 | 
             
                end
         | 
| 156 157 |  | 
| 157 158 | 
             
                it "should find by geom again" do
         | 
| @@ -163,8 +164,8 @@ describe "PostgisAdapter" do | |
| 163 164 | 
             
                  pts = Area.find_all_by_geom([[0,0],[2,2],4326])
         | 
| 164 165 | 
             
                  pts.should be_instance_of(Array)
         | 
| 165 166 | 
             
                  pts.length.should eql(2)
         | 
| 166 | 
            -
                  pts[0].data.should match | 
| 167 | 
            -
                  pts[1].data.should match | 
| 167 | 
            +
                  pts[0].data.should match(/Point/)
         | 
| 168 | 
            +
                  pts[1].data.should match(/Point/)
         | 
| 168 169 | 
             
                end
         | 
| 169 170 |  | 
| 170 171 | 
             
                it "should not mess with rails finder" do
         | 
| @@ -174,4 +175,50 @@ describe "PostgisAdapter" do | |
| 174 175 |  | 
| 175 176 | 
             
              end
         | 
| 176 177 |  | 
| 178 | 
            +
              describe "PostgreSQL-specific types and default values" do
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                # Verify that a non-NULL column with a default value is handled correctly.
         | 
| 181 | 
            +
                # Additionally, if the database uses UTF8 encoding, set the binary (bytea)
         | 
| 182 | 
            +
                # column value to an illegal UTF8 string; it should be stored as the
         | 
| 183 | 
            +
                # specified binary string and not as a text string. (The binary data test
         | 
| 184 | 
            +
                # cannot fail if the database uses SQL_ASCII or LATIN1 encoding.)
         | 
| 185 | 
            +
             | 
| 186 | 
            +
                ActiveRecord::Schema.define() do
         | 
| 187 | 
            +
                  create_table :binary_defaults, :force => true do |t|
         | 
| 188 | 
            +
                    t.string :name, :null => false
         | 
| 189 | 
            +
                    t.string :data, :null => false, :default => ''
         | 
| 190 | 
            +
                    t.binary :value
         | 
| 191 | 
            +
                  end
         | 
| 192 | 
            +
                end
         | 
| 193 | 
            +
             | 
| 194 | 
            +
                class BinaryDefault < ActiveRecord::Base
         | 
| 195 | 
            +
                end
         | 
| 196 | 
            +
             | 
| 197 | 
            +
                it "should create some records" do
         | 
| 198 | 
            +
                  if BinaryDefault.connection.encoding == "UTF8"
         | 
| 199 | 
            +
                    BinaryDefault.create!(:name => "foo", :data => "baz",
         | 
| 200 | 
            +
                                          :value => "f\xf4o") # fôo as ISO-8859-1 (i.e., not valid UTF-8 data)
         | 
| 201 | 
            +
                    BinaryDefault.create!(:name => "bar",     # data value not specified, should use default
         | 
| 202 | 
            +
                                          :value => "b\xe5r") # bår as ISO-8859-1 (i.e., not valid UTF-8 data)
         | 
| 203 | 
            +
                  else
         | 
| 204 | 
            +
                    BinaryDefault.create!(:name => "foo", :data => "baz")
         | 
| 205 | 
            +
                    BinaryDefault.create!(:name => "bar")
         | 
| 206 | 
            +
                  end
         | 
| 207 | 
            +
                end
         | 
| 208 | 
            +
             | 
| 209 | 
            +
                it "should find the records" do
         | 
| 210 | 
            +
                  foo = BinaryDefault.find_by_name("foo")
         | 
| 211 | 
            +
                  bar = BinaryDefault.find_by_name("bar")
         | 
| 212 | 
            +
             | 
| 213 | 
            +
                  foo.data.should eql("baz")
         | 
| 214 | 
            +
                  bar.data.should eql("")
         | 
| 215 | 
            +
             | 
| 216 | 
            +
                  if BinaryDefault.connection.encoding == "UTF8"
         | 
| 217 | 
            +
                    foo.value.should eql("f\xf4o")
         | 
| 218 | 
            +
                    bar.value.should eql("b\xe5r")
         | 
| 219 | 
            +
                  end
         | 
| 220 | 
            +
                end
         | 
| 221 | 
            +
             | 
| 222 | 
            +
              end
         | 
| 223 | 
            +
             | 
| 177 224 | 
             
            end
         | 
    
        data/spec/spec.opts
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            --colour
         | 
| 2 | 
            -
            --format profile
         | 
| 3 | 
            -
            --timeout 20
         | 
| 1 | 
            +
            --colour
         | 
| 2 | 
            +
            --format profile
         | 
| 3 | 
            +
            --timeout 20
         | 
| 4 4 | 
             
            --diff
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: postgis_adapter
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 0.7. | 
| 4 | 
            +
              version: 0.7.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 | 
            -
            - Marcos  | 
| 7 | 
            +
            - Marcos Piccinini
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 |  | 
| 12 | 
            -
            date: 2009-10- | 
| 12 | 
            +
            date: 2009-10-18 01:00:00 -02:00
         | 
| 13 13 | 
             
            default_executable: 
         | 
| 14 14 | 
             
            dependencies: []
         | 
| 15 15 |  |