proj4rb 2.2.2 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec1833a8b87e9d94521de30e1179f81f6cf04896c1200ce1949df372ed68b3c9
4
- data.tar.gz: 192835632d10989b94df05a038c17595c4735787bb6a0d8dde7edb55a60e0948
3
+ metadata.gz: 4d2946731ccd3cf4e96e214fce1e8e3c7fc46313f5f1d1fcc119c84e9b88f26f
4
+ data.tar.gz: 17ca8b08ed1b03be5d910ba77013b7028d88e45160b352764619799f7f156887
5
5
  SHA512:
6
- metadata.gz: 8dd8fa60741b1db78714fd63c496d33ad07439c7bf248bdffee0ecbe96f299dcb6527dc22eb014c8ee3024ae91094ebad3cb39df293438a759e704aa818677dc
7
- data.tar.gz: 252a6e5efd3fd85f136a281dc69d82f9993d630b0c5b7d4fbfe67739af1dd7cb19d4c863deb81dd8a5ec0a7c71c45cdcedfe8092feba267b85775eb77013bcae
6
+ metadata.gz: 6a23e8938aa5d6289dabe4b1f0e5ad2aa204281f6ff2f0073fcbc20b6d404bc6b265120cb0c22561ad68338248a16959fd36873777cdbe7ebae4cbf86258ad2f
7
+ data.tar.gz: 78b42798c55214f7d73df85575b5d6a4a64283ab51583656a9441a725c369fde5a7b12c36944a8dd0a66c67bdf9ef6b48e189e34a3c6d280f11e0adca4116835
data/ChangeLog CHANGED
@@ -1,67 +1,72 @@
1
- 2.2.2 (January 10, 2020)
2
- =========================
3
- * Move proj_context_set_autoclose_database to api 6.2 (Jan Klimke)
4
- * Improve search path generation code (Charlie Savage)
5
-
6
- 2.2.1 (January 8, 2020)
7
- =========================
8
- * Move proj_as_projjson from version 6.0 to 6.2 api (Charlie Savage)
9
- * Improve search path generation code (Charlie Savage)
10
-
11
- 2.2.0 (January 7, 2020)
12
- =========================
13
- * Fix broken gem - was not including all api files (Jan Klimke)
14
- * Add paths on MacOS when using Brew (Jan Klimke)
15
- * Various code cleanups (Charlie Savage)
16
-
17
- 2.1.0 (January 5, 2020)
18
- =========================
19
- * Set Ruby 2.4.1 to be the minimum allowed version (Samuel Williams)
20
- * Fix incorrect use of context, reduce warnings when running tests (Samuel Williams)
21
- * Fix `bundle exec rake test` (Samuel Williams)
22
- * Add 2.4.1 to the travis test matrix (Samuel Williams)
23
-
24
- 2.0.0 (December 30, 2019)
25
- =========================
26
- - Full rewrite to support API changes in Proj versions 5 and 6 (Charlie Savage)
27
- - As part of rewrite switch bindings to use FFI versus a C extension (Charlie Savage)
28
- - Split Ruby code into multiple files based on classes (Charlie Savage)
29
- - Add in a bunch of new classes including Context, Crs, Coordinate, Ellipsoid, Prime Meridian and Transform (Charlie Savage)
30
- - Deprecate Projection and Point - these will stop working with Proj 7 since the use an older deprecated API (Charlie Savage)
31
-
32
- 1.0.0 (December 14, 2014)
33
- =========================
34
- - Calling this 1.0.0 since its a very stable gem (Charlie Savage)
35
-
36
- 0.4.3 (August 30, 2011)
37
- =========================
38
- - Remove reference to now private projects.h header
39
-
40
- 0.4.2 (August 15, 2011)
41
- =========================
42
- - Minor build tweak to support MSVC++
43
-
44
- 0.4.1 (July 30, 2011)
45
- =========================
46
- - Search first for binaries when using windows gems
47
- - Add # encoding to test files
48
- - Reformat tests files to use standard ruby 2 space indenting
49
-
50
- 0.4.0 (July 30, 2011)
51
- =========================
52
- - Update to compile on Ruby 1.9.* (Fabio Renzo Panettieri)
53
- - Add in gemspec file (Charlie Savage)
54
- - Add rake-compiler as development dependency, remove older MinGW build system (Charlie Savage)
55
- - Move to GitHub (Charlie Savage)
56
-
57
- 0.3.1 (December 23, 2009)
58
- =========================
59
- - Update extconf.conf file to be more flexible to make it easier to build
60
- on OS X when using MacPorts
61
- - Updated windows binary to link against proj4.7
62
-
63
- 0.3.0 (August 14, 2008)
64
- =========================
65
- - Removed Proj4::UV class which was previously deprecated
66
- - New build infrastructure for Windows (Charlie Savage)
1
+ 3.0.0 (September 26, 2021)
2
+ =========================
3
+ * Support Proj 8 which removes the old Proj API (Charlie Savage)
4
+ * Support newer versions of FFI which remove support for returning strings from callbacks (Charlie Savage)
5
+
6
+ 2.2.2 (January 10, 2020)
7
+ =========================
8
+ * Move proj_context_set_autoclose_database to api 6.2 (Jan Klimke)
9
+ * Improve search path generation code (Charlie Savage)
10
+
11
+ 2.2.1 (January 8, 2020)
12
+ =========================
13
+ * Move proj_as_projjson from version 6.0 to 6.2 api (Charlie Savage)
14
+ * Improve search path generation code (Charlie Savage)
15
+
16
+ 2.2.0 (January 7, 2020)
17
+ =========================
18
+ * Fix broken gem - was not including all api files (Jan Klimke)
19
+ * Add paths on MacOS when using Brew (Jan Klimke)
20
+ * Various code cleanups (Charlie Savage)
21
+
22
+ 2.1.0 (January 5, 2020)
23
+ =========================
24
+ * Set Ruby 2.4.1 to be the minimum allowed version (Samuel Williams)
25
+ * Fix incorrect use of context, reduce warnings when running tests (Samuel Williams)
26
+ * Fix `bundle exec rake test` (Samuel Williams)
27
+ * Add 2.4.1 to the travis test matrix (Samuel Williams)
28
+
29
+ 2.0.0 (December 30, 2019)
30
+ =========================
31
+ - Full rewrite to support API changes in Proj versions 5 and 6 (Charlie Savage)
32
+ - As part of rewrite switch bindings to use FFI versus a C extension (Charlie Savage)
33
+ - Split Ruby code into multiple files based on classes (Charlie Savage)
34
+ - Add in a bunch of new classes including Context, Crs, Coordinate, Ellipsoid, Prime Meridian and Transform (Charlie Savage)
35
+ - Deprecate Projection and Point - these will stop working with Proj 7 since the use an older deprecated API (Charlie Savage)
36
+
37
+ 1.0.0 (December 14, 2014)
38
+ =========================
39
+ - Calling this 1.0.0 since its a very stable gem (Charlie Savage)
40
+
41
+ 0.4.3 (August 30, 2011)
42
+ =========================
43
+ - Remove reference to now private projects.h header
44
+
45
+ 0.4.2 (August 15, 2011)
46
+ =========================
47
+ - Minor build tweak to support MSVC++
48
+
49
+ 0.4.1 (July 30, 2011)
50
+ =========================
51
+ - Search first for binaries when using windows gems
52
+ - Add # encoding to test files
53
+ - Reformat tests files to use standard ruby 2 space indenting
54
+
55
+ 0.4.0 (July 30, 2011)
56
+ =========================
57
+ - Update to compile on Ruby 1.9.* (Fabio Renzo Panettieri)
58
+ - Add in gemspec file (Charlie Savage)
59
+ - Add rake-compiler as development dependency, remove older MinGW build system (Charlie Savage)
60
+ - Move to GitHub (Charlie Savage)
61
+
62
+ 0.3.1 (December 23, 2009)
63
+ =========================
64
+ - Update extconf.conf file to be more flexible to make it easier to build
65
+ on OS X when using MacPorts
66
+ - Updated windows binary to link against proj4.7
67
+
68
+ 0.3.0 (August 14, 2008)
69
+ =========================
70
+ - Removed Proj4::UV class which was previously deprecated
71
+ - New build infrastructure for Windows (Charlie Savage)
67
72
  - Fixed memory leaks in forward() and inverse() methods (Charlie Savage)
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in tensorflow-ruby.gemspec
4
- gemspec
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in tensorflow-ruby.gemspec
4
+ gemspec
data/README.rdoc CHANGED
@@ -24,8 +24,8 @@ If you are using the old Proj4 namespace, then you can do this:
24
24
  require 'proj4'
