GeoRuby 1.3.2 → 1.3.3

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.
@@ -7,7 +7,7 @@ module GeoRuby#:nodoc:
7
7
  #Objects of class Geometry should not be instantiated.
8
8
  class Geometry
9
9
  #SRID of the geometry
10
- attr_accessor :srid
10
+ attr_reader :srid #writer defined below
11
11
  #Flag indicating if the z ordinate of the geometry is meaningful
12
12
  attr_accessor :with_z
13
13
  #Flag indicating if the m ordinate of the geometry is meaningful
@@ -56,7 +56,7 @@ module GeoRuby#:nodoc:
56
56
  if @with_m and allow_m
57
57
  type = type | M_MASK
58
58
  end
59
- if @srid != DEFAULT_SRID and allow_srid
59
+ if allow_srid
60
60
  type = type | SRID_MASK
61
61
  ewkb << [type,@srid].pack("VV")
62
62
  else
@@ -84,7 +84,7 @@ module GeoRuby#:nodoc:
84
84
 
85
85
  #Outputs the geometry as an EWKT string.
86
86
  def as_ewkt(allow_srid=true,allow_z=true,allow_m=true)
87
- if @srid!=DEFAULT_SRID and allow_srid #the default SRID is not output like in PostGIS
87
+ if allow_srid
88
88
  ewkt="SRID=#{@srid};"
89
89
  else
90
90
  ewkt=""
@@ -127,7 +127,7 @@ module GeoRuby
127
127
  #it won't be used by GE anyway: clampToGround is the default)
128
128
  def kml_representation(options = {}) #:nodoc:
129
129
  result = "<LineString#{options[:id_attr]}>\n"
130
- result += options[:geom_data]
130
+ result += options[:geom_data] if options[:geom_data]
131
131
  result += "<coordinates>"
132
132
  result += kml_poslist(options)
133
133
  result += "</coordinates>\n"
@@ -135,11 +135,16 @@ module GeoRuby
135
135
  end
136
136
 
137
137
  def kml_poslist(options) #:nodoc:
138
- if options[:allow_z]
139
- map {|point| "#{point.x},#{point.y},#{options[:fixed_z] || point.z || 0}" }.join(" ")
138
+ pos_list = if options[:allow_z]
139
+ map {|point| "#{point.x},#{point.y},#{options[:fixed_z] || point.z || 0}" }
140
140
  else
141
- map {|point| "#{point.x},#{point.y}" }.join(" ")
141
+ map {|point| "#{point.x},#{point.y}" }
142
142
  end
143
+ if(options[:reverse])
144
+ pos_list.reverse.join(" ")
145
+ else
146
+ pos_list.join(" ")
147
+ end
143
148
  end
144
149
 
145
150
  #Creates a new line string. Accept an array of points as argument
@@ -177,7 +177,7 @@ module GeoRuby
177
177
  #it won't be used by GE anyway: clampToGround is the default)
178
178
  def kml_representation(options = {}) #:nodoc:
179
179
  result = "<Point#{options[:id_attr]}>\n"
180
- result += options[:geom_data]
180
+ result += options[:geom_data] if options[:geom_data]
181
181
  result += "<coordinates>#{x},#{y}"
182
182
  result += ",#{options[:fixed_z] || z ||0}" if options[:allow_z]
183
183
  result += "</coordinates>\n"
@@ -109,7 +109,7 @@ module GeoRuby
109
109
  #it won't be used by GE anyway: clampToGround is the default)
110
110
  def kml_representation(options = {})
111
111
  result = "<Polygon#{options[:id_attr]}>\n"
112
- result += options[:geom_data]
112
+ result += options[:geom_data] if options[:geom_data]
113
113
  rings.each_with_index do |ring, i|
114
114
  if i == 0
115
115
  boundary = "outerBoundaryIs"
data/rakefile.rb CHANGED
@@ -24,7 +24,7 @@ spec = Gem::Specification::new do |s|
24
24
  s.platform = Gem::Platform::RUBY
25
25
 
26
26
  s.name = 'GeoRuby'
