gis-distance 1.1.0 → 1.2.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: d53bfba92587a4e24a8e79783b523961f5649f8e677197160d1788230ff741b4
4
- data.tar.gz: 78540a52eeac8d58a13bf99d03bccbbf7277f7aac8db0c9c1913301e4ef9d7ab
3
+ metadata.gz: afa5f1131b787db92e5e13a3992c471e8381167b926dc942eea37a398a8dc01a
4
+ data.tar.gz: 60996c27a828f65302c80afc8e15ae3bfc327b7f49a4283fa130a6fd6e476492
5
5
  SHA512:
6
- metadata.gz: 9b87053488d8079fcd34c5260f6ee01777cff4499af6ab5f88928d98f26977e4195a4584199dfb13f70d986a7bb50934ded14e3dc46fc95c9329e2a8b2ab9340
7
- data.tar.gz: 2b1b1e061f1fd25dc19ccf2163216a9fe822462d6d9c40b3e834b269d8817e3b965e5879598638ed9366f735cb48b4104ee2b1d34f6fd324e179322b92a85560
6
+ metadata.gz: f2ab85690778cb6b8c2a70b28f473b7fbdc5ec088ccdbc97282cfc0a47c0719ad2fd80f294d8b6eff8ff6d34ab38edfa3df54864cc1194ba9a53371c820dddae
7
+ data.tar.gz: 26dd4b737786902955c447fe6e7537116786be6c57ecada17bbe8151f59ee767230699b767f45242f5fe08320983eb1fa182d3cf3a2d7b27e55d9a2e99f5a9d2
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGES.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 1.2.0 - 3-Oct-2024
2
+ * Added support for the vicenty formula, and the rvicenty gem is now a
3
+ runtime dependency.
4
+ * Dropped Ruby 2.x from the github test matrix. It will still work with
5
+ older versions of Ruby, however.
6
+ * Some minor updates to the README.md.
7
+
1
8
  ## 1.1.0 - 27-Feb-2021
2
9
  * Switched from test-unit to rspec.
3
10
  * Added a Gemfile.
