business_calendar 1.1.0 → 2.0.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 +30 -0
- data/.github/workflows/gem-push.yml +29 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +0 -2
- data/README.md +1 -3
- data/business_calendar.gemspec +0 -4
- data/data/GB.yml +12 -12
- data/gemfiles/ruby_1.9.3.gemfile +6 -0
- data/lib/business_calendar.rb +1 -2
- data/lib/business_calendar/version.rb +1 -1
- data/spec/acceptance_gb_spec.rb +12 -12
- data/spec/business_calendar_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -2
- metadata +9 -50
- data/.simplecov +0 -8
- data/.travis.yml +0 -25
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 565c792e03739cdb3e5f506afba3f18c45098b204dda20051978333bcb5a5acc
         | 
| 4 | 
            +
              data.tar.gz: 39de2f975e53ab66e32408c7591ec620b7596784277eebf1994c7231ecdd27af
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6a671409be0e036f24dd0d15a8125702b37c0218387026a2a609cd1c22a6a8b25523dd4a78a16b2b5dfb688230fe2286bbf3f9f273cbdf26f0bca3a74b3b3d30
         | 
| 7 | 
            +
              data.tar.gz: 59d51361f35e15405f208288c9865e1d602fdb4baef607a509e191273c5ba1f38600a6d70a80e76104dc944cdab8539b25c33c8881a811dde5d11aec8a91d00e
         | 
| @@ -0,0 +1,30 @@ | |
| 1 | 
            +
            name: CI
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            on:
         | 
| 4 | 
            +
              push:
         | 
| 5 | 
            +
                branches: [ master ]
         | 
| 6 | 
            +
              pull_request:
         | 
| 7 | 
            +
                branches: [ master ]
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            jobs:
         | 
| 10 | 
            +
              test:
         | 
| 11 | 
            +
                runs-on: ubuntu-latest
         | 
| 12 | 
            +
                continue-on-error: ${{ matrix.experimental }}
         | 
| 13 | 
            +
                strategy:
         | 
| 14 | 
            +
                  matrix:
         | 
| 15 | 
            +
                    ruby-version: [2.3.1, 2.7.0]
         | 
| 16 | 
            +
                    experimental: [false]
         | 
| 17 | 
            +
                    include:
         | 
| 18 | 
            +
                      - ruby-version: head
         | 
| 19 | 
            +
                        experimental: true
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                steps:
         | 
| 22 | 
            +
                  - uses: actions/checkout@v2
         | 
| 23 | 
            +
                  - name: Set up Ruby ${{ matrix.ruby-version }}
         | 
| 24 | 
            +
                    uses: ruby/setup-ruby@v1
         | 
| 25 | 
            +
                    with:
         | 
| 26 | 
            +
                      ruby-version: ${{ matrix.ruby-version }}
         | 
| 27 | 
            +
                  - name: Install dependencies
         | 
| 28 | 
            +
                    run: bundle install
         | 
| 29 | 
            +
                  - name: Run tests
         | 
| 30 | 
            +
                    run: bundle exec rspec
         | 
| @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            name: Ruby Gem
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            on:
         | 
| 4 | 
            +
              push:
         | 
| 5 | 
            +
                tags:
         | 
| 6 | 
            +
                  - '*'
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            jobs:
         | 
| 9 | 
            +
              build:
         | 
| 10 | 
            +
                name: Build + Publish
         | 
| 11 | 
            +
                runs-on: ubuntu-latest
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                steps:
         | 
| 14 | 
            +
                - uses: actions/checkout@v2
         | 
| 15 | 
            +
                - name: Set up Ruby 2.7
         | 
| 16 | 
            +
                  uses: actions/setup-ruby@v1
         | 
| 17 | 
            +
                  with:
         | 
| 18 | 
            +
                    ruby-version: 2.7
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                - name: Publish to RubyGems
         | 
| 21 | 
            +
                  run: |
         | 