27
- s.version = "1.3.2"
27
+ s.version = "1.3.3"
28
28
  s.summary = "Ruby data holder for OGC Simple Features"
29
29
  s.description = <<EOF
30
30
  GeoRuby is intended as a holder for data returned from PostGIS and MySQL Spatial queries. The data model roughly follows the OGC "Simple Features for SQL" specification (see www.opengis.org/docs/99-049.pdf), although without any kind of advanced functionalities (such as geometric operators or reprojections)
@@ -211,5 +211,21 @@ class TestGeorssKml < Test::Unit::TestCase
211
211
 
212
212
  end
213
213
 
214
+ def test_to_kml_for_point_does_not_raise_type_error_if_geom_data_not_provided
215
+ point = Point.from_coordinates([1.6,2.8],123)
216
+ assert_nothing_raised(TypeError) { point.kml_representation }
217
+ end
218
+
219
+ def test_to_kml_for_polygon_does_not_raise_type_error_if_geom_data_not_provided
220
+ polygon = Polygon.from_coordinates([[[12.4,-45.3],[45.4,41.6],[4.456,1.0698],[12.4,-45.3]],[[2.4,5.3],[5.4,1.4263],[14.46,1.06],[2.4,5.3]]],256)
221
+
222
+ assert_nothing_raised(TypeError) { polygon.kml_representation }
223
+ end
224
+
225
+ def test_to_kml_for_line_string_does_not_raise_type_error_if_geom_data_not_provided
226
+ ls = LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)
227
+ assert_nothing_raised(TypeError) { ls.kml_representation }
228
+ end
229
+
214
230
 
215
231
  end
@@ -53,7 +53,7 @@ class TestShp < Test::Unit::TestCase
53
53
 
54
54
  assert_equal(2,shpfile.record_count)
55
55
  shpfile.close
56
- #rm_all_shp(File.dirname(__FILE__) + '/data/polyline2')
56
+ rm_all_shp(File.dirname(__FILE__) + '/data/polyline2')
57
57
  end
58
58
 
59
59
  def test_polygon
@@ -476,7 +476,7 @@ class TestSimpleFeatures < Test::Unit::TestCase
476
476
  assert_equal("SRID=256;MULTIPOLYGON(((12.4 -45.3,45.4 41.6,4.456 1.0698,12.4 -45.3),(2.4 5.3,5.4 1.4263,14.46 1.06,2.4 5.3)),((0 0,4 0,4 4,0 4,0 0),(1 1,3 1,3 3,1 3,1 1)))",multi_polygon.as_ewkt)
477
477
 
478
478
  multi_polygon = MultiPolygon.from_polygons([Polygon.from_coordinates([[[12.4,-45.3,2],[45.4,41.6,3],[4.456,1.0698,4],[12.4,-45.3,2]],[[2.4,5.3,1],[5.4,1.4263,3.44],[14.46,1.06,4.5],[2.4,5.3,1]]],DEFAULT_SRID,true),Polygon.from_coordinates([[[0,0,5.6],[4,0,5.4],[4,4,1],[0,4,23],[0,0,5.6]],[[1,1,2.3],[3,1,4],[3,3,5],[1,3,6],[1,1,2.3]]],DEFAULT_SRID,true)],DEFAULT_SRID,true)
479
- assert_equal("MULTIPOLYGON(((12.4 -45.3 2,45.4 41.6 3,4.456 1.0698 4,12.4 -45.3 2),(2.4 5.3 1,5.4 1.4263 3.44,14.46 1.06 4.5,2.4 5.3 1)),((0 0 5.6,4 0 5.4,4 4 1,0 4 23,0 0 5.6),(1 1 2.3,3 1 4,3 3 5,1 3 6,1 1 2.3)))",multi_polygon.as_ewkt)
479
+ assert_equal("SRID=-1;MULTIPOLYGON(((12.4 -45.3 2,45.4 41.6 3,4.456 1.0698 4,12.4 -45.3 2),(2.4 5.3 1,5.4 1.4263 3.44,14.46 1.06 4.5,2.4 5.3 1)),((0 0 5.6,4 0 5.4,4 4 1,0 4 23,0 0 5.6),(1 1 2.3,3 1 4,3 3 5,1 3 6,1 1 2.3)))",multi_polygon.as_ewkt)
480
480
 