data/Gemfile CHANGED
@@ -1,3 +1,2 @@
1
- source 'https://rubygems.org' do
2
- gemspec
3
- end
1
+ source 'https://rubygems.org'
2
+ gemspec
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Ruby](https://github.com/djberg96/gis-distance/actions/workflows/ruby.yml/badge.svg)](https://github.com/djberg96/gis-distance/actions/workflows/ruby.yml)
2
+
1
3
  ## Description
2
4
  The gis-distance library allows you to calculate geographic distance between
3
5
  two points using the formula of your choice.
@@ -5,6 +7,9 @@ two points using the formula of your choice.
5
7
  ## Installation
6
8
  `gem install gis-distance`
7
9
 
10
+ ## Adding the trusted cert
11
+ `gem cert --add <(curl -Ls https://raw.githubusercontent.com/djberg96/gis-distance/main/certs/djberg96_pub.pem)`
12
+
8
13
  ## Synopsis
9
14
  ```ruby
10
15
  require 'gis/distance' # or 'gis-distance'
@@ -15,6 +20,7 @@ gis = GIS::Distance.new(40.47, 73.58, 34.3, 118.15)
15
20
  # Set the formula of your choice
16
21
  gis.formula = 'cosines'
17
22
  gis.formula = 'haversine'
23
+ gis.formula = 'vincenty'
18
24
 
19
25
  p gis.distance # Kilometers
20
26
  p gis.distance.mi # Miles
@@ -23,10 +29,17 @@ p gis.distance.mi # Miles
23
29
  ## Available Formulas
24
30
  * haversine (https://en.wikipedia.org/wiki/Haversine_formula)
25
31
  * cosine (https://en.wikipedia.org/wiki/Law_of_cosines)
32
+ * vincenty (https://en.wikipedia.org/wiki/Vincenty%27s_formulae)
26
33
 
27
34
  ## See Also
28
35
  http://en.wikipedia.org/wiki/Earth_radius
29
36
 
37
+ ## Miscellaneous
38
+ Ruby 2.x was dropped from the test matrix as of version 1.2 because of
39
+ incompatibility with bundler. This library should still work fine with
40
+ older versions of Ruby, but you should strongly consider upgrading at this
41
+ point since Ruby 2.x is now EOL.
42
+
30
43
  ## License
31
44
  Artistic-2.0
32
45
 
data/Rakefile CHANGED
@@ -2,14 +2,15 @@ require 'rake'
2
2
  require 'rake/clean'
3
3
  require 'rbconfig'
4
4
  require 'rspec/core/rake_task'
5
+ require 'rubocop/rake_task'
5
6
 
6
- CLEAN.include('**/*.gem', '**/*.log')
7
+ CLEAN.include('**/*.gem', '**/*.log', '**/*.lock')
7
8
 
8
9
  namespace 'gem' do
9
10
  desc 'Create the gis-distance gem'
10
11
  task :create => [:clean] do
11
12
  require 'rubygems/package'
12
- spec = eval(IO.read('gis-distance.gemspec'))
13
+ spec = Gem::Specification.load('gis-distance.gemspec')
13
14
  spec.signing_key = File.join(Dir.home, '.ssh', 'gem-private_key.pem')
14
15
  Gem::Package.build(spec)
15
16
  end
@@ -21,7 +22,14 @@ namespace 'gem' do
21
22
  end
22
23
  end
23
24
 
25
+ RuboCop::RakeTask.new
26
+
24
27
  desc "Run the test suite"
25
28
  RSpec::Core::RakeTask.new(:spec)
26
29
 
30
+ # Clean up afterwards
31
+ Rake::Task[:spec].enhance do
32
+ Rake::Task[:clean].invoke
33
+ end
34
+
27
35
  task :default => :spec
data/gis-distance.gemspec CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'gis-distance'
5
- spec.version = '1.1.0'
5
+ spec.version = '1.2.0'
6
6
  spec.authors = ['Daniel J. Berger', 'Ardith Falkner']
7
7
  spec.license = 'Artistic-2.0'
8
8
  spec.description = 'Calculate the distance between two points on Earth'
@@ -12,16 +12,20 @@ Gem::Specification.new do |spec|
12
12
  spec.homepage = 'http://github.com/djberg96/gis-distance'
13
13
  spec.cert_chain = ['certs/djberg96_pub.pem']
14
14
 
15
+ spec.add_dependency('rvincenty', '~> 0.1.0')
15
16
  spec.add_development_dependency('rake')
16
17
  spec.add_development_dependency('rspec', '~> 3.9')
18
+ spec.add_development_dependency('rubocop')
19
+ spec.add_development_dependency('rubocop-rspec')
17
20
 
18
21
  spec.metadata = {
19
- 'homepage_uri' => 'https://github.com/djberg96/gis-distance',
20
- 'bug_tracker_uri' => 'https://github.com/djberg96/gis-distance/issues',
21
- 'changelog_uri' => 'https://github.com/djberg96/gis-distance/blob/master/CHANGES',
22
- 'documentation_uri' => 'https://github.com/djberg96/gis-distance/wiki',
23
- 'source_code_uri' => 'https://github.com/djberg96/gis-distance',
24
- 'wiki_uri' => 'https://github.com/djberg96/gis-distance/wiki'
22
+ 'homepage_uri' => 'https://github.com/djberg96/gis-distance',
23
+ 'bug_tracker_uri' => 'https://github.com/djberg96/gis-distance/issues',
24
+ 'changelog_uri' => 'https://github.com/djberg96/gis-distance/blob/main/CHANGES.md',
25
+ 'documentation_uri' => 'https://github.com/djberg96/gis-distance/wiki',
26
+ 'source_code_uri' => 'https://github.com/djberg96/gis-distance',
27
+ 'wiki_uri' => 'https://github.com/djberg96/gis-distance/wiki',
28
+ 'rubygems_mfa_required' => 'true'
25
29
  }
26
30
 
27
31
  spec.summary = <<-EOF
data/lib/gis/distance.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # The GIS module serves as a namespace only.
2
4
  module GIS
3
5
  # The Distance class encapsulates methods related to geographic distance.
@@ -6,7 +8,7 @@ module GIS
6
8
  class Error < StandardError; end
7
9
 
8
10
  # The version of the gis-distance library
9
- VERSION = '1.1.0'.freeze
11
+ VERSION = '1.2.0'
10
12
 
11
13
  # Create a new GIS::Distance object using the two sets of coordinates
12
14
  # that are provided.
@@ -28,9 +30,7 @@ module GIS
28
30
 
29
31
  # Returns the radius of the Earth in kilometers. The default is 6367.45.
30
32
  #
31
- def radius
32
- @radius
33
- end
33
+ attr_reader :radius
34
34
 
35
35
  # Sets the radius of the Earth in kilometers. This is variable because
36
36
  # the Earth is not perfectly spherical, and you may wish to adjust it.
@@ -44,9 +44,7 @@ module GIS
44
44
  # See http://en.wikipedia.org/wiki/Earth_radius for more information.
45
45
  #
46
46
  def radius=(kms)
47
- if kms < 6357.0 || kms > 6378.0
48
- raise Error, "Proposed radius '#{kms}' is out of range"
49
- end
47
+ raise Error, "Proposed radius '#{kms}' is out of range" if kms < 6357.0 || kms > 6378.0
50
48
  @radius = kms
51
49
  end
52
50
 
@@ -54,9 +52,7 @@ module GIS
54
52
  # is 'haversine'.
55
53
  #--
56
54
  # See http://en.wikipedia.org/wiki/Haversine_formula for details.
57
- def formula
58
- @formula
59
- end
55
+ attr_reader :formula
60
56
 
61
57
  # Sets the formula to be used internally for calculating the distance.
62
58
  # The default is 'haversine'. Your other option is 'cosines' (i.e. the
@@ -66,12 +62,14 @@ module GIS
66
62
  #
67
63
  def formula=(formula)
68
64
  case formula.to_s.downcase
69
- when 'haversine'
70
- @formula = 'haversine'
71
- when 'cosines'
72
- @formula = 'cosines'
73
- else
74
- raise Error, "Formula '#{formula}' not supported"
65
+ when 'haversine'
66
+ @formula = 'haversine'
67
+ when 'cosines'
68
+ @formula = 'cosines'
69
+ when 'vincenty'
70
+ @formula = 'vincenty'
71
+ else
72
+ raise Error, "Formula '#{formula}' not supported"
75
73
  end
76
74
  end
77
75
 
@@ -80,12 +78,14 @@ module GIS
80
78
  #
81
79
  def distance
82
80
  @distance =
83
- case @formula.to_s.downcase
84
- when 'haversine'
85
- haversine_formula
86
- when 'cosines'
87
- law_of_cosines_formula
88
- end
81
+ case @formula.to_s.downcase
82
+ when 'haversine'
83
+ haversine_formula
84
+ when 'cosines'
85
+ law_of_cosines_formula
86
+ when 'vincenty'
87
+ vincenty_formula
88
+ end
89
89
  end
90
90
 
91
91
  private
@@ -94,19 +94,19 @@ module GIS
94
94
  # 90.0 and -90.0 while longitudes must be between 180.0 and -180.0.
95
95
  #
96
96
  def validate(lat1, lon1, lat2, lon2)
97
- [lat1, lat2].each{ |lat|
97
+ [lat1, lat2].each do |lat|
98
98
  if lat > 90 || lat < -90
99
99
  msg = "Latitude '#{lat}' is invalid - must be between -90 and 90"
100
100
  raise Error, msg
101
101
  end
102
- }
102
+ end
103
103
 
104
- [lon1, lon2].each{ |lon|
104
+ [lon1, lon2].each do |lon|
105
105
  if lon > 180 || lon < -180
106
106
  msg = "Longitude '#{lon}' is invalid - must be between -180 and 180"
107
107
  raise Error, msg
108
108
  end
109
- }
109
+ end
110
110
  end
111
111
 
112
112
  # See https://en.wikipedia.org/wiki/Law_of_cosines
@@ -116,9 +116,9 @@ module GIS
116
116
  sin2 = Math.sin(@latitude2 * Math::PI / 180)
117
117
  cos1 = Math.cos(@latitude1 * Math::PI / 180)
118
118
  cos2 = Math.cos(@latitude2 * Math::PI / 180)
119
- cos3 = Math.cos(@longitude2 * Math::PI / 180 - @longitude1 * Math::PI / 180)
119
+ cos3 = Math.cos((@longitude2 * Math::PI / 180) - (@longitude1 * Math::PI / 180))
120
120
 
121
- Math.acos(sin1 * sin2 + cos1 * cos2 * cos3) * radius
121
+ Math.acos((sin1 * sin2) + (cos1 * cos2 * cos3)) * radius
122
122
  end
123
123
 
124
124
  # See http://en.wikipedia.org/wiki/Haversine_formula
@@ -132,15 +132,21 @@ module GIS
132
132
  dlat = lat2 - lat1
133
133
  dlon = lon2 - lon1
134
134
 
135
- a = ((Math.sin(dlat/2))**2) + (Math.cos(lat1) * Math.cos(lat2) * (Math.sin(dlon/2)) ** 2)
136
- c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a))
135
+ a = (Math.sin(dlat / 2)**2) + (Math.cos(lat1) * Math.cos(lat2) * (Math.sin(dlon / 2)**2))
136
+ c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))
137
137
 
138
138
  radius * c
139
139
  end
140
140
 
141
+ # See https://en.wikipedia.org/wiki/Vincenty's_formulae
142
+ def vincenty_formula
143
+ require 'rvincenty'
144
+ RVincenty.distance([@latitude1, @longitude1], [@latitude2, @longitude2]) / 1000.0
145
+ end
146
+
141
147
  # Add a custom method to the base Float class if it isn't already defined.
142
148
  class ::Float
143
- unless self.respond_to?(:mi)
149
+ unless respond_to?(:mi)
144
150
  # Convert miles to kilometers.
145
151
  def mi
146
152
  self * 0.621371192
data/lib/gis-distance.rb CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'gis/distance'
@@ -1,94 +1,124 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec'
2
4
  require 'gis/distance'
3
5
 
4
6
  RSpec.describe GIS::Distance do
5
- let(:gis){ GIS::Distance.new(40.47, 73.58, 34.3, 118.15) }
7
+ let(:gis){ described_class.new(40.47, 73.58, 34.3, 118.15) }
6
8
 
7
- example "version" do
8
- expect(GIS::Distance::VERSION).to eq('1.1.0')
9
+ example 'version' do
10
+ expect(GIS::Distance::VERSION).to eq('1.2.0')
9
11
  expect(GIS::Distance::VERSION).to be_frozen
10
12
  end
11
13
 
12
- example "distance basic functionality" do
14
+ example 'distance basic functionality' do
13
15
  expect(gis).to respond_to(:distance)
14
16
  expect{ gis.distance }.not_to raise_error
15
- expect(gis.distance).to be_kind_of(Float)
17
+ expect(gis.distance).to be_a(Float)
18
+ end
19
+
20
+ context 'haversine' do
21
+ before do
22
+ gis.formula = 'haversine'
23
+ end
24
+
25
+ example 'distance method returns expected result' do
26
+ expect(gis.distance).to be_within(0.01).of(3952.39)
27
+ expect(described_class.new(40.47, 73.58, 40.47, 73.58).distance).to eq(0.0)
28
+ end
16
29
  end
17
30
 
18
- example "distance method returns expected result" do
19
- expect(gis.distance).to be_within(0.01).of(3952.39)
20
- expect(GIS::Distance.new(40.47, 73.58, 40.47, 73.58).distance).to eq(0.0)
31
+ context 'cosines' do
32
+ before do
33
+ gis.formula = 'cosines'
34
+ end
35
+
36
+ example 'distance method returns expected result' do
37
+ expect(gis.distance).to be_within(0.01).of(3952.39)
38
+ expect(described_class.new(40.47, 73.58, 40.47, 73.58).distance).to eq(0.0)
39
+ end
40
+ end
41
+
42
+ context 'vincenty' do
43
+ before do
44
+ gis.formula = 'vincenty'
45
+ end
46
+
47
+ example 'distance method returns expected result' do
48
+ expect(gis.distance).to be_within(0.01).of(3963.40)
49
+ expect(described_class.new(40.47, 73.58, 40.47, 73.58).distance).to eq(0.0)
50
+ end
21
51
  end
22
52
 
23
- example "constructor requires four arguments" do
24
- expect{ GIS::Distance.new }.to raise_error(ArgumentError)
25
- expect{ GIS::Distance.new(40.47) }.to raise_error(ArgumentError)
26
- expect{ GIS::Distance.new(40.47, 73.58) }.to raise_error(ArgumentError)
27
- expect{ GIS::Distance.new(40.47, 73.58, 34.3) }.to raise_error(ArgumentError)
53
+ example 'constructor requires four arguments' do
54
+ expect{ described_class.new }.to raise_error(ArgumentError)
55
+ expect{ described_class.new(40.47) }.to raise_error(ArgumentError)
56
+ expect{ described_class.new(40.47, 73.58) }.to raise_error(ArgumentError)
57
+ expect{ described_class.new(40.47, 73.58, 34.3) }.to raise_error(ArgumentError)
28
58
  end
29
59
 
30
- example "latitude and longitude must be within range" do
31
- expect{ GIS::Distance.new(91.0, 100.0, 45.0, 45.0) }.to raise_error(GIS::Distance::Error)
32
- expect{ GIS::Distance.new(90.0, 190.0, 45.0, 45.0) }.to raise_error(GIS::Distance::Error)
60
+ example 'latitude and longitude must be within range' do
61
+ expect{ described_class.new(91.0, 100.0, 45.0, 45.0) }.to raise_error(GIS::Distance::Error)
62
+ expect{ described_class.new(90.0, 190.0, 45.0, 45.0) }.to raise_error(GIS::Distance::Error)
33
63
  end
34
64
 
35
- example "radius basic functionality" do
65
+ example 'radius basic functionality' do
36
66
  expect(gis).to respond_to(:radius)
37
67
  expect{ gis.radius }.not_to raise_error
38
- expect( gis.radius).to be_kind_of(Float)
68
+ expect(gis.radius).to be_a(Float)
39
69
  end
40
70
 
41
- example "default radius returns expected value" do
71
+ example 'default radius returns expected value' do
42
72
  expect(gis.radius).to eq(6367.45)
43
73
  end
44
74
 
45
- example "radius does not accept an argument" do
75
+ example 'radius does not accept an argument' do
46
76
  expect{ gis.radius(1) }.to raise_error(ArgumentError)
47
77
  end
48
78
 
49
- example "radius setter basic functionality" do
79
+ example 'radius setter basic functionality' do
50
80
  expect(gis).to respond_to(:radius=)
51
81
  expect{ gis.radius = 6368.0 }.not_to raise_error
52
- expect( gis.radius).to eq(6368.0)
82
+ expect(gis.radius).to eq(6368.0)
53
83
  end
54
84
 
55
- example "radius value must be within a certain range" do
85
+ example 'radius value must be within a certain range' do
56
86
  expect{ gis.radius = 6200 }.to raise_error(GIS::Distance::Error)
57
87
  expect{ gis.radius = 6400 }.to raise_error(GIS::Distance::Error)
58
88
  end
59
89
 
60
- example "formula basic functionality" do
90
+ example 'formula basic functionality' do
61
91
  expect(gis).to respond_to(:formula)
62
92
  expect{ gis.formula }.not_to raise_error
63
- expect(gis.formula).to be_kind_of(String)
93
+ expect(gis.formula).to be_a(String)
64
94
  end
65
95
 
66
- example "formula default value" do
96
+ example 'formula default value' do
67
97
  expect(gis.formula).to eq('haversine')
68
98
  end
69
99
 
70
- example "formula setter basic functionality" do
100
+ example 'formula setter basic functionality' do
71
101
  expect(gis).to respond_to(:formula=)
72
102
  expect{ gis.formula = 'haversine' }.not_to raise_error
73
103
  end
74
104
 
75
- example "formula setter validates value" do
105
+ example 'formula setter validates value' do
76
106
  expect{ gis.formula(1) }.to raise_error(ArgumentError)
77
107
  expect{ gis.formula = 'foo' }.to raise_error(GIS::Distance::Error)
78
108
  end
79
109
 
80
- example "mi basic functionality" do
110
+ example 'mi basic functionality' do
81
111
  expect(gis.distance).to respond_to(:mi)
82
112
  expect{ gis.distance.mi }.not_to raise_error
83
- expect(gis.distance.mi).to be_kind_of(Float)
113
+ expect(gis.distance.mi).to be_a(Float)
84
114
  end
85
115
 
86
- example "mi behaves as expected" do
116
+ example 'mi behaves as expected' do
87
117
  expect(gis.distance).to be > gis.distance.mi
88
118
  expect(gis.distance.mi).to be_within(0.1).of(2455.9)
89
119
  end
90
120
 
91
- example "mi_expected_errors" do
121
+ example 'mi_expected_errors' do
92
122
  expect{ gis.distance.mi(1) }.to raise_error(ArgumentError)
93
123
  end
94
124
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gis-distance
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -36,8 +36,22 @@ cert_chain:
36
36
  ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
37
37
  WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
38
38
  -----END CERTIFICATE-----
39
- date: 2021-02-27 00:00:00.000000000 Z
39
+ date: 2024-10-03 00:00:00.000000000 Z
40
40
  dependencies:
41
+ - !ruby/object:Gem::Dependency
42
+ name: rvincenty
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,34 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '3.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
69
111
  description: Calculate the distance between two points on Earth
70
112
  email: djberg96@gmail.com
71
113
  executables: []
@@ -88,10 +130,11 @@ licenses:
88
130
  metadata:
89
131
  homepage_uri: https://github.com/djberg96/gis-distance
90
132
  bug_tracker_uri: https://github.com/djberg96/gis-distance/issues
91
- changelog_uri: https://github.com/djberg96/gis-distance/blob/master/CHANGES
133
+ changelog_uri: https://github.com/djberg96/gis-distance/blob/main/CHANGES.md
92
134
  documentation_uri: https://github.com/djberg96/gis-distance/wiki
93
135
  source_code_uri: https://github.com/djberg96/gis-distance
94
136
  wiki_uri: https://github.com/djberg96/gis-distance/wiki
137
+ rubygems_mfa_required: 'true'
95
138
  post_install_message:
96
139
  rdoc_options: []
97
140
  require_paths:
@@ -107,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
150
  - !ruby/object:Gem::Version
108
151
  version: '0'
109
152
  requirements: []
110
- rubygems_version: 3.0.3
153
+ rubygems_version: 3.5.16
111
154
  signing_key:
112
155
  specification_version: 4
113
156
  summary: The gis-distance library provides a simple interface for calculating the
metadata.gz.sig CHANGED
Binary file