25
25
 
26
26
  === Crs
27
- If you are using Proj 6 create a coordinate system. To create a coordinate system, you can use CRS codes, well-known text (WKT) strings
28
- or old-style Proj4 strings (which are deprecated).
27
+ If you are using Proj 6, or newer, create a coordinate system. To create a coordinate system, you can use CRS codes,
28
+ well-known text (WKT) strings or old-style Proj4 strings (which are deprecated).
29
29
 
30
30
  crs1 = Proj::Crs.new('EPSG:4326')
31
31
 
@@ -114,7 +114,7 @@ to using Context.current
114
114
 
115
115
  === Projection
116
116
  If you are using Proj 4, then instead of using Coordinates, Crses and Tranformations you need to us Points and Projections.
117
- Those are deprecated classes but will continue to work until the release of Proj 7. Please refer to the documentation
117
+ Those are deprecated classes but will continue to work with Proj version 7 and older. Please refer to the documentation
118
118
  for more information.
119
119
 
120
120
  == Error handling
@@ -136,9 +136,8 @@ https://proj.org/development/migration.html. Note that the gem should gracefully
136
136
  the version of Proj you are using.
137
137
 
138
138
  To ensure backwards compatiblity, the Ruby bindings still include the older Point and Projection
139
- classes. However, these classes are no longer documented in this Readme because they will be
140
- removed upon the release of Proj 7 which will remove the underlying API's they depend on.
141
- So please port your code! But take note of the changes in Proj 6 described below.
139
+ classes. However, these classes are no longer documented in this Readme because the underlying API
140
+ they rely on was removed in Proj 8. So please port your code! But take note of the changes in Proj 6 described below.
142
141
 