481
481
  end
482
482
 
@@ -1,10 +1,14 @@
1
1
  class SpatialAdapterNotCompatibleError < StandardError
2
2
  end
3
3
 
4
- if ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::MysqlAdapter)
4
+
5
+ case ActiveRecord::Base.connection.adapter_name
6
+ when 'MySQL'
5
7
  require 'mysql_spatial_adapter'
6
- elsif ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
8
+ when 'PostgreSQL'
7
9
  require 'post_gis_adapter'
8
- else
10
+ else
9
11
  raise SpatialAdapterNotCompatibleError.new("Only MySQL and PostgreSQL are currently supported by the spatial adapter plugin.")
10
- end
12
+ end
13
+
14
+
@@ -52,17 +52,47 @@ ActiveRecord::Base.class_eval do
52
52
  end
53
53
  end.join(' AND ')
54
54
  end
55
+ def self.get_rails2_conditions(attrs)
56
+ attrs.map do |attr, value|
57
+ attr = attr.to_s
58
+ if columns_hash[attr].is_a?(SpatialColumn)
59
+ if value.is_a?(Array)
60
+ #using some georuby utility : The multipoint has a bbox whose corners are the 2 points passed as parameters : [ pt1, pt2]
61
+ attrs[attr.to_sym]=MultiPoint.from_coordinates(value)
62
+ elsif value.is_a?(Envelope)
63
+ attrs[attr.to_sym]=MultiPoint.from_points([value.lower_corner,value.upper_corner])
64
+ end
65
+ "MBRIntersects(?, #{table_name}.#{connection.quote_column_name(attr)}) "
66
+ else
67
+ #original stuff
68
+ # Extract table name from qualified attribute names.
69
+ if attr.include?('.')
70
+ table_name, attr = attr.split('.', 2)
71
+ table_name = connection.quote_table_name(table_name)
72
+ else
73
+ table_name = quoted_table_name
74
+ end
75
+ "#{table_name}.#{connection.quote_column_name(attr)} #{attribute_condition(value)}"
76
+ end
77
+ end.join(' AND ')
78
+ end
55
79
  if ActiveRecord::VERSION::STRING == "1.15.1"
56
80
  def self.sanitize_sql_hash(attrs)
57
81
  conditions = get_conditions(attrs)
58
82
  replace_bind_variables(conditions, attrs.values)
59
83
  end
60
- else
84
+ elsif ActiveRecord::VERSION::STRING.starts_with?("1.15")
61
85
  #For Rails >= 1.2
62
86
  def self.sanitize_sql_hash(attrs)
63
87
  conditions = get_conditions(attrs)
64
88
  replace_bind_variables(conditions, expand_range_bind_variables(attrs.values))
65
89
  end
90
+ else
91
+ #For Rails >= 2
92
+ def self.sanitize_sql_hash_for_conditions(attrs)
93
+ conditions = get_rails2_conditions(attrs)
94
+ replace_bind_variables(conditions, expand_range_bind_variables(attrs.values))
95
+ end
66
96
  end
67
97
  end
68
98
  end
@@ -3,6 +3,7 @@ require 'geo_ruby'
3
3
  require 'common_spatial_adapter'
4
4
 
5
5
  include GeoRuby::SimpleFeatures
6
+ include SpatialAdapter
6
7
 
7
8
  #tables to ignore in migration : relative to PostGIS management of geometric columns
8
9
  ActiveRecord::SchemaDumper.ignore_tables << "spatial_ref_sys" << "geometry_columns"
@@ -41,14 +42,16 @@ ActiveRecord::Base.class_eval do
41
42
  [ conditions.join(" AND "), *arguments[0...attribute_names.length] ]
42
43
  end
43
44
  else
45
+ #Vit Ondruch & Tilmann Singer 's patch
44
46
  def self.get_conditions(attrs)
45
47
  attrs.map do |attr, value|
