ffi-geos 0.0.5 → 0.0.6

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/ffi-geos.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.homepage = "http://github.com/dark-panda/ffi-geos"
21
21
  s.require_paths = ["lib"]
22
22
 
23
- s.add_dependency("ffi", ["~> 1.0.0"])
23
+ s.add_dependency("ffi", [">= 1.0.0"])
24
24
  s.add_dependency("rdoc")
25
25
  s.add_dependency("rake", ["~> 0.9"])
26
26
  end
data/lib/ffi-geos.rb CHANGED
@@ -340,7 +340,7 @@ module Geos
340
340
  ],
341
341
 
342
342
  :GEOSBufferWithParams_r => [
343
- # *geom, *handle, *geom, *oarams, width
343
+ # *geom, *handle, *geom, *params, width
344
344
  :pointer, :pointer, :pointer, :pointer, :double
345
345
  ],
346
346
 
@@ -1035,8 +1035,14 @@ module Geos
1035
1035
  GEOS_VERSION,
1036
1036
  GEOS_VERSION_MAJOR, GEOS_VERSION_MINOR, GEOS_VERSION_PATCH, GEOS_VERSION_PRERELEASE,
1037
1037
  GEOS_CAPI_VERSION,
1038
- GEOS_CAPI_VERSION_MAJOR, GEOS_CAPI_VERSION_MINOR, GEOS_CAPI_VERSION_PATCH =
1039
- if !(versions = Geos.version.scan(/^((\d+)\.(\d+)\.(\d+)((?:dev|rc|beta|alpha)\d*)?)-CAPI-((\d+)\.(\d+)\.(\d+))$/)).empty?
1038
+ GEOS_CAPI_VERSION_MAJOR, GEOS_CAPI_VERSION_MINOR, GEOS_CAPI_VERSION_PATCH,
1039
+ GEOS_SVN_REVISION =
1040
+ if !(versions = Geos.version.scan(/^
1041
+ ((\d+)\.(\d+)\.(\d+)((?:dev|rc|beta|alpha)\d*)?)
1042
+ -CAPI-
1043
+ ((\d+)\.(\d+)\.(\d+))
1044
+ (?:\s+r(\d+))?
1045
+ $/x)).empty?
1040
1046
  versions = versions[0]
1041
1047
  [
1042
1048
  versions[0],
@@ -1047,7 +1053,8 @@ module Geos
1047
1053
  versions[5],
1048
1054
  versions[6].to_i,
1049
1055
  versions[7].to_i,
1050
- versions[8].to_i
1056
+ versions[8].to_i,
1057
+ (versions[9].to_i if versions[9])
1051
1058
  ]
1052
1059
  else
1053
1060
  [ '0.0.0', 0, 0, 0, nil, '0.0.0', 0, 0, 0 ]
@@ -45,9 +45,14 @@ module Geos
45
45
  FFIGeos.GEOSGeomTypeId_r(Geos.current_handle, self.ptr)
46
46
  end
47
47
 
48
- def normalize
49
- FFIGeos.GEOSNormalize_r(Geos.current_handle, self.ptr)
48
+ def normalize!
49
+ if FFIGeos.GEOSNormalize_r(Geos.current_handle, self.ptr) == -1
50
+ raise RuntimeError.new("Couldn't normalize #{self.class}")
51
+ end
52
+
53
+ self
50
54
  end
55
+ alias :normalize :normalize!
51
56
 
52
57
  def srid
53
58
  FFIGeos.GEOSGetSRID_r(Geos.current_handle, self.ptr)
@@ -1,5 +1,5 @@
1
1
 
2
2
  module Geos
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
 
@@ -1598,4 +1598,22 @@ class GeometryTests < Test::Unit::TestCase
1598
1598
  assert_kind_of(Enumerable, geom.to_enum)
1599
1599
  assert_equal(geom, geom.each {})
1600
1600
  end
1601
+
1602
+ def test_normalize
1603
+ geom = read('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')
1604
+ geom.normalize
1605
+ assert_equal('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))', write(geom, :trim => true))
1606
+
1607
+ geom = read('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))').normalize
1608
+ assert_equal('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))', write(geom, :trim => true))
1609
+ end
1610
+
1611
+ def test_normalize_bang
1612
+ geom = read('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')
1613
+ geom.normalize!
1614
+ assert_equal('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))', write(geom, :trim => true))
1615
+
1616
+ geom = read('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))').normalize!
1617
+ assert_equal('POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))', write(geom, :trim => true))
1618
+ end
1601
1619
  end
data/test/test_helper.rb CHANGED
@@ -10,8 +10,15 @@ end
10
10
 
11
11
  puts "Ruby version #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} - #{RbConfig::CONFIG['RUBY_INSTALL_NAME']}"
12
12
  puts "ffi version #{Gem.loaded_specs['ffi'].version}" if Gem.loaded_specs['ffi']
13
- puts "GEOS version #{Geos::GEOS_VERSION}"
13
+
14
+ if Geos.respond_to?(:version)
15
+ puts "GEOS version #{Geos.version}"
16
+ else
17
+ puts "GEOS version #{Geos::GEOS_VERSION}"
18
+ end
19
+
14
20
  puts "ffi-geos version #{Geos::VERSION}" if defined?(Geos::VERSION)
21
+
15
22
  if defined?(Geos::FFIGeos)
16
23
  puts "Using #{Geos::FFIGeos.geos_library_path}"
17
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-geos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,14 +9,14 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-25 00:00:00.000000000 Z
12
+ date: 2012-08-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: 1.0.0
22
22
  type: :runtime
@@ -24,7 +24,7 @@ dependencies:
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ~>
27
+ - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 1.0.0
30
30
  - !ruby/object:Gem::Dependency
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  version: '0'
126
126
  requirements: []
127
127
  rubyforge_project:
128
- rubygems_version: 1.8.23
128
+ rubygems_version: 1.8.24
129
129
  signing_key:
130
130
  specification_version: 3
131
131
  summary: An ffi wrapper for GEOS, a C++ port of the Java Topology Suite (JTS).