ocean-names 0.2.4 → 0.3.4
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/.circleci/config.yml +88 -0
- data/Gemfile.lock +11 -0
- data/README.md +12 -7
- data/lib/ocean/names.rb +15 -2
- data/lib/ocean/names/version.rb +1 -1
- data/ocean-names.gemspec +2 -0
- metadata +31 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: bae097bab35a19f1d7a9f8df2924387d6948fee8965cc308a1fffab8baedd53e
         | 
| 4 | 
            +
              data.tar.gz: 9d798670d00d48cd2b93473385e1957ba166bf5ec28a385621517b62429a003a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3def51ff10c058007636d8d199460acf860dad61ef125728779346c4dea715837322b981151024bbb2a6b92a65c703c1fd04bc06c041c06399aa8335585167d9
         | 
| 7 | 
            +
              data.tar.gz: 1161be402544502a0d4c74f7b3e180d5b6b5794b46c0cf1168a5eb266ca51b613ce9a8bea6d157dbe8b3921aabed1fd5608fac4cfe833eeb773be94cac2421bb
         | 
| @@ -0,0 +1,88 @@ | |
| 1 | 
            +
            version: 2
         | 
| 2 | 
            +
            jobs:
         | 
| 3 | 
            +
              build:
         | 
| 4 | 
            +
                working_directory: ~/repo
         | 
| 5 | 
            +
                parallelism: 4
         | 
| 6 | 
            +
                shell: /bin/bash --login
         | 
| 7 | 
            +
                environment:
         | 
| 8 | 
            +
                  RAILS_ENV: test
         | 
| 9 | 
            +
                  RACK_ENV: test
         | 
| 10 | 
            +
                  COVERAGE: true
         | 
| 11 | 
            +
                  TZ: /usr/share/zoneinfo/America/Chicago
         | 
| 12 | 
            +
                docker:
         | 
| 13 | 
            +
                  - image: circleci/ruby:2.6.5
         | 
| 14 | 
            +
                steps:
         | 
| 15 | 
            +
                  - checkout
         | 
| 16 | 
            +
                  - restore_cache:
         | 
| 17 | 
            +
                      keys:
         | 
| 18 | 
            +
                        # This branch if available
         | 
| 19 | 
            +
                        - v2-dep-{{ .Branch }}-
         | 
| 20 | 
            +
                        # Default branch if not
         | 
| 21 | 
            +
                        - v2-dep-master-
         | 
| 22 | 
            +
                        # Any branch if there are none on the default branch - this should be unnecessary if you have your default branch configured correctly
         | 
| 23 | 
            +
                        - v2-dep-
         | 
| 24 | 
            +
                  - run:
         | 
| 25 | 
            +
                      name: install bundler
         | 
| 26 | 
            +
                      command: gem install bundler
         | 
| 27 | 
            +
                  - run:
         | 
| 28 | 
            +
                      name: bundle gems
         | 
| 29 | 
            +
                      command: bundle install --path=vendor/bundle --jobs=4 --retry=3
         | 
| 30 | 
            +
                  - run:
         | 
| 31 | 
            +
                      name: Install Code Climate Test Reporter
         | 
| 32 | 
            +
                      command: |
         | 
| 33 | 
            +
                        curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
         | 
| 34 | 
            +
                        chmod +x ./cc-test-reporter
         | 
| 35 | 
            +
                  - run:
         | 
| 36 | 
            +
                      name: Run tests
         | 
| 37 | 
            +
                      command: |
         | 
| 38 | 
            +
                        mkdir -p test-results/rspec test-artifacts
         | 
| 39 | 
            +
                        ./cc-test-reporter before-build
         | 
| 40 | 
            +
                        TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
         | 
| 41 | 
            +
                        bundle exec rspec --profile 10 \
         | 
| 42 | 
            +
                                          --color \
         | 
| 43 | 
            +
                                          --order random \
         | 
| 44 | 
            +
                                          --format RspecJunitFormatter \
         | 
| 45 | 
            +
                                          --out test-results/rspec/rspec.xml \
         | 
| 46 | 
            +
                                          --format progress \
         | 
| 47 | 
            +
                                          -- ${TESTFILES}
         | 
| 48 | 
            +
                  - run:
         | 
| 49 | 
            +
                      name: Code Climate Test Coverage
         | 