48
+ attr = attr.to_s
46
49
  if columns_hash[attr].is_a?(SpatialColumn)
47
50
  if value.is_a?(Array)
48
- attrs[attr]= "BOX3D(" + value[0].join(" ") + "," + value[1].join(" ") + ")"
51
+ attrs[attr.to_sym]= "BOX3D(" + value[0].join(" ") + "," + value[1].join(" ") + ")"
49
52
  "#{table_name}.#{connection.quote_column_name(attr)} && SetSRID(?::box3d, #{value[2] || DEFAULT_SRID} ) "
50
53
  elsif value.is_a?(Envelope)
51
- attrs[attr]= "BOX3D(" + value.lower_corner.text_representation + "," + value.upper_corner.text_representation + ")"
54
+ attrs[attr.to_sym]= "BOX3D(" + value.lower_corner.text_representation + "," + value.upper_corner.text_representation + ")"
52
55
  "#{table_name}.#{connection.quote_column_name(attr)} && SetSRID(?::box3d, #{value.srid} ) "
53
56
  else
54
57
  "#{table_name}.#{connection.quote_column_name(attr)} && ? "
@@ -63,11 +66,17 @@ ActiveRecord::Base.class_eval do
63
66
  conditions = get_conditions(attrs)
64
67
  replace_bind_variables(conditions, attrs.values)
65
68
  end
66
- else
69
+ elsif ActiveRecord::VERSION::STRING.starts_with?("1.15")
67
70
  def self.sanitize_sql_hash(attrs)
68
71
  conditions = get_conditions(attrs)
69
72
  replace_bind_variables(conditions, expand_range_bind_variables(attrs.values))
70
73
  end
74
+ else
75
+ #For Rails >= 2
76
+ def self.sanitize_sql_hash_for_conditions(attrs)
77
+ conditions = get_conditions(attrs)
78
+ replace_bind_variables(conditions, expand_range_bind_variables(attrs.values))
79
+ end
71
80
  end
72
81
  end
73
82
  end
@@ -194,13 +203,31 @@ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.class_eval do
194
203
  column_definitions(table_name).collect do |name, type, default, notnull|
195
204
  if type =~ /geometry/i and raw_geom_infos[name]
196
205
  raw_geom_info = raw_geom_infos[name]
197
-
198
- ActiveRecord::ConnectionAdapters::SpatialPostgreSQLColumn.new(name,default_value(default),raw_geom_info.type,notnull == "f",raw_geom_info.srid,raw_geom_info.with_z,raw_geom_info.with_m)
206
+ if ActiveRecord::VERSION::STRING >= "2.0.0"
207
+ 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)
208
+ else
209
+ ActiveRecord::ConnectionAdapters::SpatialPostgreSQLColumn.new(name, default_value(default), raw_geom_info.type, notnull == "f", raw_geom_info.srid, raw_geom_info.with_z, raw_geom_info.with_m)
210
+ end
199
211
  else
200
- ActiveRecord::ConnectionAdapters::Column.new(name, default_value(default), translate_field_type(type),notnull == "f")
212
+ if ActiveRecord::VERSION::STRING >= "2.0.0"
213
+ ActiveRecord::ConnectionAdapters::Column.new(name, ActiveRecord::ConnectionAdapters::PostgreSQLColumn.extract_value_from_default( default), type,notnull == "f")
214
+ else
215
+ #Vit Ondruch & Tilmann Singer 's patch
216
+ ActiveRecord::ConnectionAdapters::Column.new(name, default_value(default), translate_field_type(type),notnull == "f")
217
+ end
201
218
  end
202
219
  end
203
220
  end
221
+
222
+ #Pete Deffendol's patch
223
+ alias :original_disable_referential_integrity :disable_referential_integrity
224
+ def disable_referential_integrity(&block) #:nodoc:
225
+ ignore_tables = %w{ geometry_columns spatial_ref_sys }
226
+ execute(tables.select { |name| !ignore_tables.include?(name) }.collect { |name| "ALTER TABLE #{quote_table_name(name)} DISABLE TRIGGER ALL" }.join(";"))
227
+ yield
228
+ ensure
229
+ execute(tables.select { |name| !ignore_tables.include?(name)}.collect { |name| "ALTER TABLE #{quote_table_name(name)} ENABLE TRIGGER ALL" }.join(";"))
230
+ end
204
231
 
