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 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 Augusto"]
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
1
+ 0.7.2
@@ -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, ActiveRecord::ConnectionAdapters::PostgreSQLColumn.extract_value_from_default( default), type, notnull == "f")
246
+ ActiveRecord::ConnectionAdapters::PostgreSQLColumn.new(name, default, type, notnull == "f")
247
247
  end
248
248
  end
249
249
  end
@@ -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.1"
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 Augusto"]
12
- s.date = %q{2009-10-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("Only PostgreSQL with PostGIS is supported by the postgis adapter plugin.")
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 /Point/
154
- pts[1].data.should match /Point/
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 /Point/
167
- pts[1].data.should match /Point/
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
@@ -4,6 +4,7 @@ require 'pg'
4
4
  require 'activerecord'
5
5
  $:.unshift((File.join(File.dirname(__FILE__), '..', 'lib')))
6
6
  gem 'activerecord', "=2.3.4"
7
+ gem 'nofxx-georuby'
7
8
  require 'postgis_adapter'
8
9
 
9
10
  # Monkey patch Schema.define logger
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.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
- - Marcos Augusto
7
+ - Marcos Piccinini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-10 00:00:00 -03:00
12
+ date: 2009-10-18 01:00:00 -02:00
13
13
  default_executable:
14
14
  dependencies: []
15
15