h3 3.7.1 → 3.7.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a2e10e1deba82674a8ea642385fdbd753ba86860
4
- data.tar.gz: df8a3687f67e5ebfa8432ce1c456b7c038a2de50
2
+ SHA256:
3
+ metadata.gz: acb338f235d3507df322d3e148a135fe72d67911ba05edf9af82873ac190a556
4
+ data.tar.gz: 506b3fddfec2bdd388a57a8e08aeac7522508b8f6e04e9f1d421a6611367890a
5
5
  SHA512:
6
- metadata.gz: f4b83e62d5b0cea99238ad0c04e06e906b73a4d871c6fb0205994ec493036cbd56561184c0998b6e04f81bd0c7af27eff37e82e7c4da7f5d6a5ca214b14b4bd1
7
- data.tar.gz: 33d956b62f5e0a465efebc8014bd03c05743e9e013fbdbbfd52ff6da94a448728c1677b69ba8ff23f26eab6a166f8d62ecd537a9d3a160ff480a311e7f9c5457
6
+ metadata.gz: e73b0b8d43710cf5b0a802bd08a0a87f607990c162c34eddda36940b10890f6bc252873d96431d2063b659e32af55336a0edd7d748e82aebc3d5ad7d0adfc54c
7
+ data.tar.gz: 7bf43c08a6fe09da1a4b0cbf9f688d56a3d0ec3bab060af939f422f39b0f1e43ec40e45f50b2aa14fd8c486ace24ef4beb7b1e50c9e440df9f0f1d67212e5c64
@@ -0,0 +1,30 @@
1
+ name: Ruby CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+
12
+ runs-on: ubuntu-latest
13
+
14
+ strategy:
15
+ matrix:
16
+ ruby-version: [3.0.1, 2.7.3, 2.6.7, 2.5.9]
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - name: Set up Ruby ${{ matrix.ruby-version }}
21
+ uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ bundler-cache: true
25
+ - name: Install system dependencies
26
+ run: sudo apt-get install cmake make gcc libtool
27
+ - name: Install gems
28
+ run: bundle install
29
+ - name: Run tests
30
+ run: bundle exec rake spec
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.3
2
+ TargetRubyVersion: 2.5
3
3
  Exclude:
4
4
  - "vendor/**/*"
5
5
  - "db/schema.rb"
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.2
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
7
  We track the MAJOR and MINOR version levels of Uber's H3 project (https://github.com/uber/h3) but maintain independent patch levels so we can make small fixes and non breaking changes.
8
8
 
9
+ ## [3.7.2] - 2020-07-17
10
+ ### Fixed
11
+ - kRing of invalid indexes should not crash.
12
+
9
13
  ## [3.7.1] - 2020-10-7
10
14
  ### Added
11
15
  - Area and haversine distance functions:
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- h3 (3.7.1)
4
+ h3 (3.7.2)
5
5
  ffi (~> 1.9)
6
6
  rgeo-geojson (~> 2.1)
7
7
  zeitwerk (~> 2.1)
@@ -9,18 +9,10 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- coveralls (0.8.22)
13
- json (>= 1.8, < 3)
14
- simplecov (~> 0.16.1)
15
- term-ansicolor (~> 1.3)
16
- thor (~> 0.19.4)
17
- tins (~> 1.6)
18
12
  diff-lcs (1.3)
19
- docile (1.3.1)
20
- ffi (1.13.1)
21
- json (2.3.1)
13
+ ffi (1.15.3)
22
14
  rake (12.3.3)
23
- rgeo (2.1.1)
15
+ rgeo (2.3.0)
24
16
  rgeo-geojson (2.1.1)
25
17
  rgeo (>= 1.0.0)
26
18
  rspec (3.8.0)
@@ -36,23 +28,13 @@ GEM
36
28
  diff-lcs (>= 1.2.0, < 2.0)
37
29
  rspec-support (~> 3.8.0)
38
30
  rspec-support (3.8.0)
39
- simplecov (0.16.1)
40
- docile (~> 1.1)
41
- json (>= 1.8, < 3)
42
- simplecov-html (~> 0.10.0)
43
- simplecov-html (0.10.2)
44
- term-ansicolor (1.7.0)
45
- tins (~> 1.0)
46
- thor (0.19.4)
47
- tins (1.20.2)
48
31
  yard (0.9.20)
49
- zeitwerk (2.4.0)
32
+ zeitwerk (2.4.2)
50
33
 
51
34
  PLATFORMS
52
35
  ruby
53
36
 
54
37
  DEPENDENCIES
55
- coveralls (~> 0.8)
56
38
  h3!
57
39
  rake (~> 12.3)