143
142
  Proj 5 introduced the Coordinate, Crs and Tranformation APIs. However, it wasn't until Proj 6 that additional
144
143
  metadata APIs were added, so the amount of information about each object is somewhat limited in Proj 5.
data/Rakefile CHANGED
@@ -1,28 +1,28 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "rubygems"
4
- require "rake/testtask"
5
- require "rubygems/package_task"
6
- require "yard"
7
- require "yaml"
8
-
9
- # Read the spec file
10
- GEM_NAME = "proj4rb"
11
- spec = Gem::Specification.load("#{GEM_NAME}.gemspec")
12
-
13
- # Setup generic gem
14
- Gem::PackageTask.new(spec) do |pkg|
15
- pkg.package_dir = 'pkg'
16
- pkg.need_tar = false
17
- end
18
-
19
- # Yard Task
20
- desc "Generate documentation"
21
- YARD::Rake::YardocTask.new
22
-
23
- # Test Task
24
- Rake::TestTask.new do |t|
25
- t.libs << "test"
26
- t.test_files = FileList['test/*_test.rb']
27
- t.verbose = true
1
+ #!/usr/bin/env ruby
2
+
3
+ require "rubygems"
4
+ require "rake/testtask"
5
+ require "rubygems/package_task"
6
+ require "yard"
7
+ require "yaml"
8
+
9
+ # Read the spec file
10
+ GEM_NAME = "proj4rb"
11
+ spec = Gem::Specification.load("#{GEM_NAME}.gemspec")
12
+
13
+ # Setup generic gem
14
+ Gem::PackageTask.new(spec) do |pkg|
15
+ pkg.package_dir = 'pkg'
16
+ pkg.need_tar = false
17
+ end
18
+
19
+ # Yard Task
20
+ desc "Generate documentation"
21
+ YARD::Rake::YardocTask.new
22
+
23
+ # Test Task
24
+ Rake::TestTask.new do |t|
25
+ t.libs << "test"
26
+ t.test_files = FileList['test/*_test.rb']
27
+ t.verbose = true
28
28
  end
