diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a20a45..6c59c95 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ["3.0", "3.1", "3.2", "3.3"] + ruby: ["3.2", "3.3", "3.4", "4.0"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c32c4d2..52bd3c1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,10 +11,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Set up Ruby 3.1.4 + - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: "3.1.4" + ruby-version: "3.2.0" - name: Build and test run: | diff --git a/Gemfile.lock b/Gemfile.lock index d252696..b585437 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,134 +1,176 @@ PATH remote: . specs: - maremma (5.0.0) - activesupport (>= 4.2.5) - addressable (>= 2.3.6) + maremma (6.0.0) + activesupport (~> 8.1, >= 8.1.2) + addressable (~> 2.8, >= 2.8.9) builder (~> 3.2, >= 3.2.2) - excon (~> 0.71.0) + excon (~> 1.3, >= 1.3.2) faraday (>= 2.0) - faraday-encoding (~> 0.0.5) - faraday-excon (~> 2.1.0) - faraday-follow_redirects (~> 0.3.0) - faraday-gzip (~> 0.1.0) - faraday-multipart (~> 1.0.4) - nokogiri (~> 1.16, >= 1.16.2) - oj (>= 2.8.3) + faraday-encoding (~> 0.0.6) + faraday-excon (~> 2.4.0) + faraday-follow_redirects (~> 0.5.0) + faraday-gzip (~> 3.1.0) + faraday-multipart (~> 1.2.0) + nokogiri (~> 1.19, >= 1.19.1) + oj (~> 3.16, >= 3.16.15) oj_mimic_json (~> 1.0, >= 1.0.1) GEM remote: https://rubygems.org/ specs: - activesupport (6.1.7) - concurrent-ruby (~> 1.0, >= 1.0.2) + activesupport (8.1.2) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) + json + logger (>= 1.4.2) minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.1) - public_suffix (>= 2.0.2, < 6.0) - ast (2.4.2) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + addressable (2.8.9) + public_suffix (>= 2.0.2, < 8.0) + ast (2.4.3) + base64 (0.3.0) + bigdecimal (4.0.1) builder (3.2.4) - concurrent-ruby (1.1.10) - crack (0.4.5) + concurrent-ruby (1.3.6) + connection_pool (3.0.2) + crack (1.0.1) + bigdecimal rexml - diff-lcs (1.5.0) - docile (1.4.0) - excon (0.71.1) - faraday (2.6.0) - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-encoding (0.0.5) + diff-lcs (1.6.2) + docile (1.4.1) + drb (2.2.3) + excon (1.4.0) + logger + faraday (2.14.1) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-encoding (0.0.6) faraday - faraday-excon (2.1.0) - excon (>= 0.27.4) - faraday (~> 2.0) - faraday-follow_redirects (0.3.0) + faraday-excon (2.4.0) + excon (>= 1.0.0) + faraday (>= 2.11.0, < 3) + faraday-follow_redirects (0.5.0) faraday (>= 1, < 3) - faraday-gzip (0.1.0) - faraday (>= 1.0) - zlib (~> 2.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) + faraday-gzip (3.1.0) + faraday (>= 2.0, < 3) + zlib (~> 3.0) + faraday-multipart (1.2.0) + multipart-post (~> 2.0) faraday-net_http (3.0.1) - hashdiff (1.0.1) + hashdiff (1.2.1) i18n (1.12.0) concurrent-ruby (~> 1.0) - jaro_winkler (1.5.4) + json (2.18.1) + json-schema (6.1.0) + addressable (~> 2.8) + bigdecimal (>= 3.1, < 5) + language_server-protocol (3.17.0.5) + lint_roller (1.1.0) + logger (1.7.0) + mcp (0.7.1) + json-schema (>= 4.1) mini_portile2 (2.8.5) - minitest (5.16.3) + minitest (6.0.2) + drb (~> 2.0) + prism (~> 1.5) multipart-post (2.2.3) - nokogiri (1.16.2) + nokogiri (1.19.1) mini_portile2 (~> 2.8.2) racc (~> 1.4) - oj (3.13.21) + oj (3.16.15) + bigdecimal (>= 3.0) + ostruct (>= 0.2) oj_mimic_json (1.0.1) - parallel (1.22.1) - parser (3.1.2.1) + ostruct (0.6.3) + parallel (1.27.0) + parser (3.3.10.2) ast (~> 2.4.1) + racc + prism (1.9.0) public_suffix (5.0.0) racc (1.6.0) - rack (2.2.6.4) - rack-test (0.8.3) - rack (>= 1.0, < 3) + rack (3.2.5) + rack-test (2.2.0) + rack (>= 1.3) rainbow (3.1.1) - rake (13.0.6) - rexml (3.2.5) - rspec (3.11.0) - rspec-core (~> 3.11.0) - rspec-expectations (~> 3.11.0) - rspec-mocks (~> 3.11.0) - rspec-core (3.11.0) - rspec-support (~> 3.11.0) - rspec-expectations (3.11.1) + rake (13.3.1) + regexp_parser (2.11.3) + rexml (3.4.4) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-mocks (3.11.1) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-support (3.11.1) - rubocop (0.77.0) - jaro_winkler (~> 1.5.1) + rspec-support (~> 3.13.0) + rspec-support (3.13.7) + rubocop (1.85.0) + json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) + mcp (~> 0.6) parallel (~> 1.10) - parser (>= 2.6) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 1.7) - rubocop-performance (1.6.1) - rubocop (>= 0.71.0) - ruby-progressbar (1.11.0) - ruby2_keywords (0.0.5) - simplecov (0.21.2) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.49.0) + parser (>= 3.3.7.2) + prism (~> 1.7) + rubocop-performance (1.26.1) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.47.1, < 2.0) + ruby-progressbar (1.13.0) + securerandom (0.4.1) + simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) + simplecov-html (0.13.2) simplecov_json_formatter (0.1.4) tzinfo (2.0.5) concurrent-ruby (~> 1.0) - unicode-display_width (1.6.1) - vcr (3.0.3) - webmock (3.18.1) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) + uri (1.1.1) + vcr (6.4.0) + webmock (3.26.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - zeitwerk (2.6.1) - zlib (2.1.1) + zlib (3.2.2) PLATFORMS ruby DEPENDENCIES - bundler (~> 2.0) + bundler (~> 2.5.5) maremma! - rack-test (~> 0) - rake - rspec (~> 3.4) - rubocop (~> 0.77.0) - rubocop-performance (~> 1.5, >= 1.5.1) - simplecov - vcr (~> 3.0, >= 3.0.3) - webmock (~> 3.0, >= 3.0.1) + rack-test (~> 2.2) + rake (~> 13.3, >= 13.3.1) + rspec (~> 3.13, >= 3.13.2) + rubocop (~> 1.85) + rubocop-performance (~> 1.26, >= 1.26.1) + simplecov (~> 0.22.0) + vcr (~> 6.4) + webmock (~> 3.26, >= 3.26.1) BUNDLED WITH 2.5.5 diff --git a/lib/maremma/version.rb b/lib/maremma/version.rb index f1fe632..fb9f632 100644 --- a/lib/maremma/version.rb +++ b/lib/maremma/version.rb @@ -1,3 +1,3 @@ module Maremma - VERSION = "5.0.0".freeze + VERSION = "6.0.0".freeze end diff --git a/maremma.gemspec b/maremma.gemspec index 29c03c7..072251a 100644 --- a/maremma.gemspec +++ b/maremma.gemspec @@ -13,32 +13,32 @@ Gem::Specification.new do |s| s.version = Maremma::VERSION s.extra_rdoc_files = ["README.md"] s.license = "MIT" - s.required_ruby_version = ['>=2.3'] + s.required_ruby_version = ['>=3.2.0'] s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") # Declary dependencies here, rather than in the Gemfile - s.add_dependency "activesupport", ">= 4.2.5" - s.add_dependency "addressable", ">= 2.3.6" + s.add_dependency "activesupport", "~> 8.1", ">= 8.1.2" + s.add_dependency "addressable", "~> 2.8", ">= 2.8.9" s.add_dependency "builder", "~> 3.2", ">= 3.2.2" - s.add_dependency "excon", "~> 0.71.0" + s.add_dependency "excon", "~> 1.3", ">= 1.3.2" s.add_dependency "faraday", ">=2.0" - s.add_dependency "faraday-follow_redirects", "~> 0.3.0" - s.add_dependency "faraday-encoding", "~> 0.0.5" - s.add_dependency "faraday-excon", "~>2.1.0" - s.add_dependency "faraday-gzip", "~> 0.1.0" - s.add_dependency "faraday-multipart", "~> 1.0.4" - s.add_dependency "nokogiri", "~> 1.16", ">= 1.16.2" - s.add_dependency "oj", ">= 2.8.3" + s.add_dependency "faraday-follow_redirects", "~> 0.5.0" + s.add_dependency "faraday-encoding", "~> 0.0.6" + s.add_dependency "faraday-excon", "~>2.4.0" + s.add_dependency "faraday-gzip", "~> 3.1.0" + s.add_dependency "faraday-multipart", "~> 1.2.0" + s.add_dependency "nokogiri", "~> 1.19", ">= 1.19.1" + s.add_dependency "oj", "~> 3.16", ">= 3.16.15" s.add_dependency "oj_mimic_json", "~> 1.0", ">= 1.0.1" - s.add_development_dependency "bundler", "~> 2.0" - s.add_development_dependency "rack-test", "~> 0" - s.add_development_dependency "rake" - s.add_development_dependency "rspec", "~> 3.4" - s.add_development_dependency "rubocop", "~> 0.77.0" - s.add_development_dependency "rubocop-performance", "~> 1.5", ">= 1.5.1" - s.add_development_dependency "simplecov" - s.add_development_dependency "vcr", "~> 3.0", ">= 3.0.3" - s.add_development_dependency "webmock", "~> 3.0", ">= 3.0.1" + s.add_development_dependency "bundler", "~> 2.5.5" + s.add_development_dependency "rack-test", "~> 2.2" + s.add_development_dependency "rake", "~> 13.3", ">= 13.3.1" + s.add_development_dependency "rspec", "~> 3.13", ">= 3.13.2" + s.add_development_dependency "rubocop", "~> 1.85" + s.add_development_dependency "rubocop-performance", "~> 1.26", ">= 1.26.1" + s.add_development_dependency "simplecov", "~> 0.22.0" + s.add_development_dependency "vcr", "~> 6.4" + s.add_development_dependency "webmock", "~> 3.26", ">= 3.26.1" end diff --git a/spec/maremma_spec.rb b/spec/maremma_spec.rb index f13fcdc..85ab01f 100644 --- a/spec/maremma_spec.rb +++ b/spec/maremma_spec.rb @@ -96,8 +96,8 @@ it "get utf8 bad encoding", vcr: true do response = subject.get("https://pub.sandbox.orcid.org/v3.0/0000-0002-5721-4355", accept: "json") expect(response.body["data"]).to be_a(Hash) - expect(response.body["data"]["person"]["name"]["given-names"]["value"]).to eq("DataC??t??") - expect(response.body["data"]["person"]["name"]["family-name"]["value"]).to eq("UTF8 T??st") + expect(response.body["data"]["person"]["name"]["given-names"]["value"]).to eq("DataCíté") + expect(response.body["data"]["person"]["name"]["family-name"]["value"]).to eq("UTF8 Tést") end it "get utf8 skip encoding", vcr: true do @@ -113,7 +113,7 @@ stub = stub_request(:head, url).to_return(status: 200, headers: { "Content-Type" => "text/html" }) response = subject.head(url, accept: "html") expect(response.body).to be_nil - expect(response.headers).to eq("Content-Length" => 0, "Content-Type" => "text/html") + expect(response.headers).to eq("Content-Type" => "text/html") expect(stub).to have_been_requested end end @@ -165,7 +165,7 @@ stub = stub_request(:get, url).to_return(body: nil, status: 200, headers: { "Content-Type" => "application/json" }) response = subject.get(url) expect(response.body).to eq("data" => nil) - expect(response.headers).to eq("Content-Length" => 0, "Content-Type" => "application/json") + expect(response.headers).to eq("Content-Type" => "application/json") expect(stub).to have_been_requested end @@ -173,7 +173,7 @@ stub = stub_request(:get, url).to_return(body: nil, status: 200, headers: { "Content-Type" => "application/xml" }) response = subject.get(url, accept: "xml") expect(response.body).to eq("data" => nil) - expect(response.headers).to eq("Content-Length" => 0, "Content-Type" => "application/xml") + expect(response.headers).to eq("Content-Type" => "application/xml") expect(stub).to have_been_requested end @@ -181,7 +181,7 @@ stub = stub_request(:get, url).to_return(body: nil, status: 200, headers: { "Content-Type" => "text/html" }) response = subject.get(url, accept: "html") expect(response.body).to eq("data" => nil) - expect(response.headers).to eq("Content-Length" => 0, "Content-Type" => "text/html") + expect(response.headers).to eq("Content-Type" => "text/html") expect(stub).to have_been_requested end @@ -333,7 +333,7 @@ stub = stub_request(:delete, url).to_return(status: 204, headers: { "Content-Type" => "text/html" }) response = subject.delete(url) expect(response.body).to eq("data" => nil) - expect(response.headers).to eq("Content-Length" => 0, "Content-Type" => "text/html") + expect(response.headers).to eq("Content-Type" => "text/html") expect(response.status).to eq(204) expect(stub).to have_been_requested end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index ff8cf17..6507dc5 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -6,6 +6,7 @@ require "simplecov" SimpleCov.start +require "ostruct" require "maremma" require "rspec" require "rack/test"