| 22 | 
            +
                    mkdir -p $HOME/.gem
         | 
| 23 | 
            +
                    touch $HOME/.gem/credentials
         | 
| 24 | 
            +
                    chmod 0600 $HOME/.gem/credentials
         | 
| 25 | 
            +
                    printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
         | 
| 26 | 
            +
                    gem build *.gemspec
         | 
| 27 | 
            +
                    gem push *.gem
         | 
| 28 | 
            +
                  env:
         | 
| 29 | 
            +
                    GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,8 +1,6 @@ | |
| 1 1 | 
             
            # BusinessCalendar
         | 
| 2 2 |  | 
| 3 3 | 
             
            [](https://rubygems.org/gems/business_calendar)
         | 
| 4 | 
            -
            [](https://travis-ci.org/enova/business_calendar)
         | 
| 5 | 
            -
            [](https://coveralls.io/github/enova/business_calendar?branch=master)
         | 
| 6 4 | 
             
            [](https://gemnasium.com/enova/business_calendar)
         | 
| 7 5 |  | 
| 8 6 | 
             
            Need to know what days you can actually debit a customer on in excruciating detail? Fed up with singleton-based gems 
         | 
| @@ -32,7 +30,7 @@ Instantiate a calendar object with: | |
| 32 30 | 
             
            bc = BusinessCalendar.for(:US)
         | 
| 33 31 | 
             
            ```
         | 
| 34 32 |  | 
| 35 | 
            -
            This will automatically load holidays based on the US banking holiday schedule, as configured in `data/ | 
| 33 | 
            +
            This will automatically load holidays based on the US banking holiday schedule, as configured in `data/US.yml`.
         | 
| 36 34 | 
             
            Currently, this gem supports `:GB` and `:US` regions.
         | 
| 37 35 |  | 
| 38 36 | 
             
            Now, you can use it:
         | 
    
        data/business_calendar.gemspec
    CHANGED
    
    | @@ -18,15 +18,11 @@ Gem::Specification.new do |spec| | |
| 18 18 | 
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 19 19 | 
             
              spec.require_paths = ["lib"]
         | 
| 20 20 |  | 
| 21 | 
            -
             | 
| 22 21 | 
             
              spec.add_dependency "holidays", "~> 1.0"
         | 
| 23 22 | 
             
              spec.add_dependency "faraday"
         | 
| 24 | 
            -
              spec.add_dependency "faraday-conductivity"
         | 
| 25 23 |  | 
| 26 | 
            -
              spec.add_development_dependency "bundler", "~> 1.3"
         | 
| 27 24 | 
             
              spec.add_development_dependency "rake"
         | 
| 28 25 | 
             
              spec.add_development_dependency "rspec", "~> 3.2"
         | 
| 29 26 | 
             
              spec.add_development_dependency "webmock"
         | 
| 30 | 
            -
              spec.add_development_dependency "simplecov"
         | 
| 31 27 | 
             
              spec.add_development_dependency "pry"
         | 
| 32 28 | 
             
            end
         | 
    
        data/data/GB.yml
    CHANGED
    
    | @@ -26,12 +26,12 @@ GB: | |
| 26 26 | 
             
              - '2015-12-26'
         | 
| 27 27 | 
             
              - '2016-12-25'
         | 
| 28 28 | 
             
              - '2017-01-01'
         | 
| 29 | 
            -
              - '2020-12- | 
| 30 | 
            -
              - '2021-12- | 
| 31 | 
            -
              - '2021-12- | 
| 32 | 
            -
              - '2022-01- | 
| 33 | 
            -
              - '2022-12- | 
| 34 | 
            -
              - '2023-01- | 
| 29 | 
            +
              - '2020-12-28'
         | 
| 30 | 
            +
              - '2021-12-27'
         | 
| 31 | 
            +
              - '2021-12-28'
         | 
| 32 | 
            +
              - '2022-01-03'
         | 
| 33 | 
            +
              - '2022-12-27'
         | 
| 34 | 
            +
              - '2023-01-02'
         | 
| 35 35 | 
             
              removals:
         | 
| 36 36 | 
             
              - '2002-05-28'
         | 
| 37 37 | 
             
              - '2007-04-08'
         | 
| @@ -44,9 +44,9 @@ GB: | |
| 44 44 | 
             
              - '2013-03-31'
         | 
| 45 45 | 
             
              - '2014-04-20'
         | 
| 46 46 | 
             
              - '2015-12-28'
         | 
| 47 | 
            -
              - '2020-12- | 
| 48 | 
            -
              - '2021-12- | 
| 49 | 
            -
              - '2021-12- | 
| 50 | 
            -
              - '2022-01- | 
| 51 | 
            -
              - '2022-12- | 
| 52 | 
            -
              - '2023-01- | 
| 47 | 
            +
              - '2020-12-26'
         | 
| 48 | 
            +
              - '2021-12-25'
         | 
| 49 | 
            +
              - '2021-12-26'
         | 
| 50 | 
            +
              - '2022-01-01'
         | 
| 51 | 
            +
              - '2022-12-25'
         | 
| 52 | 
            +
              - '2023-01-01'
         | 
    
        data/lib/business_calendar.rb
    CHANGED
    
    | @@ -1,5 +1,4 @@ | |
| 1 1 | 
             
            require 'faraday'
         | 
| 2 | 
            -
            require 'faraday/conductivity'
         | 
| 3 2 |  | 
| 4 3 | 
             
            module BusinessCalendar
         | 
| 5 4 | 
             
              CountryNotSupported = Class.new(StandardError)
         | 
| @@ -51,7 +50,7 @@ module BusinessCalendar | |
| 51 50 |  | 
| 52 51 | 
             
                def holiday_determiner_for_endpoint(additions_endpoint, removals_endpoint, opts)
         | 
| 53 52 | 
             
                  client = Faraday.new do |conn|
         | 
| 54 | 
            -
                    conn.response : | 
| 53 | 
            +
                    conn.response :raise_error
         | 
| 55 54 | 
             
                    conn.adapter :net_http
         | 
| 56 55 | 
             
                  end
         | 
| 57 56 |  | 
    
        data/spec/acceptance_gb_spec.rb
    CHANGED
    
    | @@ -20,12 +20,12 @@ describe "GB bank holidays" do | |
| 20 20 | 
             
                  2015-12-26
         | 
| 21 21 | 
             
                  2016-12-25
         | 
| 22 22 | 
             
                  2017-01-01
         | 
| 23 | 
            -
                  2020-12- | 
| 24 | 
            -
                  2021-12- | 
| 25 | 
            -
                  2021-12- | 
| 26 | 
            -
                  2022-01- | 
| 27 | 
            -
                  2022-12- | 
| 28 | 
            -
                  2023-01- | 
| 23 | 
            +
                  2020-12-28
         | 
| 24 | 
            +
                  2021-12-27
         | 
| 25 | 
            +
                  2021-12-28
         | 
| 26 | 
            +
                  2022-01-03
         | 
| 27 | 
            +
                  2022-12-27
         | 
| 28 | 
            +
                  2023-01-02
         | 
| 29 29 | 
             
                ).map { |x| Date.parse x }.each do |expected_holiday|
         | 
| 30 30 | 
             
                it "treats #{expected_holiday} as a holiday" do
         | 
| 31 31 | 
             
                  expect(BusinessCalendar.for(:GB).is_holiday?(expected_holiday)).to be true
         | 
| @@ -35,12 +35,12 @@ describe "GB bank holidays" do | |
| 35 35 | 
             
              %w(
         | 
| 36 36 | 
             
                  2012-05-28
         | 
| 37 37 | 
             
                  2015-12-28
         | 
| 38 | 
            -
                  2020-12- | 
| 39 | 
            -
                  2021-12- | 
| 40 | 
            -
                  2021-12- | 
| 41 | 
            -
                  2022-01- | 
| 42 | 
            -
                  2022-12- | 
| 43 | 
            -
                  2023-01- | 
| 38 | 
            +
                  2020-12-26
         | 
| 39 | 
            +
                  2021-12-25
         | 
| 40 | 
            +
                  2021-12-26
         | 
| 41 | 
            +
                  2022-01-01
         | 
| 42 | 
            +
                  2022-12-25
         | 
| 43 | 
            +
                  2023-01-01
         | 
| 44 44 | 
             
                ).map { |x| Date.parse x }.each do |date|
         | 
| 45 45 | 
             
                it "treats #{date} as not a holiday" do
         | 
| 46 46 | 
             
                  expect(BusinessCalendar.for(:GB).is_holiday?(date)).to be false
         | 
| @@ -366,7 +366,7 @@ describe BusinessCalendar do | |
| 366 366 | 
             
                  before { stub_request(:get, additions).to_return(:status => 500) }
         | 
| 367 367 |  | 
| 368 368 | 
             
                  it 'raises an error' do
         | 
| 369 | 
            -
                    expect { subject.is_business_day?('2014-07-04'.to_date) }.to raise_error Faraday:: | 
| 369 | 
            +
                    expect { subject.is_business_day?('2014-07-04'.to_date) }.to raise_error Faraday::Error
         | 
| 370 370 | 
             
                  end
         | 
| 371 371 | 
             
                end
         | 
| 372 372 |  | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: business_calendar
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 2.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Robert Nubel
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2020-12-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: holidays
         | 
| @@ -38,34 +38,6 @@ dependencies: | |
| 38 38 | 
             
                - - ">="
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '0'
         | 
| 41 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name: faraday-conductivity
         | 
| 43 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            -
                requirements:
         | 
| 45 | 
            -
                - - ">="
         | 
| 46 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: '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'
         | 
| 55 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            -
              name: bundler
         | 
| 57 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            -
                requirements:
         | 
| 59 | 
            -
                - - "~>"
         | 
| 60 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: '1.3'
         | 
| 62 | 
            -
              type: :development
         | 
| 63 | 
            -
              prerelease: false
         | 
| 64 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            -
                requirements:
         | 
| 66 | 
            -
                - - "~>"
         | 
| 67 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: '1.3'
         | 
| 69 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 42 | 
             
              name: rake
         | 
| 71 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -108,20 +80,6 @@ dependencies: | |
| 108 80 | 
             
                - - ">="
         | 
| 109 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 82 | 
             
                    version: '0'
         | 
| 111 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 112 | 
            -
              name: simplecov
         | 
| 113 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 | 
            -
                requirements:
         | 
| 115 | 
            -
                - - ">="
         | 
| 116 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version: '0'
         | 
| 118 | 
            -
              type: :development
         | 
| 119 | 
            -
              prerelease: false
         | 
| 120 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            -
                requirements:
         | 
| 122 | 
            -
                - - ">="
         | 
| 123 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            -
                    version: '0'
         | 
| 125 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 126 84 | 
             
              name: pry
         | 
| 127 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -144,10 +102,10 @@ executables: [] | |
| 144 102 | 
             
            extensions: []
         | 
| 145 103 | 
             
            extra_rdoc_files: []
         | 
| 146 104 | 
             
            files:
         | 
| 105 | 
            +
            - ".github/workflows/ci.yml"
         | 
| 106 | 
            +
            - ".github/workflows/gem-push.yml"
         | 
| 147 107 | 
             
            - ".gitignore"
         | 
| 148 108 | 
             
            - ".rspec"
         | 
| 149 | 
            -
            - ".simplecov"
         | 
| 150 | 
            -
            - ".travis.yml"
         | 
| 151 109 | 
             
            - CHANGELOG.md
         | 
| 152 110 | 
             
            - Gemfile
         | 
| 153 111 | 
             
            - LICENSE.txt
         | 
| @@ -160,6 +118,7 @@ files: | |
| 160 118 | 
             
            - data/US.yml
         | 
| 161 119 | 
             
            - data/org/captalys.yml
         | 
| 162 120 | 
             
            - gemfiles/ree.gemfile
         | 
| 121 | 
            +
            - gemfiles/ruby_1.9.3.gemfile
         | 
| 163 122 | 
             
            - lib/business_calendar.rb
         | 
| 164 123 | 
             
            - lib/business_calendar/calendar.rb
         | 
| 165 124 | 
             
            - lib/business_calendar/holiday_determiner.rb
         | 
| @@ -177,7 +136,7 @@ homepage: '' | |
| 177 136 | 
             
            licenses:
         | 
| 178 137 | 
             
            - MIT
         | 
| 179 138 | 
             
            metadata: {}
         | 
| 180 | 
            -
            post_install_message: | 
| 139 | 
            +
            post_install_message:
         | 
| 181 140 | 
             
            rdoc_options: []
         | 
| 182 141 | 
             
            require_paths:
         | 
| 183 142 | 
             
            - lib
         | 
| @@ -192,8 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 192 151 | 
             
                - !ruby/object:Gem::Version
         | 
| 193 152 | 
             
                  version: '0'
         | 
| 194 153 | 
             
            requirements: []
         | 
| 195 | 
            -
            rubygems_version: 3. | 
| 196 | 
            -
            signing_key: | 
| 154 | 
            +
            rubygems_version: 3.1.2
         | 
| 155 | 
            +
            signing_key:
         | 
| 197 156 | 
             
            specification_version: 4
         | 
| 198 157 | 
             
            summary: Country-aware business-date logic and handling.
         | 
| 199 158 | 
             
            test_files:
         | 
    
        data/.simplecov
    DELETED
    
    
    
        data/.travis.yml
    DELETED
    
    | @@ -1,25 +0,0 @@ | |
| 1 | 
            -
            sudo: false
         | 
| 2 | 
            -
            language: ruby
         | 
| 3 | 
            -
            cache: bundler
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            matrix:
         | 
| 6 | 
            -
              include:
         | 
| 7 | 
            -
                - rmv: ree
         | 
| 8 | 
            -
                  gemfile: gemfiles/ree.gemfile
         | 
| 9 | 
            -
                  script: bundle exec rspec
         | 
| 10 | 
            -
                - rvm: 1.9.3
         | 
| 11 | 
            -
                  script: bundle exec rspec
         | 
| 12 | 
            -
                - rvm: 2.3.1
         | 
| 13 | 
            -
                  script: bundle exec rspec
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            env:
         | 
| 16 | 
            -
              global:
         | 
| 17 | 
            -
                secure: klQ3BQNdKkGIq3Zfv8Sr6oZqaMg9GHx+LGhynQ5xt7A6SGvxbMuoXJlE9wW4me6u+B9S2D+q+pdKgGPE/+fHsVt/d0zDXRnrjVyo1eexT220AMfpjiFDAtya8sAcuuAICLhw8AmzTjns8yAWInv5U5vC6oejkLA71FXtHU//210=
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            deploy:
         | 
| 20 | 
            -
              provider: rubygems
         | 
| 21 | 
            -
              api_key:
         | 
| 22 | 
            -
                secure: "c9QcNX+nk0Yzl22ZVknZtv+/G4fUeLph0TH9PS6hQ92zywM61wtXTJExZdBHulvKAaQbKaq20LcFjLw41qwJc6tvIEYXpOinfOaiemTKaGmKscDrIi3wUAxfjmTacXZAaTdEORQVqTOmppqsuKnP7cqmSNxTSI901Sz5Cy6Jpl0="
         | 
| 23 | 
            -
              on:
         | 
| 24 | 
            -
                tags: true
         | 
| 25 | 
            -
                repo: enova/business_calendar
         |