205
232
  private
206
233
 
@@ -284,7 +311,7 @@ module ActiveRecord
284
311
  attr_reader :geom_columns
285
312
 
286
313
  def column(name, type, options = {})
287
- unless @base.geometry_data_types[type].nil?
314
+ unless @base.geometry_data_types[type.to_sym].nil?
288
315
  geom_column = PostgreSQLColumnDefinition.new(@base,name, type)
289
316
  geom_column.null = options[:null]
290
317
  geom_column.srid = options[:srid] || -1
@@ -297,6 +324,17 @@ module ActiveRecord
297
324
  super(name,type,options)
298
325
  end
299
326
  end
327
+
328
+ SpatialAdapter.geometry_data_types.keys.each do |column_type|
329
+ class_eval <<-EOV
330
+ def #{column_type}(*args)
331
+ options = args.extract_options!
332
+ column_names = args
333
+
334
+ column_names.each { |name| column(name, '#{column_type}', options) }
335
+ end
336
+ EOV
337
+ end
300
338
  end
301
339
 
302
340
  class PostgreSQLColumnDefinition < ColumnDefinition
@@ -357,3 +395,4 @@ module ActiveRecord
357
395
  end
358
396
  end
359
397
  end
398
+
@@ -11,12 +11,12 @@ class AccessPostgisTest < Test::Unit::TestCase
11
11
  pt = TablePoint.new(:data => "Test", :geom => Point.from_x_y(1.2,4.5))
12
12
  assert(pt.save)
13
13
 
14
- pt = TablePoint.find_first
14
+ pt = TablePoint.find(:first)
15
15
  assert(pt)
16
16
  assert_equal("Test",pt.data)
17
17
  assert_equal(Point.from_x_y(1.2,4.5),pt.geom)
18
18
 
19
- pts = TablePoint.find_all
19
+ pts = TablePoint.find(:all)
20
20
  pts.each do |pt|
21
21
  assert(pt.geom.is_a?(Point))
22
22
  end
@@ -27,7 +27,7 @@ class AccessPostgisTest < Test::Unit::TestCase
27
27
  pt = TableKeywordColumnPoint.new(:location => Point.from_x_y(1.2,4.5))
28
28
  assert(pt.save)
29
29
 
30
- pt = TableKeywordColumnPoint.find_first
30
+ pt = TableKeywordColumnPoint.find(:first)
31
31
  assert(pt)
32
32
  assert_equal(Point.from_x_y(1.2,4.5),pt.location)
33
33
 
@@ -37,7 +37,7 @@ class AccessPostgisTest < Test::Unit::TestCase
37
37
  ls = TableLineString.new(:value => 3, :geom => LineString.from_coordinates([[1.4,2.5],[1.5,6.7]]))
38
38
  assert(ls.save)
39
39
 
40
- ls = TableLineString.find_first
40
+ ls = TableLineString.find(:first)
41
41
  assert(ls)
42
42
  assert_equal(3,ls.value)
43
43
  assert_equal(LineString.from_coordinates([[1.4,2.5],[1.5,6.7]]),ls.geom)
@@ -48,7 +48,7 @@ class AccessPostgisTest < Test::Unit::TestCase
48
48
  pg = TablePolygon.new(:geom => Polygon.from_coordinates([[[12.4,-45.3],[45.4,41.6],[4.456,1.0698],[12.4,-45.3]],[[2.4,5.3],[5.4,1.4263],[14.46,1.06],[2.4,5.3]]]))
49
49
  assert(pg.save)
50
50
 
51
- pg = TablePolygon.find_first
51
+ pg = TablePolygon.find(:first)
52
52
  assert(pg)
53
53
  assert_equal(Polygon.from_coordinates([[[12.4,-45.3],[45.4,41.6],[4.456,1.0698],[12.4,-45.3]],[[2.4,5.3],[5.4,1.4263],[14.46,1.06],[2.4,5.3]]]),pg.geom)