| 50 | 
            +
                      command: |
         | 
| 51 | 
            +
                        ./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json"
         | 
| 52 | 
            +
                  - persist_to_workspace:
         | 
| 53 | 
            +
                      root: coverage
         | 
| 54 | 
            +
                      paths:
         | 
| 55 | 
            +
                        - codeclimate.*.json
         | 
| 56 | 
            +
                  - store_test_results:
         | 
| 57 | 
            +
                      path: test-results
         | 
| 58 | 
            +
                  - store_artifacts:
         | 
| 59 | 
            +
                      path: test-artifacts
         | 
| 60 | 
            +
             | 
| 61 | 
            +
              upload-coverage:
         | 
| 62 | 
            +
                docker:
         | 
| 63 | 
            +
                  - image: circleci/ruby:2.6.5
         | 
| 64 | 
            +
                environment:
         | 
| 65 | 
            +
                  CC_TEST_REPORTER_ID: 568eec2f9aed445a55cc62e3ef99186d51dda170c5ee394690d1fe4034e194fd
         | 
| 66 | 
            +
                working_directory: ~/repo
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                steps:
         | 
| 69 | 
            +
                  - attach_workspace:
         | 
| 70 | 
            +
                      at: ~/repo
         | 
| 71 | 
            +
                  - run:
         | 
| 72 | 
            +
                      name: Install Code Climate Test Reporter
         | 
| 73 | 
            +
                      command: |
         | 
| 74 | 
            +
                        curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
         | 
| 75 | 
            +
                        chmod +x ./cc-test-reporter
         | 
| 76 | 
            +
                  - run:
         | 
| 77 | 
            +
                      command: |
         | 
| 78 | 
            +
                        ./cc-test-reporter sum-coverage --output - codeclimate.*.json | ./cc-test-reporter upload-coverage --debug --input -
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            workflows:
         | 
| 81 | 
            +
              version: 2
         | 
| 82 | 
            +
             | 
| 83 | 
            +
              commit:
         | 
| 84 | 
            +
                jobs:
         | 
| 85 | 
            +
                  - build
         | 
| 86 | 
            +
                  - upload-coverage:
         | 
| 87 | 
            +
                      requires:
         | 
| 88 | 
            +
                         - build
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -10,7 +10,9 @@ GEM | |
| 10 10 | 
             
              specs:
         | 
| 11 11 | 
             
                coderay (1.1.2)
         | 
| 12 12 | 
             
                diff-lcs (1.3)
         | 
| 13 | 
            +
                docile (1.3.2)
         | 
| 13 14 | 
             
                geokit (1.13.1)
         | 
| 15 | 
            +
                json (2.2.0)
         | 
| 14 16 | 
             
                method_source (0.9.2)
         | 
| 15 17 | 
             
                oj (3.9.2)
         | 
| 16 18 | 
             
                pry (0.12.2)
         | 
| @@ -30,6 +32,13 @@ GEM | |
| 30 32 | 
             
                  diff-lcs (>= 1.2.0, < 2.0)
         | 
| 31 33 | 
             
                  rspec-support (~> 3.9.0)
         | 
| 32 34 | 
             
                rspec-support (3.9.0)
         | 
| 35 | 
            +
                rspec_junit_formatter (0.4.1)
         | 
| 36 | 
            +
                  rspec-core (>= 2, < 4, != 2.12.0)
         | 
| 37 | 
            +
                simplecov (0.17.1)
         | 
| 38 | 
            +
                  docile (~> 1.1)
         | 
| 39 | 
            +
                  json (>= 1.8, < 3)
         | 
| 40 | 
            +
                  simplecov-html (~> 0.10.0)
         | 
| 41 | 
            +
                simplecov-html (0.10.2)
         | 
| 33 42 |  | 
| 34 43 | 
             
            PLATFORMS
         | 
| 35 44 | 
             
              ruby
         | 
| @@ -40,6 +49,8 @@ DEPENDENCIES | |
| 40 49 | 
             
              pry (~> 0.12.2)
         | 
| 41 50 | 
             
              rake (~> 10.0)
         | 
| 42 51 | 
             
              rspec (~> 3.0)
         | 
| 52 | 
            +
              rspec_junit_formatter (~> 0.4.1)
         | 
| 53 | 
            +
              simplecov (~> 0.17.1)
         | 
