diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7d96a34..a995e41 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby_version: [2.6, 2.7] + ruby_version: [2.7, 3.0, 3.1, 3.2, 3.3, 3.4] env: CI: true steps: diff --git a/.rubocop.yml b/.rubocop.yml index 48673db..d0c971b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,5 @@ -require: rubocop-rspec +plugins: + - rubocop-rspec AllCops: DisplayCopNames: true @@ -56,6 +57,9 @@ Lint/RaiseException: Lint/StructNewOverride: Enabled: false +Lint/RedundantDirGlobSort: + Enabled: false + Metrics/ParameterLists: Max: 7 diff --git a/.ruby-version b/.ruby-version index 37c2961..6a81b4c 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.7.2 +2.7.8 diff --git a/Gemfile.lock b/Gemfile.lock index b8f43e3..570e5ef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - veryfi (2.0.0) + veryfi (3.0.0) base64 (~> 0.1) faraday (>= 1.7, < 3.0) openssl (>= 2.2, < 4.1) @@ -17,8 +17,8 @@ GEM zeitwerk (~> 2.3) addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) - ast (2.4.2) - base64 (0.2.0) + ast (2.4.3) + base64 (0.3.0) bigdecimal (3.1.8) bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) @@ -38,21 +38,25 @@ GEM hashdiff (1.1.0) i18n (1.14.5) concurrent-ruby (~> 1.0) + json (2.18.0) + language_server-protocol (3.17.0.5) + lint_roller (1.1.0) method_source (1.1.0) minitest (5.23.1) openssl (4.0.0) - parallel (1.24.0) - parser (3.3.2.0) + parallel (1.27.0) + parser (3.3.10.1) ast (~> 2.4.1) racc + prism (1.8.0) pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) public_suffix (5.0.5) - racc (1.8.0) + racc (1.8.1) rainbow (3.1.1) rake (13.2.1) - regexp_parser (2.9.2) + regexp_parser (2.11.3) rexml (3.4.4) rspec (3.13.0) rspec-core (~> 3.13.0) @@ -70,20 +74,23 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-support (3.13.1) - rubocop (0.93.1) + rubocop (1.82.1) + json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) parallel (~> 1.10) - parser (>= 2.7.1.5) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8) - rexml - rubocop-ast (>= 0.6.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.48.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (1.30.0) - parser (>= 3.2.1.0) - rubocop-rspec (1.44.1) - rubocop (~> 0.87) - rubocop-ast (>= 0.7.1) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.49.0) + parser (>= 3.3.7.2) + prism (~> 1.7) + rubocop-rspec (3.9.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) simplecov (0.22.0) @@ -96,7 +103,9 @@ GEM thor (1.4.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (1.8.0) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) vcr (6.1.0) webmock (3.23.1) addressable (>= 2.8.0) @@ -112,15 +121,15 @@ PLATFORMS DEPENDENCIES activesupport (~> 6.0) - bundler (~> 2.2) + bundler (~> 2.4) bundler-audit (~> 0.9) pry (~> 0.14) rake (~> 13.0) rexml (~> 3.4.4) rspec (~> 3.9) rspec-its (~> 1.3) - rubocop (~> 0.82) - rubocop-rspec (~> 1.38) + rubocop (~> 1.65) + rubocop-rspec (~> 3.0) simplecov (~> 0.21) simplecov-badge (~> 2.0) vcr (~> 6.0) @@ -128,4 +137,4 @@ DEPENDENCIES webmock (~> 3.14) BUNDLED WITH - 2.2.26 + 2.4.22 diff --git a/lib/veryfi/request.rb b/lib/veryfi/request.rb index ce2c9e3..8201c52 100644 --- a/lib/veryfi/request.rb +++ b/lib/veryfi/request.rb @@ -92,10 +92,10 @@ def generate_headers(params = {}) def default_headers { "User-Agent": "Ruby Veryfi-Ruby/#{Veryfi::VERSION}", - "Accept": "application/json", + Accept: "application/json", "Content-Type": "application/json", "Client-Id": client_id, - "Authorization": "apikey #{username}:#{api_key}" + Authorization: "apikey #{username}:#{api_key}" } end diff --git a/lib/veryfi/version.rb b/lib/veryfi/version.rb index db68552..00516f4 100644 --- a/lib/veryfi/version.rb +++ b/lib/veryfi/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Veryfi - VERSION = "2.0.0" + VERSION = "3.0.0" end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 938323e..dd788e8 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -20,7 +20,7 @@ # call SimpleCov::Formatter::BadgeFormatter after the normal HTMLFormatter SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ SimpleCov::Formatter::HTMLFormatter, - SimpleCov::Formatter::BadgeFormatter, + SimpleCov::Formatter::BadgeFormatter ] end end diff --git a/spec/veryfi/document_spec.rb b/spec/veryfi/document_spec.rb index 4e03539..c24d4b6 100644 --- a/spec/veryfi/document_spec.rb +++ b/spec/veryfi/document_spec.rb @@ -33,16 +33,16 @@ let(:document_params) do { - "file_path": Dir.pwd + "/spec/fixtures/receipt.jpg", - "auto_delete": true, - "boost_mode": true, - "async": false, - "external_id": "123456789", - "max_pages_to_process": 10, - "tags": [ + file_path: Dir.pwd + "/spec/fixtures/receipt.jpg", + auto_delete: true, + boost_mode: true, + async: false, + external_id: "123456789", + max_pages_to_process: 10, + tags: [ "tag1" ], - "categories": [ + categories: [ "Advertising & Marketing", "Automotive" ] @@ -91,20 +91,20 @@ let(:document_params) do { - "file_name": "invoice.png", - "file_url": "https://raw.githubusercontent.com/veryfi/veryfi-python/master/tests/assets/receipt_public.jpg", - "file_urls": [ + file_name: "invoice.png", + file_url: "https://raw.githubusercontent.com/veryfi/veryfi-python/master/tests/assets/receipt_public.jpg", + file_urls: [ "https://raw.githubusercontent.com/veryfi/veryfi-python/master/tests/assets/receipt_public.jpg" ], - "auto_delete": true, - "boost_mode": true, - "async": false, - "external_id": "123456789", - "max_pages_to_process": 10, - "tags": [ + auto_delete: true, + boost_mode: true, + async: false, + external_id: "123456789", + max_pages_to_process: 10, + tags: [ "tag1" ], - "categories": [ + categories: [ "Advertising & Marketing", "Automotive" ] diff --git a/spec/veryfi/line_item_spec.rb b/spec/veryfi/line_item_spec.rb index cc74ba8..27261a8 100644 --- a/spec/veryfi/line_item_spec.rb +++ b/spec/veryfi/line_item_spec.rb @@ -34,29 +34,29 @@ let(:line_item_params) do { - "date": "", - "description": "98 Meat Pty Xchz", - "discount": 0, - "end_date": "", - "hsn": "", - "order": 1, - "price": 12.5, - "quantity": 1, - "reference": "", - "section": "", - "sku": "038902058959", - "start_date": "", - "tags": [ + date: "", + description: "98 Meat Pty Xchz", + discount: 0, + end_date: "", + hsn: "", + order: 1, + price: 12.5, + quantity: 1, + reference: "", + section: "", + sku: "038902058959", + start_date: "", + tags: [ { - "id": 757_123, - "name": "tag" + id: 757_123, + name: "tag" } ], - "tax": 7.66, - "tax_rate": 7.66, - "total": 88.2, - "type": "food", - "unit_of_measure": "" + tax: 7.66, + tax_rate: 7.66, + total: 88.2, + type: "food", + unit_of_measure: "" } end diff --git a/spec/veryfi/request_spec.rb b/spec/veryfi/request_spec.rb index 30f2287..9cd725c 100644 --- a/spec/veryfi/request_spec.rb +++ b/spec/veryfi/request_spec.rb @@ -10,10 +10,10 @@ let(:expected_headers) do { "User-Agent": "Ruby Veryfi-Ruby/#{Veryfi::VERSION}", - "Accept": "application/json", + Accept: "application/json", "Content-Type": "application/json", "Client-Id": "fBvJLm1zCJ8Doxf94mMrpbrkDp8nr", - "Authorization": "apikey john_doe:123456" + Authorization: "apikey john_doe:123456" } end @@ -24,7 +24,7 @@ response = client.document.all - expect(response).to match_array([{ "id" => 1 }]) + expect(response).to contain_exactly({ "id" => 1 }) end end @@ -78,9 +78,7 @@ "details": [ { "type": "value_error", - "loc": [ - - ], + "loc": [], "msg": "Value error, Only one of ..." } ] diff --git a/veryfi.gemspec b/veryfi.gemspec index 6ce0ffb..09d04a3 100644 --- a/veryfi.gemspec +++ b/veryfi.gemspec @@ -70,14 +70,14 @@ Gem::Specification.new do |spec| spec.add_dependency "faraday", ">= 1.7", "< 3.0" - spec.add_development_dependency "bundler", "~> 2.2" + spec.add_development_dependency "bundler", "~> 2.4" spec.add_development_dependency "bundler-audit", "~> 0.9" spec.add_development_dependency "pry", "~> 0.14" spec.add_development_dependency "rake", "~> 13.0" spec.add_development_dependency "rspec", "~> 3.9" spec.add_development_dependency "rspec-its", "~> 1.3" - spec.add_development_dependency "rubocop", "~> 0.82" - spec.add_development_dependency "rubocop-rspec", "~> 1.38" + spec.add_development_dependency "rubocop", "~> 1.65" + spec.add_development_dependency "rubocop-rspec", "~> 3.0" spec.add_development_dependency "simplecov", "~> 0.21" spec.add_development_dependency "simplecov-badge", "~> 2.0" spec.add_development_dependency "vcr", "~> 6.0"