54
54
  end
@@ -57,7 +57,7 @@ class AccessPostgisTest < Test::Unit::TestCase
57
57
  mp = TableMultiPoint.new(:geom => MultiPoint.from_coordinates([[12.4,-123.3],[-65.1,123.4],[123.55555555,123]]))
58
58
  assert(mp.save)
59
59
 
60
- mp = TableMultiPoint.find_first
60
+ mp = TableMultiPoint.find(:first)
61
61
  assert(mp)
62
62
  assert_equal(MultiPoint.from_coordinates([[12.4,-123.3],[-65.1,123.4],[123.55555555,123]]),mp.geom)
63
63
  end
@@ -66,7 +66,7 @@ class AccessPostgisTest < Test::Unit::TestCase
66
66
  ml = TableMultiLineString.new(:geom => MultiLineString.from_line_strings([LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]]),LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012],[45.123,123.3]])]))
67
67
  assert(ml.save)
68
68
 
69
- ml = TableMultiLineString.find_first
69
+ ml = TableMultiLineString.find(:first)
70
70
  assert(ml)
71
71
  assert_equal(MultiLineString.from_line_strings([LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]]),LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012],[45.123,123.3]])]),ml.geom)
72
72
  end
@@ -75,7 +75,7 @@ class AccessPostgisTest < Test::Unit::TestCase
75
75
  mp = TableMultiPolygon.new( :geom => MultiPolygon.from_polygons([Polygon.from_coordinates([[[12.4,-45.3],[45.4,41.6],[4.456,1.0698],[12.4,-45.3]],[[2.4,5.3],[5.4,1.4263],[14.46,1.06],[2.4,5.3]]]),Polygon.from_coordinates([[[0,0],[4,0],[4,4],[0,4],[0,0]],[[1,1],[3,1],[3,3],[1,3],[1,1]]])]))
76
76
  assert(mp.save)
77
77
 
78
- mp = TableMultiPolygon.find_first
78
+ mp = TableMultiPolygon.find(:first)
79
79
  assert(mp)
80
80
  assert_equal(MultiPolygon.from_polygons([Polygon.from_coordinates([[[12.4,-45.3],[45.4,41.6],[4.456,1.0698],[12.4,-45.3]],[[2.4,5.3],[5.4,1.4263],[14.46,1.06],[2.4,5.3]]]),Polygon.from_coordinates([[[0,0],[4,0],[4,4],[0,4],[0,0]],[[1,1],[3,1],[3,3],[1,3],[1,1]]])]),mp.geom)
81
81
  end
@@ -84,7 +84,7 @@ class AccessPostgisTest < Test::Unit::TestCase
84
84
  gm = TableGeometry.new(:geom => LineString.from_coordinates([[12.4,-45.3],[45.4,41.6],[4.456,1.0698]]))
85
85
  assert(gm.save)
86
86
 
87
- gm = TableGeometry.find_first
87
+ gm = TableGeometry.find(:first)
88
88
  assert(gm)
89
89
  assert_equal(LineString.from_coordinates([[12.4,-45.3],[45.4,41.6],[4.456,1.0698]]),gm.geom)
90
90
  end
@@ -93,7 +93,7 @@ class AccessPostgisTest < Test::Unit::TestCase
93
93
  gc = TableGeometryCollection.new(:geom => GeometryCollection.from_geometries([Point.from_x_y(4.67,45.4),LineString.from_coordinates([[5.7,12.45],[67.55,54]])]))
94
94
  assert(gc.save)
95
95
 
96
- gc = TableGeometryCollection.find_first
96
+ gc = TableGeometryCollection.find(:first)
97
97
  assert(gc)
98
98
  assert_equal(GeometryCollection.from_geometries([Point.from_x_y(4.67,45.4),LineString.from_coordinates([[5.7,12.45],[67.55,54]])]),gc.geom)
99
99
  end