| 43 54 |  | 
| 44 55 | 
             
            BUNDLED WITH
         | 
| 45 56 | 
             
               2.0.2
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,11 @@ | |
| 1 1 | 
             
            # Ocean::Names
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 3 | 
            +
            [](https://badge.fury.io/rb/ocean-names)
         | 
| 4 | 
            +
            [](https://circleci.com/gh/skcc321/ocean-names/tree/master)
         | 
| 5 | 
            +
            [](https://codeclimate.com/github/skcc321/ocean-names/maintainability)
         | 
| 6 | 
            +
            [](https://codeclimate.com/github/skcc321/ocean-names/test_coverage)
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            Simple & fast enough (production ready & offline) reverse geocoder for oceans/seas.
         | 
| 4 9 |  | 
| 5 10 | 
             
            ## Installation
         | 
| 6 11 |  | 
| @@ -24,17 +29,17 @@ Or install it yourself as: | |
| 24 29 | 
             
            2.6.5 :001 > require "ocean/names"
         | 
| 25 30 | 
             
             => true
         | 
| 26 31 | 
             
            2.6.5 :002 > Ocean::Names.reverse_geocode(lat: 0, lng: 0)
         | 
| 27 | 
            -
             => {"name"=>"South Atlantic Ocean", " | 
| 32 | 
            +
             => {"name"=>"South Atlantic Ocean", "longitude"=>-18.80876715914, "latitude"=>-33.73239551445, "min_x"=>-69.60083675371, "min_y"=>-60, "max_x"=>20.00904913827, "max_y"=>0.07510554798, "area"=>40501812}
         | 
| 28 33 | 
             
            2.6.5 :003 > Ocean::Names.reverse_geocode(lat: -18, lng: -33)
         | 
| 29 | 
            -
             => {"name"=>"South Atlantic Ocean", " | 
| 34 | 
            +
             => {"name"=>"South Atlantic Ocean", "longitude"=>-18.80876715914, "latitude"=>-33.73239551445, "min_x"=>-69.60083675371, "min_y"=>-60, "max_x"=>20.00904913827, "max_y"=>0.07510554798, "area"=>40501812}
         | 
| 30 35 | 
             
            2.6.5 :004 > Ocean::Names.reverse_geocode(lat: 79, lng: -32)
         | 
| 31 | 
            -
             => {"name"=>"Indian Ocean", " | 
| 36 | 
            +
             => {"name"=>"Indian Ocean", "longitude"=>79.20858601429, "latitude"=>-32.72458381046, "min_x"=>20.00261595272, "min_y"=>-60, "max_x"=>146.8982192222, "max_y"=>10.44499945636, "area"=>58230954}
         | 
| 32 37 | 
             
            2.6.5 :005 > Ocean::Names.reverse_geocode(lat: 135, lng: -40)
         | 
| 33 | 
            -
             => {"name"=>"Great Australian Bight", " | 
| 38 | 
            +
             => {"name"=>"Great Australian Bight", "longitude"=>132.7165581317, "latitude"=>-36.72591576597, "min_x"=>117.6141982382, "min_y"=>-43.56601647135, "max_x"=>146.23115575344, "max_y"=>-31.46366941901, "area"=>1326209}
         | 
| 34 39 | 
             
            2.6.5 :006 > Ocean::Names.reverse_geocode(lat: 135, lng: 40)
         | 
| 35 | 
            -
             => {"name"=>"Japan Sea", " | 
| 40 | 
            +
             => {"name"=>"Japan Sea", "longitude"=>135.13274500727, "latitude"=>40.5084302428, "min_x"=>125.8013889, "min_y"=>32.57501368363, "max_x"=>142.2638347153, "max_y"=>51.74733316939, "area"=>1066307}
         | 
| 36 41 | 
             
            2.6.5 :007 > Ocean::Names.reverse_geocode(lat: 125, lng: 29)
         | 
| 37 | 
            -
             => {"name"=>"Eastern China Sea", " | 
| 42 | 
            +
             => {"name"=>"Eastern China Sea", "longitude"=>125.21708986497, "latitude"=>29.13089135213, "min_x"=>118.47804582106, "min_y"=>24.05760752069, "max_x"=>131.1322036827, "max_y"=>33.37195920955, "area"=>761356}
         | 
| 38 43 | 
             
            ```
         | 
| 39 44 |  | 
| 40 45 | 
             
            ## Development
         | 
    
        data/lib/ocean/names.rb
    CHANGED
    
    | @@ -12,16 +12,29 @@ module Ocean | |
| 12 12 | 
             
                  GET_POINTS.(arg.first)
         | 
| 13 13 | 
             
                }
         | 
| 14 14 |  | 
| 15 | 
            +
                WITHIN_BOUNDS = ->(record, x, y) {
         | 
| 16 | 
            +
                  record["min_x"] <= x &&
         | 
| 17 | 
            +
                  record["max_x"] >= x &&
         | 
| 18 | 
            +
                  record["min_y"] <= y &&
         | 
| 19 | 
            +
                  record["max_y"] >= y
         | 
| 20 | 
            +
                }
         | 
| 21 | 
            +
             | 
| 15 22 | 
             
                def self.reverse_geocode(lat:, lng:)
         | 
| 16 23 | 
             
                  point = Geokit::LatLng.new(lat, lng)
         | 
| 17 24 |  | 
| 18 | 
            -
                  data.find do |record|
         | 
| 25 | 
            +
                  rec = data.find do |record|
         | 
| 26 | 
            +
                    # avoid check of obviously false geometries
         | 
| 27 | 
            +
                    next unless WITHIN_BOUNDS.(record, lat, lng)
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    # get points from nested arrays
         | 
| 19 30 | 
             
                    source = GET_POINTS.(record["geometry"])
         | 
| 20 31 |  | 
| 21 32 | 
             
                    points = source.map { |x| Geokit::LatLng.new(*x) }
         | 
| 22 33 | 
             
                    polygon = Geokit::Polygon.new(points)
         | 
| 23 34 | 
             
                    polygon.contains?(point)
         | 
| 24 | 
            -
                  end | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  rec&.reject do |key|
         | 
| 25 38 | 
             
                    key == "geometry"
         | 
| 26 39 | 
             
                  end
         | 
| 27 40 | 
             
                end
         | 
    
        data/lib/ocean/names/version.rb
    CHANGED
    
    
    
        data/ocean-names.gemspec
    CHANGED
    
    | @@ -34,5 +34,7 @@ Gem::Specification.new do |spec| | |
| 34 34 | 
             
              spec.add_development_dependency "bundler", "~> 2.0"
         | 
| 35 35 | 
             
              spec.add_development_dependency "rake", "~> 10.0"
         | 
| 36 36 | 
             
              spec.add_development_dependency "rspec", "~> 3.0"
         | 
| 37 | 
            +
              spec.add_development_dependency "rspec_junit_formatter", "~> 0.4.1"
         | 
| 38 | 
            +
              spec.add_development_dependency "simplecov", "~> 0.17.1"
         | 
| 37 39 | 
             
              spec.add_development_dependency "pry", "~> 0.12.2"
         | 
| 38 40 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ocean-names
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - rafael
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019-11- | 
| 11 | 
            +
            date: 2019-11-25 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: oj
         | 
| @@ -80,6 +80,34 @@ dependencies: | |
| 80 80 | 
             
                - - "~>"
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: '3.0'
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: rspec_junit_formatter
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - "~>"
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: 0.4.1
         | 
| 90 | 
            +
              type: :development
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - "~>"
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: 0.4.1
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            +
              name: simplecov
         | 
| 99 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 | 
            +
                requirements:
         | 
| 101 | 
            +
                - - "~>"
         | 
| 102 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            +
                    version: 0.17.1
         | 
| 104 | 
            +
              type: :development
         | 
| 105 | 
            +
              prerelease: false
         | 
| 106 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 | 
            +
                requirements:
         | 
| 108 | 
            +
                - - "~>"
         | 
| 109 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            +
                    version: 0.17.1
         | 
| 83 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 112 | 
             
              name: pry
         | 
| 85 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -101,6 +129,7 @@ executables: [] | |
| 101 129 | 
             
            extensions: []
         | 
| 102 130 | 
             
            extra_rdoc_files: []
         | 
| 103 131 | 
             
            files:
         | 
| 132 | 
            +
            - ".circleci/config.yml"
         | 
| 104 133 | 
             
            - ".gitignore"
         | 
| 105 134 | 
             
            - ".rspec"
         | 
| 106 135 | 
             
            - ".travis.yml"
         |