58
40
  rspec (~> 3.8)
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2018-2019 Stuart Delivery
3
+ Copyright (c) 2018-2020 Stuart Delivery
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  ![h3](https://user-images.githubusercontent.com/98526/50283275-48177300-044d-11e9-8337-eba8d3cc88a2.png)
4
4
 
5
- [![Build Status](https://travis-ci.org/StuartApp/h3_ruby.svg?branch=master)](https://travis-ci.org/StuartApp/h3_ruby)
6
- [![Maintainability](https://api.codeclimate.com/v1/badges/74a47e7fa516588ab545/maintainability)](https://codeclimate.com/repos/5ca38395a86379029800281f/maintainability) [![Coverage Status](https://coveralls.io/repos/github/StuartApp/h3_ruby/badge.svg?branch=master)](https://coveralls.io/github/StuartApp/h3_ruby?branch=master) [![Gem Version](https://badge.fury.io/rb/h3.svg)](https://badge.fury.io/rb/h3)
5
+ ![Build Status](https://github.com/StuartApp/h3_ruby/actions/workflows/ruby_ci/badge.svg) [![Coverage Status](https://coveralls.io/repos/github/StuartApp/h3_ruby/badge.svg?branch=master)](https://coveralls.io/github/StuartApp/h3_ruby?branch=master) [![Maintainability](https://api.codeclimate.com/v1/badges/74a47e7fa516588ab545/maintainability)](https://codeclimate.com/repos/5ca38395a86379029800281f/maintainability) [![Gem Version](https://badge.fury.io/rb/h3.svg)](https://badge.fury.io/rb/h3)
7
6
 
8
7
  Ruby-to-C bindings for Uber's [H3 library](https://uber.github.io/h3/).
9
8
 
@@ -39,7 +38,7 @@ or add it to your Gemfile
39
38
 
40
39
  ```ruby
41
40
  # Gemfile
42
- gem "h3", "~> 3.2"
41
+ gem "h3", "~> 3.7"
43
42
  ```
44
43
 
45
44
  ## Usage
@@ -2,9 +2,9 @@ name: test-linux
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [master]
5
+ branches: [master, stable-*]
6
6
  pull_request:
7
- branches: [master]
7
+ branches: [master, stable-*]
8
8
 
9
9
  jobs:
10
10
  tests:
@@ -23,7 +23,7 @@ jobs:
23
23
  - name: Install Doxygen
24
24
  run: |
25
25
  sudo apt update
26
- sudo apt-get install doxygen graphviz
26
+ sudo apt-get install doxygen graphviz clang-format-9
27
27
 
28
28
  - name: Configure build
29
29
  run: cmake -Bbuild -DWARNINGS_AS_ERRORS=ON .
@@ -2,9 +2,9 @@ name: test-macos
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [master]
5
+ branches: [master, stable-*]
6
6
  pull_request:
7
- branches: [master]
7
+ branches: [master, stable-*]
8
8
 
9
9
  jobs:
10
10
  tests:
@@ -2,9 +2,9 @@ name: test-website
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [master]
5
+ branches: [master, stable-*]
6
6
  pull_request:
7
- branches: [master]
7
+ branches: [master, stable-*]
8
8
 
9
9
  jobs:
10
10
  tests:
@@ -16,7 +16,7 @@ jobs:
16
16
 
17
17
  - uses: actions/setup-node@v1
18
18
  with:
19
- node-version: 10.x
19
+ node-version: 12.x
20
20
 
21
21
  - name: Install FOSSA
22
22
  run: |
@@ -2,9 +2,9 @@ name: test-windows
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [master]
5
+ branches: [master, stable-*]
6
6
  pull_request:
7
- branches: [master]
7
+ branches: [master, stable-*]
8
8
 
9
9
  jobs:
10
10
  tests:
@@ -24,7 +24,7 @@ jobs:
24
24
 
25
25
  - name: Configure build
26
26
  shell: cmd
27
- run: cmake -Bbuild -A ${{ matrix.arch }} -DWARNINGS_AS_ERRORS=ON .
27
+ run: cmake -Bbuild -A ${{ matrix.arch }} -DWARNINGS_AS_ERRORS=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=ON .
28
28
 
29
29
  - name: Build
30
30
  working-directory: build
@@ -7,6 +7,10 @@ The public API of this library consists of the functions declared in file
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.7.2] - 2021-07-15
11
+ ### Fixed
12
+ - `gridDisk` of invalid indexes should not crash. (#498)
13
+
10
14
  ## [3.7.1] - 2020-10-05
11
15
  ### Fixed
12
16
  - Finding invalid edge boundaries should not crash. (#399)
data/ext/h3/src/VERSION CHANGED
@@ -1 +1 @@
1
- 3.7.1
1
+ 3.7.2
@@ -351,4 +351,22 @@ SUITE(kRing) {
351
351
  }
352
352
  }
353
353
  }
354
+
355
+ TEST(kRingInvalid) {
356
+ int k = 1000;
357
+ int kSz = H3_EXPORT(maxKringSize)(k);
358
+ H3Index *neighbors = calloc(kSz, sizeof(H3Index));
359
+ H3_EXPORT(kRing)(0x7fffffffffffffff, k, neighbors);
360
+ // Assertion is should not crash - should return an error in the future
361
+ free(neighbors);
362
+ }
363
+
364
+ TEST(kRingInvalidDigit) {
365
+ int k = 2;
366
+ int kSz = H3_EXPORT(maxKringSize)(k);
367
+ H3Index *neighbors = calloc(kSz, sizeof(H3Index));
368
+ H3_EXPORT(kRing)(0x4d4b00fe5c5c3030, k, neighbors);
369
+ // Assertion is should not crash - should return an error in the future
370
+ free(neighbors);
371
+ }
354
372
  }
@@ -317,7 +317,10 @@ H3Index h3NeighborRotations(H3Index origin, Direction dir, int* rotations) {
317
317
  } else {
318
318
  Direction oldDigit = H3_GET_INDEX_DIGIT(out, r + 1);
319
319
  Direction nextDir;
320
- if (isResClassIII(r + 1)) {
320
+ if (oldDigit == INVALID_DIGIT) {
321
+ // Only possible on invalid input
322
+ return H3_NULL;
323
+ } else if (isResClassIII(r + 1)) {
321
324
  H3_SET_INDEX_DIGIT(out, r + 1, NEW_DIGIT_II[oldDigit][dir]);
322
325
  nextDir = NEW_ADJUSTMENT_II[oldDigit][dir];
323
326
  } else {
data/h3.gemspec CHANGED
@@ -9,14 +9,14 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Lachlan Laycock", "Sean Handley"]
10
10
  spec.email = "l.laycock@stuart.com"
11
11
 
12
- spec.required_ruby_version = "> 2.3"
12
+ spec.required_ruby_version = ">= 2.5"
13
13
  spec.files = `git ls-files --recurse-submodules`.split("\n")
14
14
 
15
15
  spec.add_runtime_dependency "ffi", "~> 1.9"
16
16
  spec.add_runtime_dependency "rgeo-geojson", "~> 2.1"
17
17
  spec.add_runtime_dependency "zeitwerk", "~> 2.1"
18
18
 
19
- spec.add_development_dependency "coveralls", "~> 0.8"
19
+ # spec.add_development_dependency "coveralls", "~> 0.8"
20
20
  spec.add_development_dependency "rake", "~> 12.3"
21
21
  spec.add_development_dependency "rspec", "~> 3.8"
22
22
  spec.add_development_dependency "yard", "~> 0.9"
data/lib/h3/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module H3
2
- VERSION = "3.7.1".freeze
2
+ VERSION = "3.7.2".freeze
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
- require "coveralls"
2
- Coveralls.wear!
1
+ # require "coveralls"
2
+ # Coveralls.wear!
3
3
 
4
4
  begin
5
5
  require "h3"
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: h3
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.1
4
+ version: 3.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lachlan Laycock
8
8
  - Sean Handley
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-10-13 00:00:00.000000000 Z
12
+ date: 2021-07-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
@@ -53,20 +53,6 @@ dependencies:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
55
  version: '2.1'
56
- - !ruby/object:Gem::Dependency
57
- name: coveralls
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '0.8'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '0.8'
70
56
  - !ruby/object:Gem::Dependency
71
57
  name: rake
72
58
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +95,7 @@ dependencies:
109
95
  - - "~>"
110
96
  - !ruby/object:Gem::Version
111
97
  version: '0.9'
112
- description:
98
+ description:
113
99
  email: l.laycock@stuart.com
114
100
  executables: []
115
101
  extensions:
@@ -117,11 +103,12 @@ extensions:
117
103
  extra_rdoc_files: []
118
104
  files:
119
105
  - ".codeclimate.yml"
106
+ - ".github/workflows/ruby_ci.yml"
120
107
  - ".gitignore"
121
108
  - ".gitmodules"
122
109
  - ".rspec"
123
110
  - ".rubocop.yml"
124
- - ".travis.yml"
111
+ - ".ruby-version"
125
112
  - CHANGELOG.md
126
113
  - CONTRIBUTING.md
127
114
  - Gemfile
@@ -448,24 +435,23 @@ homepage: https://github.com/StuartApp/h3_ruby
448
435
  licenses:
449
436
  - MIT
450
437
  metadata: {}
451
- post_install_message:
438
+ post_install_message:
452
439
  rdoc_options: []
453
440
  require_paths:
454
441
  - lib
455
442
  required_ruby_version: !ruby/object:Gem::Requirement
456
443
  requirements:
457
- - - ">"
444
+ - - ">="
458
445
  - !ruby/object:Gem::Version
459
- version: '2.3'
446
+ version: '2.5'
460
447
  required_rubygems_version: !ruby/object:Gem::Requirement
461
448
  requirements:
462
449
  - - ">="
463
450
  - !ruby/object:Gem::Version
464
451
  version: '0'
465
452
  requirements: []
466
- rubyforge_project:
467
- rubygems_version: 2.6.14.3
468
- signing_key:
453
+ rubygems_version: 3.1.4
454
+ signing_key:
469
455
  specification_version: 4
470
456
  summary: C Bindings for Uber's H3 library
471
457
  test_files: []
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- rvm:
4
- - 2.4
5
- addons:
6
- apt:
7
- packages:
8
- - cmake
9
- - make
10
- - gcc
11
- - libtool