@@ -102,7 +102,7 @@ class AccessPostgisTest < Test::Unit::TestCase
102
102
  pt = Table3dzPoint.new(:data => "Hello!",:geom => Point.from_x_y_z(-1.6,2.8,-3.4))
103
103
  assert(pt.save)
104
104
 
105
- pt = Table3dzPoint.find_first
105
+ pt = Table3dzPoint.find(:first)
106
106
  assert(pt)
107
107
  assert_equal(Point.from_x_y_z(-1.6,2.8,-3.4),pt.geom)
108
108
  end
@@ -111,7 +111,7 @@ class AccessPostgisTest < Test::Unit::TestCase
111
111
  pt = Table3dmPoint.new(:geom => Point.from_x_y_m(-1.6,2.8,-3.4))
112
112
  assert(pt.save)
113
113
 
114
- pt = Table3dmPoint.find_first
114
+ pt = Table3dmPoint.find(:first)
115
115
  assert(pt)
116
116
  assert_equal(Point.from_x_y_m(-1.6,2.8,-3.4),pt.geom)
117
117
  end
@@ -120,7 +120,7 @@ class AccessPostgisTest < Test::Unit::TestCase
120
120
  pt = Table4dPoint.new(:geom => Point.from_x_y_z_m(-1.6,2.8,-3.4,15))
121
121
  assert(pt.save)
122
122
 
123
- pt = Table4dPoint.find_first
123
+ pt = Table4dPoint.find(:first)
124
124
  assert(pt)
125
125
  assert_equal(Point.from_x_y_z_m(-1.6,2.8,-3.4,15),pt.geom)
126
126
  end
@@ -129,7 +129,7 @@ class AccessPostgisTest < Test::Unit::TestCase
129
129
  ls = TableSridLineString.new(:geom => LineString.from_coordinates([[1.4,2.5],[1.5,6.7]],123))
130
130
  assert(ls.save)
131
131
 
132
- ls = TableSridLineString.find_first
132
+ ls = TableSridLineString.find(:first)
133
133
  assert(ls)
134
134
  ls_e = LineString.from_coordinates([[1.4,2.5],[1.5,6.7]],123)
135
135
  assert_equal(ls_e,ls.geom)
@@ -140,7 +140,7 @@ class AccessPostgisTest < Test::Unit::TestCase
140
140
  pg = TableSrid4dPolygon.new(:geom => Polygon.from_coordinates([[[0,0,2,-45.1],[4,0,2,5],[4,4,2,4.67],[0,4,2,1.34],[0,0,2,-45.1]],[[1,1,2,12.3],[3,1,2,123],[3,3,2,12.2],[1,3,2,12],[1,1,2,12.3]]],123,true,true))
141
141
  assert(pg.save)
142
142
 
143
- pg = TableSrid4dPolygon.find_first
143
+ pg = TableSrid4dPolygon.find(:first)
144
144
  assert(pg)
145
145
  pg_e = Polygon.from_coordinates([[[0,0,2,-45.1],[4,0,2,5],[4,4,2,4.67],[0,4,2,1.34],[0,0,2,-45.1]],[[1,1,2,12.3],[3,1,2,123],[3,3,2,12.2],[1,3,2,12],[1,1,2,12.3]]],123,true,true)
146
146
  assert_equal(pg_e,pg.geom)
@@ -1,7 +1,7 @@
1
1
  $:.unshift(File.dirname(__FILE__) + '/../../lib')
2
2
 
3
3
  require 'rubygems'
4
- require_gem 'activerecord'
4
+ require 'activerecord'
5
5
 
6
6
  ActiveRecord::Base.establish_connection(YAML.load_file(File.dirname(__FILE__) + '/../db/database_mysql.yml'))
7
7
 
@@ -1,7 +1,7 @@
1
1
  $:.unshift(File.dirname(__FILE__) + '/../../lib')
2
2
 
3
3
  require 'rubygems'
4
- require_gem 'activerecord'
4
+ require 'activerecord'
5
5
 
6
6
 
7
7
  ActiveRecord::Base.establish_connection(YAML.load_file(File.dirname(__FILE__) + '/../db/database_postgis.yml'))