geo_coord 0.1.0 → 0.2.0
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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +32 -0
- data/CHANGELOG.md +8 -0
- data/README.md +5 -6
- data/geo_coord.gemspec +5 -3
- data/lib/geo/coord.rb +60 -60
- data/lib/geo/coord/version.rb +3 -1
- metadata +39 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3db98f605de72af073cfe394b476854eaea49c5f25ebd576e154eb4674d32ec
|
4
|
+
data.tar.gz: a858a86c033c9dc3e6c1d12d0f1de494ac59b253b7bacf541f8f66d78050a5af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b0c3ab2b548655cf0ea6b4dc344dfbfad703cdcd02de350d1321e1efc97eed917a161182502703b437a25ba8b1703a60fb0df8aed8bc88fc2358ca2590507a9
|
7
|
+
data.tar.gz: bfe1756c5a66741f6cbd81e41d5b4d6977ab6df66b901bad410ddea4fcb246402fd1d8a3b932e8e698a979ad603ed5188668941d47a53a4b7fe650bc18fa7e7a
|
@@ -0,0 +1,32 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
main:
|
11
|
+
name: >-
|
12
|
+
${{ matrix.ruby }}
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
strategy:
|
15
|
+
fail-fast: false
|
16
|
+
matrix:
|
17
|
+
ruby: [ 2.5, 2.6, 2.7, 3.0 ]
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- name: checkout
|
21
|
+
uses: actions/checkout@v2
|
22
|
+
- name: set up Ruby
|
23
|
+
uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.ruby }}
|
26
|
+
|
27
|
+
- name: install dependencies
|
28
|
+
run: bundle install --jobs 3 --retry 3
|
29
|
+
- name: spec
|
30
|
+
run: bundle exec rake spec
|
31
|
+
- name: rubocop
|
32
|
+
run: bundle exec rake rubocop
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Geo::Coord changelog
|
2
2
|
|
3
|
+
## 0.2.0 - Feb 15, 2021
|
4
|
+
|
5
|
+
* Support Ruby versions up to 3.0
|
6
|
+
* Drop compatibility checks for Ruby < 2.4
|
7
|
+
* Update specs to modern style (no hope to make it to standard library after 5 years :shrug:)
|
8
|
+
* Fix seconds fraction truncation in DMS-initialization (@matthew-angelswing)
|
9
|
+
* Change positional `hemisphere` argument in `to_s` to keyword for clarity
|
10
|
+
|
3
11
|
## 0.1.0 - Feb 3, 2018
|
4
12
|
|
5
13
|
* Switch to `BigDecimal` for internal values storage;
|
data/README.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# Geo::Coord—simple geo coordinates class for Ruby
|
2
2
|
|
3
3
|
[](http://badge.fury.io/rb/geo_coord)
|
4
|
-
|
5
|
-
[](https://travis-ci.org/zverok/geo_coord)
|
4
|
+

|
6
5
|
[](https://coveralls.io/r/zverok/geo_coord?branch=master)
|
7
6
|
|
8
7
|
`Geo::Coord` is a basic class representing `[latitude, longitude]` pair
|
@@ -36,13 +35,13 @@ other projects.
|
|
36
35
|
You can read my initial proposal [here](https://github.com/zverok/geo_coord/blob/master/StdlibProposal.md)
|
37
36
|
and discussion in Ruby tracker [there](https://bugs.ruby-lang.org/issues/12361).
|
38
37
|
|
39
|
-
I still have a small hope it would be part of stdlib once, that's why I
|
38
|
+
~~I still have a small hope it would be part of stdlib once, that's why I
|
40
39
|
preserve the style of specs (outdated rspec, but compatible with mspec used
|
41
|
-
for standard library) and docs (yard in RDoc-compatibility mode)
|
40
|
+
for standard library) and docs (yard in RDoc-compatibility mode).~~
|
42
41
|
|
43
42
|
## Installation
|
44
43
|
|
45
|
-
|
44
|
+
As usual: `gem install geo_coord` or add
|
46
45
|
`gem "geo_coord", require: "geo/coord"` to your Gemfile.
|
47
46
|
|
48
47
|
## Usage
|
@@ -178,7 +177,7 @@ metres for distances (as they are SI unit) and degrees for azimuth.
|
|
178
177
|
Latitude and longitude are stored in degrees, but radians values accessors
|
179
178
|
are provided (being widely used in geodesy math).
|
180
179
|
|
181
|
-
**Internal storage**: Since ver 0.0
|
180
|
+
**Internal storage**: Since ver 0.1.0, latitude and longitude stored
|
182
181
|
internally as an instances of `BigDecimal`. While having some memory
|
183
182
|
and performance downsides, this datatype provides _correctness_ of
|
184
183
|
conversions between floating point & deg-min-sec representations:
|
data/geo_coord.gemspec
CHANGED
@@ -20,15 +20,17 @@ Gem::Specification.new do |s|
|
|
20
20
|
end
|
21
21
|
s.require_paths = ['lib']
|
22
22
|
|
23
|
-
s.required_ruby_version = '>= 2.
|
23
|
+
s.required_ruby_version = '>= 2.4.0'
|
24
24
|
|
25
25
|
s.add_development_dependency 'rubocop', '>= 0.40'
|
26
|
-
s.add_development_dependency 'rspec'
|
27
|
-
s.add_development_dependency '
|
26
|
+
s.add_development_dependency 'rubocop-rspec'
|
27
|
+
s.add_development_dependency 'rspec'
|
28
28
|
s.add_development_dependency 'simplecov', '~> 0.9'
|
29
29
|
s.add_development_dependency 'rake'
|
30
30
|
s.add_development_dependency 'rubygems-tasks'
|
31
31
|
s.add_development_dependency 'yard'
|
32
32
|
s.add_development_dependency 'coveralls'
|
33
33
|
s.add_development_dependency 'dokaz'
|
34
|
+
s.add_development_dependency 'rspec-its'
|
35
|
+
s.add_development_dependency 'saharspec'
|
34
36
|
end
|
data/lib/geo/coord.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'bigdecimal'
|
4
|
+
require 'bigdecimal/util'
|
2
5
|
|
3
6
|
# Geo::Coord is Ruby's library for handling [lat, lng] pairs of
|
4
7
|
# geographical coordinates. It provides most of basic functionality
|
@@ -141,44 +144,44 @@ module Geo
|
|
141
144
|
end
|
142
145
|
|
143
146
|
# @private
|
144
|
-
INT_PATTERN = '[-+]?\d+'
|
147
|
+
INT_PATTERN = '[-+]?\d+' # :nodoc:
|
145
148
|
# @private
|
146
|
-
UINT_PATTERN = '\d+'
|
149
|
+
UINT_PATTERN = '\d+' # :nodoc:
|
147
150
|
# @private
|
148
|
-
FLOAT_PATTERN = '[-+]?\d+(?:\.\d*)?'
|
151
|
+
FLOAT_PATTERN = '[-+]?\d+(?:\.\d*)?' # :nodoc:
|
149
152
|
# @private
|
150
|
-
UFLOAT_PATTERN = '\d+(?:\.\d*)?'
|
153
|
+
UFLOAT_PATTERN = '\d+(?:\.\d*)?' # :nodoc:
|
151
154
|
|
152
155
|
# @private
|
153
|
-
DEG_PATTERN = '[ °d]'
|
156
|
+
DEG_PATTERN = '[ °d]' # :nodoc:
|
154
157
|
# @private
|
155
|
-
MIN_PATTERN = "['′’m]"
|
158
|
+
MIN_PATTERN = "['′’m]" # :nodoc:
|
156
159
|
# @private
|
157
|
-
SEC_PATTERN = '["″s]'
|
160
|
+
SEC_PATTERN = '["″s]' # :nodoc:
|
158
161
|
|
159
162
|
# @private
|
160
|
-
LL_PATTERN = /^(#{FLOAT_PATTERN})\s*[,; ]\s*(#{FLOAT_PATTERN})
|
163
|
+
LL_PATTERN = /^(#{FLOAT_PATTERN})\s*[,; ]\s*(#{FLOAT_PATTERN})$/.freeze # :nodoc:
|
161
164
|
|
162
165
|
# @private
|
163
|
-
DMS_LATD_P = "(?<latd>#{INT_PATTERN})#{DEG_PATTERN}"
|
166
|
+
DMS_LATD_P = "(?<latd>#{INT_PATTERN})#{DEG_PATTERN}" # :nodoc:
|
164
167
|
# @private
|
165
|
-
DMS_LATM_P = "(?<latm>#{UINT_PATTERN})#{MIN_PATTERN}"
|
168
|
+
DMS_LATM_P = "(?<latm>#{UINT_PATTERN})#{MIN_PATTERN}" # :nodoc:
|
166
169
|
# @private
|
167
|
-
DMS_LATS_P = "(?<lats>#{UFLOAT_PATTERN})#{SEC_PATTERN}"
|
170
|
+
DMS_LATS_P = "(?<lats>#{UFLOAT_PATTERN})#{SEC_PATTERN}" # :nodoc:
|
168
171
|
# @private
|
169
|
-
DMS_LAT_P = "#{DMS_LATD_P}\\s*#{DMS_LATM_P}\\s*#{DMS_LATS_P}\\s*(?<lath>[NS])"
|
172
|
+
DMS_LAT_P = "#{DMS_LATD_P}\\s*#{DMS_LATM_P}\\s*#{DMS_LATS_P}\\s*(?<lath>[NS])" # :nodoc:
|
170
173
|
|
171
174
|
# @private
|
172
|
-
DMS_LNGD_P = "(?<lngd>#{INT_PATTERN})#{DEG_PATTERN}"
|
175
|
+
DMS_LNGD_P = "(?<lngd>#{INT_PATTERN})#{DEG_PATTERN}" # :nodoc:
|
173
176
|
# @private
|
174
|
-
DMS_LNGM_P = "(?<lngm>#{UINT_PATTERN})#{MIN_PATTERN}"
|
177
|
+
DMS_LNGM_P = "(?<lngm>#{UINT_PATTERN})#{MIN_PATTERN}" # :nodoc:
|
175
178
|
# @private
|
176
|
-
DMS_LNGS_P = "(?<lngs>#{UFLOAT_PATTERN})#{SEC_PATTERN}"
|
179
|
+
DMS_LNGS_P = "(?<lngs>#{UFLOAT_PATTERN})#{SEC_PATTERN}" # :nodoc:
|
177
180
|
# @private
|
178
|
-
DMS_LNG_P = "#{DMS_LNGD_P}\\s*#{DMS_LNGM_P}\\s*#{DMS_LNGS_P}\\s*(?<lngh>[EW])"
|
181
|
+
DMS_LNG_P = "#{DMS_LNGD_P}\\s*#{DMS_LNGM_P}\\s*#{DMS_LNGS_P}\\s*(?<lngh>[EW])" # :nodoc:
|
179
182
|
|
180
183
|
# @private
|
181
|
-
DMS_PATTERN = /^\s*#{DMS_LAT_P}\s*[,; ]\s*#{DMS_LNG_P}\s*$/x # :nodoc:
|
184
|
+
DMS_PATTERN = /^\s*#{DMS_LAT_P}\s*[,; ]\s*#{DMS_LNG_P}\s*$/x.freeze # :nodoc:
|
182
185
|
|
183
186
|
# Parses Coord from string containing float latitude and longitude.
|
184
187
|
# Understands several types of separators/spaces between values.
|
@@ -277,15 +280,17 @@ module Geo
|
|
277
280
|
pattern = PARSE_PATTERNS.inject(pattern) do |memo, (pfrom, pto)|
|
278
281
|
memo.gsub(pfrom, pto)
|
279
282
|
end
|
280
|
-
match = Regexp.new(
|
283
|
+
match = Regexp.new("^#{pattern}").match(str)
|
281
284
|
raise ArgumentError, "Coordinates str #{str} can't be parsed by pattern #{pattern}" unless match
|
282
|
-
|
285
|
+
|
286
|
+
new(**match.names.map { |n| [n.to_sym, _extract_match(match, n)] }.to_h)
|
283
287
|
end
|
284
288
|
|
285
289
|
private
|
286
290
|
|
287
291
|
def _extract_match(match, name)
|
288
292
|
return nil unless match[name]
|
293
|
+
|
289
294
|
val = match[name]
|
290
295
|
name.end_with?('h') ? val : val.to_f
|
291
296
|
end
|
@@ -319,28 +324,28 @@ module Geo
|
|
319
324
|
# g = Geo::Coord.new(lat: 50.004444)
|
320
325
|
# # => #<Geo::Coord 50°0'16"N 0°0'0"W>
|
321
326
|
#
|
322
|
-
def initialize(lat = nil, lng = nil, **
|
327
|
+
def initialize(lat = nil, lng = nil, **kwargs) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
|
323
328
|
@globe = Globes::Earth.instance
|
324
329
|
|
330
|
+
# It is probably can be clearer with Ruby 2.7+ pattern-matching... or with less permissive
|
331
|
+
# protocol :)
|
332
|
+
kwargs = lat if lat.is_a?(Hash) && kwargs.empty? # Ruby 3.0
|
333
|
+
|
325
334
|
case
|
326
335
|
when lat && lng
|
327
336
|
_init(lat, lng)
|
328
|
-
when
|
329
|
-
_init(
|
330
|
-
when
|
331
|
-
_init_dms(
|
337
|
+
when kwargs.key?(:lat) || kwargs.key?(:lng)
|
338
|
+
_init(*kwargs.values_at(:lat, :lng))
|
339
|
+
when kwargs.key?(:latd) || kwargs.key?(:lngd)
|
340
|
+
_init_dms(**kwargs)
|
332
341
|
else
|
333
|
-
raise ArgumentError, "Can't create #{self.class} by provided data"
|
342
|
+
raise ArgumentError, "Can't create #{self.class} by provided data: (#{lat}, #{lng}, **#{kwargs}"
|
334
343
|
end
|
335
344
|
end
|
336
345
|
|
337
346
|
# Compares with +other+.
|
338
347
|
#
|
339
|
-
# Note
|
340
|
-
# so, when two "almost exactly same" coord pairs are calculated using
|
341
|
-
# different methods, you can rarely expect them to be _exactly_ equal.
|
342
|
-
#
|
343
|
-
# Also, note that no greater/lower relation is defined on Coord, so,
|
348
|
+
# Note that no greater/lower relation is defined on Coord, so,
|
344
349
|
# for example, you can't just sort an array of Coord.
|
345
350
|
def ==(other)
|
346
351
|
other.is_a?(self.class) && other.lat == lat && other.lng == lng
|
@@ -363,7 +368,7 @@ module Geo
|
|
363
368
|
|
364
369
|
# Returns latitude hemisphere (upcase letter 'N' or 'S').
|
365
370
|
def lath
|
366
|
-
lat
|
371
|
+
lat.positive? ? 'N' : 'S'
|
367
372
|
end
|
368
373
|
|
369
374
|
# Returns longitude degrees (unsigned integer).
|
@@ -383,7 +388,7 @@ module Geo
|
|
383
388
|
|
384
389
|
# Returns longitude hemisphere (upcase letter 'E' or 'W').
|
385
390
|
def lngh
|
386
|
-
lng
|
391
|
+
lng.positive? ? 'E' : 'W'
|
387
392
|
end
|
388
393
|
|
389
394
|
# Returns latitude components: degrees, minutes, seconds and optionally
|
@@ -392,17 +397,17 @@ module Geo
|
|
392
397
|
# # Nothern hemisphere:
|
393
398
|
# g = Geo::Coord.new(50.004444, 36.231389)
|
394
399
|
#
|
395
|
-
# g.latdms
|
396
|
-
# g.latdms(
|
400
|
+
# g.latdms # => [50, 0, 15.9984, "N"]
|
401
|
+
# g.latdms(hemisphere: false) # => [50, 0, 15.9984]
|
397
402
|
#
|
398
403
|
# # Southern hemisphere:
|
399
404
|
# g = Geo::Coord.new(-50.004444, 36.231389)
|
400
405
|
#
|
401
|
-
# g.latdms
|
402
|
-
# g.latdms(
|
406
|
+
# g.latdms # => [50, 0, 15.9984, "S"]
|
407
|
+
# g.latdms(hemisphere: false) # => [-50, 0, 15.9984]
|
403
408
|
#
|
404
|
-
def latdms(
|
405
|
-
|
409
|
+
def latdms(hemisphere: true)
|
410
|
+
hemisphere ? [latd, latm, lats, lath] : [latsign * latd, latm, lats]
|
406
411
|
end
|
407
412
|
|
408
413
|
# Returns longitude components: degrees, minutes, seconds and optionally
|
@@ -411,17 +416,17 @@ module Geo
|
|
411
416
|
# # Eastern hemisphere:
|
412
417
|
# g = Geo::Coord.new(50.004444, 36.231389)
|
413
418
|
#
|
414
|
-
# g.lngdms
|
415
|
-
# g.lngdms(
|
419
|
+
# g.lngdms # => [36, 13, 53.0004, "E"]
|
420
|
+
# g.lngdms(hemisphere: false) # => [36, 13, 53.0004]
|
416
421
|
#
|
417
422
|
# # Western hemisphere:
|
418
423
|
# g = Geo::Coord.new(50.004444, 36.231389)
|
419
424
|
#
|
420
|
-
# g.lngdms
|
421
|
-
# g.lngdms(
|
425
|
+
# g.lngdms # => [36, 13, 53.0004, "E"]
|
426
|
+
# g.lngdms(hemisphere: false) # => [-36, 13, 53.0004]
|
422
427
|
#
|
423
|
-
def lngdms(
|
424
|
-
|
428
|
+
def lngdms(hemisphere: true)
|
429
|
+
hemisphere ? [lngd, lngm, lngs, lngh] : [lngsign * lngd, lngm, lngs]
|
425
430
|
end
|
426
431
|
|
427
432
|
# Latitude in radians. Geodesy formulae almost alwayse use greek Phi
|
@@ -488,11 +493,11 @@ module Geo
|
|
488
493
|
end
|
489
494
|
|
490
495
|
# @private
|
491
|
-
INTFLAGS = '\+'
|
496
|
+
INTFLAGS = '\+' # :nodoc:
|
492
497
|
# @private
|
493
|
-
FLOATUFLAGS = /\.0\d
|
498
|
+
FLOATUFLAGS = /\.0\d+/.freeze # :nodoc:
|
494
499
|
# @private
|
495
|
-
FLOATFLAGS = /\+?#{FLOATUFLAGS}
|
500
|
+
FLOATFLAGS = /\+?#{FLOATUFLAGS}?/.freeze # :nodoc:
|
496
501
|
|
497
502
|
# @private
|
498
503
|
DIRECTIVES = { # :nodoc:
|
@@ -605,8 +610,8 @@ module Geo
|
|
605
610
|
|
606
611
|
private
|
607
612
|
|
608
|
-
LAT_RANGE_ERROR = 'Expected latitude to be between -90 and 90, %p received'
|
609
|
-
LNG_RANGE_ERROR = 'Expected longitude to be between -180 and 180, %p received'
|
613
|
+
LAT_RANGE_ERROR = 'Expected latitude to be between -90 and 90, %p received'
|
614
|
+
LNG_RANGE_ERROR = 'Expected longitude to be between -180 and 180, %p received'
|
610
615
|
|
611
616
|
def _init(lat, lng)
|
612
617
|
lat = BigDecimal(lat.to_f, 10)
|
@@ -624,22 +629,16 @@ module Geo
|
|
624
629
|
# @private
|
625
630
|
LNGH = {'E' => 1, 'W' => -1}.freeze # :nodoc:
|
626
631
|
|
627
|
-
def _init_dms(
|
628
|
-
lat = (
|
629
|
-
|
630
|
-
|
631
|
-
opts[:lats].to_i / 3600.0
|
632
|
-
) * guess_sign(opts[:lath], LATH)
|
633
|
-
lng = (
|
634
|
-
opts[:lngd].to_i +
|
635
|
-
opts[:lngm].to_i / 60.0 +
|
636
|
-
opts[:lngs].to_i / 3600.0
|
637
|
-
) * guess_sign(opts[:lngh], LNGH)
|
632
|
+
def _init_dms(latd: 0, latm: 0, lats: 0, lath: nil, lngd: 0, lngm: 0, lngs: 0, lngh: nil) # rubocop:disable Metrics/AbcSize
|
633
|
+
lat = (latd.to_d + latm.to_d / 60 + lats.to_d / 3600) * guess_sign(lath, LATH)
|
634
|
+
lng = (lngd.to_d + lngm.to_d / 60 + lngs.to_d / 3600) * guess_sign(lngh, LNGH)
|
635
|
+
|
638
636
|
_init(lat, lng)
|
639
637
|
end
|
640
638
|
|
641
639
|
def guess_sign(h, hemishperes)
|
642
640
|
return 1 unless h
|
641
|
+
|
643
642
|
hemishperes[h] or
|
644
643
|
raise ArgumentError, "Unidentified hemisphere: #{h}"
|
645
644
|
end
|
@@ -647,6 +646,7 @@ module Geo
|
|
647
646
|
def guard_seconds(pattern, result)
|
648
647
|
m = pattern.match(/<(lat|lng)s>/)
|
649
648
|
return result unless m && result.start_with?('60')
|
649
|
+
|
650
650
|
carry = "#{m[1]}m".to_sym
|
651
651
|
[pattern % {lats: 0, lngs: 0}, carry]
|
652
652
|
end
|
data/lib/geo/coord/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geo_coord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Shepelev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -25,21 +25,21 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.40'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec
|
28
|
+
name: rubocop-rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -136,12 +136,41 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rspec-its
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: saharspec
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
139
167
|
description: ''
|
140
168
|
email: zverok.offline@gmail.com
|
141
169
|
executables: []
|
142
170
|
extensions: []
|
143
171
|
extra_rdoc_files: []
|
144
172
|
files:
|
173
|
+
- ".github/workflows/ci.yml"
|
145
174
|
- ".yardopts"
|
146
175
|
- CHANGELOG.md
|
147
176
|
- LICENSE.txt
|
@@ -163,15 +192,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
192
|
requirements:
|
164
193
|
- - ">="
|
165
194
|
- !ruby/object:Gem::Version
|
166
|
-
version: 2.
|
195
|
+
version: 2.4.0
|
167
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
197
|
requirements:
|
169
198
|
- - ">="
|
170
199
|
- !ruby/object:Gem::Version
|
171
200
|
version: '0'
|
172
201
|
requirements: []
|
173
|
-
|
174
|
-
rubygems_version: 2.7.4
|
202
|
+
rubygems_version: 3.0.6
|
175
203
|
signing_key:
|
176
204
|
specification_version: 4
|
177
205
|
summary: Geo::Coord class
|