data/lib/api/api.rb CHANGED
@@ -6,7 +6,9 @@ module Proj
6
6
  extend FFI::Library
7
7
 
8
8
  def self.library_versions
9
- [17, # 6.2 *and* 6.1
9
+ [22, # 8.0 and 8.1
10
+ 19, # 7.x
11
+ 17, # 6.2 *and* 6.1
10
12
  15, # 6.0
11
13
  14, # 5.2
12
14
  13, # 5.0
@@ -63,9 +65,6 @@ module Proj
63
65
 
64
66
  ffi_lib self.search_paths
65
67
 
66
- # Load the old deprecated api - supported by all Proj versions (until Proj 7!)
67
- require_relative './api_4_9'
68
-
69
68
  library = ffi_libraries.first
70
69
 
71
70
  # proj_info was introduced in Proj 5
@@ -73,6 +72,9 @@ module Proj
73
72
  require_relative './api_5_0'
74
73
  PROJ_VERSION = Gem::Version.new(self.proj_info[:version])
75
74
  else
75
+ # Load the old deprecated api
76
+ require_relative './api_4_9'
77
+
76
78
  release = self.pj_get_release
77
79
  version = release.match(/\d\.\d\.\d/)
78
80
  PROJ_VERSION = Gem::Version.new(version)
@@ -89,6 +91,11 @@ module Proj
89
91
  end
90
92
  end
91
93
 
94
+ # Load the old deprecated API for versions before version 8
95
+ if Api::PROJ_VERSION < Gem::Version.new('8.0.0')
96
+ require_relative './api_4_9'
97
+ end
98
+
92
99
  if Api::PROJ_VERSION >= Gem::Version.new('5.1.0')
93
100
  require_relative './api_5_1'
94
101
  end
data/lib/api/api_6_0.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Proj
2
2
  module Api
3
- callback :proj_file_finder, [:PJ_CONTEXT, :string, :pointer], :string
3
+ callback :proj_file_finder, [:PJ_CONTEXT, :string, :pointer], :pointer
4
4
  attach_function :proj_context_set_file_finder, [:PJ_CONTEXT, :proj_file_finder, :pointer], :void
5
5
  attach_function :proj_context_set_search_paths, [:PJ_CONTEXT, :int, :pointer], :void
6
6
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/proj.rb CHANGED
@@ -1,22 +1,22 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  require_relative 'api/api'
4
- require_relative './config'
4
+ require_relative 'proj/config'
5
5
 
6
- require_relative './area'
7
- require_relative './context'
8
- require_relative './coordinate'
9
- require_relative './ellipsoid'
10
- require_relative './error'
11
- require_relative './point'
12
- require_relative './prime_meridian'
13
- require_relative './unit'
6
+ require_relative 'proj/area'
7
+ require_relative 'proj/context'
8
+ require_relative 'proj/coordinate'
9
+ require_relative 'proj/ellipsoid'
10
+ require_relative 'proj/error'
11
+ require_relative 'proj/point'
12
+ require_relative 'proj/prime_meridian'
13
+ require_relative 'proj/unit'
14
14
 
15
- require_relative './pj_object'
16
- require_relative './operation'
17
- require_relative './crs'
18
- require_relative './projection'
19
- require_relative './transformation'
15
+ require_relative 'proj/pj_object'
16
+ require_relative 'proj/operation'
17
+ require_relative 'proj/crs'
18
+ require_relative 'proj/projection'
19
+ require_relative 'proj/transformation'
20
20
 
21
21
  module Proj
22
22
  def self.info
@@ -28,4 +28,4 @@ module Proj
28
28
  end
29
29
  end
30
30
 
31
- Proj::Config.instance.set_search_paths
31
+ Proj::Config.instance.set_search_paths
data/proj4rb.gemspec CHANGED
@@ -1,33 +1,33 @@
1
- Gem::Specification.new do |spec|
2
- spec.name = 'proj4rb'
3
- spec.version = '2.2.2'
4
- spec.summary = 'Ruby bindings for the Proj.4 Carthographic Projection library'
5
- spec.description = <<-EOF
6
- Proj4rb is a ruby binding for the Proj.4 Carthographic Projection library, that supports conversions between a very large number of geographic coordinate systems and datumspec.
7
- EOF
8
- spec.platform = Gem::Platform::RUBY
9
- spec.authors = ['Guilhem Vellut', 'Jochen Topf', 'Charlie Savage']
10
- spec.homepage = 'https://github.com/cfis/proj4rb'
11
- spec.required_ruby_version = '>= 2.4.1'
12
- spec.license = 'MIT'
13
-
14
- spec.requirements << 'Proj (Proj4) Library'
15
- spec.require_path = 'lib'
16
- spec.files = Dir['ChangeLog',
17
- 'Gemfile',
18
- 'MIT-LICENSE',
19
- 'proj4rb.gemspec',
20
- 'Rakefile',
21
- 'README.rdoc',
22
- 'lib/**/*.rb',
23
- 'test/*.rb']
24
-
25
- spec.test_files = Dir["test/test_*.rb"]
26
-
27
- spec.add_dependency "ffi"
28
-
29
- spec.add_development_dependency('bundler')
30
- spec.add_development_dependency('rake')
31
- spec.add_development_dependency('minitest')
32
- spec.add_development_dependency('yard')
1
+ Gem::Specification.new do |spec|
2
+ spec.name = 'proj4rb'
3
+ spec.version = '3.0.0'
4
+ spec.summary = 'Ruby bindings for the Proj.4 Carthographic Projection library'
5
+ spec.description = <<-EOF
6
+ Proj4rb is a ruby binding for the Proj.4 Carthographic Projection library, that supports conversions between a very large number of geographic coordinate systems and datumspec.
7
+ EOF
8
+ spec.platform = Gem::Platform::RUBY
9
+ spec.authors = ['Guilhem Vellut', 'Jochen Topf', 'Charlie Savage']
10
+ spec.homepage = 'https://github.com/cfis/proj4rb'
11
+ spec.required_ruby_version = '>= 2.4.1'
12
+ spec.license = 'MIT'
13
+
14
+ spec.requirements << 'Proj (Proj4) Library'
15
+ spec.require_path = 'lib'
16
+ spec.files = Dir['ChangeLog',
17
+ 'Gemfile',
18
+ 'MIT-LICENSE',
19
+ 'proj4rb.gemspec',
20
+ 'Rakefile',
21
+ 'README.rdoc',
22
+ 'lib/**/*.rb',
23
+ 'test/*.rb']
24
+
25
+ spec.test_files = Dir["test/test_*.rb"]
26
+
27
+ spec.add_dependency "ffi"
28
+
29
+ spec.add_development_dependency('bundler')
30
+ spec.add_development_dependency('rake')
31
+ spec.add_development_dependency('minitest')
32
+ spec.add_development_dependency('yard')
33
33
  end
@@ -1,7 +1,7 @@
1
- require 'bundler/setup'
2
- require 'minitest/autorun'
3
- require 'proj'
4
-
5
- class AbstractTest < Minitest::Test
6
- end
7
-
1
+ require 'bundler/setup'
2
+ require 'minitest/autorun'
3
+ require 'proj'
4
+
5
+ class AbstractTest < Minitest::Test
6
+ end
7
+
@@ -1,35 +1,35 @@
1
- # encoding: UTF-8
2
-
3
- require_relative './abstract_test'
4
-
5
- class CoordinateTest < AbstractTest
6
- def test_create_xyzt
7
- coord = Proj::Coordinate.new(:x => 1, :y => 2, :z => 3, :t => 4)
8
- assert_equal('v0: 1.0, v1: 2.0, v2: 3.0, v3: 4.0', coord.to_s)
9
- end
10
-
11
- def test_create_uvwt
12
- coord = Proj::Coordinate.new(:u => 5, :v => 6, :w => 7, :t => 8)
13
- assert_equal('v0: 5.0, v1: 6.0, v2: 7.0, v3: 8.0', coord.to_s)
14
- end
15
-
16
- def test_create_lpzt
17
- coord = Proj::Coordinate.new(:lam => 9, :phi => 10, :z => 11, :t => 12)
18
- assert_equal('v0: 9.0, v1: 10.0, v2: 11.0, v3: 12.0', coord.to_s)
19
- end
20
-
21
- def test_create_geod
22
- coord = Proj::Coordinate.new(:s => 13, :a1 => 14, :a2 => 15)
23
- assert_equal('v0: 13.0, v1: 14.0, v2: 15.0, v3: 0.0', coord.to_s)
24
- end
25
-
26
- def test_create_opk
27
- coord = Proj::Coordinate.new(:o => 16, :p => 17, :k => 18)
28
- assert_equal('v0: 16.0, v1: 17.0, v2: 18.0, v3: 0.0', coord.to_s)
29
- end
30
-
31
- def test_create_enu
32
- coord = Proj::Coordinate.new(:e => 19, :n => 20, :u => 21)
33
- assert_equal('v0: 19.0, v1: 20.0, v2: 21.0, v3: 0.0', coord.to_s)
34
- end
1
+ # encoding: UTF-8
2
+
3
+ require_relative './abstract_test'
4
+
5
+ class CoordinateTest < AbstractTest
6
+ def test_create_xyzt
7
+ coord = Proj::Coordinate.new(:x => 1, :y => 2, :z => 3, :t => 4)
8
+ assert_equal('v0: 1.0, v1: 2.0, v2: 3.0, v3: 4.0', coord.to_s)
9
+ end
10
+
11
+ def test_create_uvwt
12
+ coord = Proj::Coordinate.new(:u => 5, :v => 6, :w => 7, :t => 8)
13
+ assert_equal('v0: 5.0, v1: 6.0, v2: 7.0, v3: 8.0', coord.to_s)
14
+ end
15
+
16
+ def test_create_lpzt
17
+ coord = Proj::Coordinate.new(:lam => 9, :phi => 10, :z => 11, :t => 12)
18
+ assert_equal('v0: 9.0, v1: 10.0, v2: 11.0, v3: 12.0', coord.to_s)
19
+ end
20
+
21
+ def test_create_geod
22
+ coord = Proj::Coordinate.new(:s => 13, :a1 => 14, :a2 => 15)
23
+ assert_equal('v0: 13.0, v1: 14.0, v2: 15.0, v3: 0.0', coord.to_s)
24
+ end
25
+
26
+ def test_create_opk
27
+ coord = Proj::Coordinate.new(:o => 16, :p => 17, :k => 18)
28
+ assert_equal('v0: 16.0, v1: 17.0, v2: 18.0, v3: 0.0', coord.to_s)
29
+ end
30
+
31
+ def test_create_enu
32
+ coord = Proj::Coordinate.new(:e => 19, :n => 20, :u => 21)
33
+ assert_equal('v0: 19.0, v1: 20.0, v2: 21.0, v3: 0.0', coord.to_s)
34
+ end
35
35
  end