From e86c19aecd39d9f8e0ad4e466dab684a6d056f70 Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Tue, 17 Feb 2026 15:57:03 -0500 Subject: [PATCH 1/3] 884: Ruby Upgrade --- .ruby-version | 2 +- CHANGELOG.md | 12 ++++ Gemfile | 17 +---- Rakefile | 45 +----------- VERSION | 2 +- lib/tijuana_client/client.rb | 15 ++-- lib/tijuana_client/error_middleware.rb | 12 +++- tijuana_client.gemspec | 97 +++++++++----------------- 8 files changed, 69 insertions(+), 133 deletions(-) create mode 100644 CHANGELOG.md diff --git a/.ruby-version b/.ruby-version index a4dd9db..1454f6e 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.7.4 +4.0.1 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9b411c0 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# Changelog + +## [1.0.0] - 2026-02-11 + +### Added +- Added `faraday ~> 2.0` as explicit runtime dependency +- Added `rake ~> 13.0` as development dependency + +### Updated +- Upgraded from Ruby 2.7.4 to Ruby 4.0.1 +- Updated vertebrae dependency to >= 1.0.5 for Faraday 2.x compatibility +- Modernized gemspec file diff --git a/Gemfile b/Gemfile index 6f1f601..5890016 100644 --- a/Gemfile +++ b/Gemfile @@ -1,17 +1,6 @@ # frozen_string_literal: true -source 'http://rubygems.org' +source 'https://rubygems.org' -gem 'vertebrae', '>= 0.6.0' - -# Add dependencies to develop your gem here. -# Include everything needed to run rake, tests, features, etc. -group :development do - gem 'bundler' - gem 'juwelier', git: 'https://github.com/flajann2/juwelier.git' - gem 'pry' - gem 'pry-byebug' - gem 'rspec' - gem 'rubocop' - gem 'webmock' -end +# Specify your gem's dependencies in tijuana_client.gemspec +gemspec diff --git a/Rakefile b/Rakefile index be3f7d7..82bb534 100644 --- a/Rakefile +++ b/Rakefile @@ -1,49 +1,8 @@ # frozen_string_literal: true -require 'rubygems' -require 'bundler' -begin - Bundler.setup(:default, :development) -rescue Bundler::BundlerError => e - warn e.message - warn 'Run `bundle install` to install missing gems' - exit e.status_code -end -require 'rake' - -require 'juwelier' -Juwelier::Tasks.new do |gem| - # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options - gem.name = 'tijuana_client' - gem.homepage = 'http://github.com/controlshift/tijuana_client' - gem.license = 'MIT' - gem.summary = %(API client for Tijuana) - gem.description = %(An API client for the code that runs Getup.org.au) - gem.email = 'nathan@controlshiftlabs.com' - gem.authors = ['Nathan Woodhull'] - # dependencies defined in Gemfile -end -Juwelier::RubygemsDotOrgTasks.new - -require 'rspec/core' +require 'bundler/gem_tasks' require 'rspec/core/rake_task' -RSpec::Core::RakeTask.new(:spec) do |spec| - spec.pattern = FileList['spec/**/*_spec.rb'] -end -RSpec::Core::RakeTask.new(:rcov) do |spec| - spec.pattern = 'spec/**/*_spec.rb' - spec.rcov = true -end +RSpec::Core::RakeTask.new(:spec) task default: :spec - -require 'rdoc/task' -Rake::RDocTask.new do |rdoc| - version = File.exist?('VERSION') ? File.read('VERSION') : '' - - rdoc.rdoc_dir = 'rdoc' - rdoc.title = "porpoise_external_actions #{version}" - rdoc.rdoc_files.include('README*') - rdoc.rdoc_files.include('lib/**/*.rb') -end diff --git a/VERSION b/VERSION index a2268e2..afaf360 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.1 \ No newline at end of file +1.0.0 \ No newline at end of file diff --git a/lib/tijuana_client/client.rb b/lib/tijuana_client/client.rb index bcda0ff..9e37457 100644 --- a/lib/tijuana_client/client.rb +++ b/lib/tijuana_client/client.rb @@ -40,18 +40,17 @@ def request(method, path, params, options) # :nodoc: end def setup - connection.stack do |builder| - builder.use Faraday::Request::Multipart - builder.use Faraday::Request::UrlEncoded + connection.faraday_connection = Faraday.new(connection.configuration.faraday_options) do |f| + f.request :multipart + f.request :url_encoded if connection.configuration.authenticated? - builder.use Faraday::Request::BasicAuthentication, connection.configuration.username, - connection.configuration.password + f.request :authorization, :basic, connection.configuration.username, connection.configuration.password end - builder.use Faraday::Response::Logger if ENV['DEBUG'] + f.response :logger if ENV['DEBUG'] - builder.use TijuanaClient::ErrorMiddleware - builder.adapter connection.configuration.adapter + f.use TijuanaClient::ErrorMiddleware + f.adapter connection.configuration.adapter end end diff --git a/lib/tijuana_client/error_middleware.rb b/lib/tijuana_client/error_middleware.rb index 4061da2..93dd17d 100644 --- a/lib/tijuana_client/error_middleware.rb +++ b/lib/tijuana_client/error_middleware.rb @@ -4,7 +4,7 @@ module TijuanaClient class ValidationError < StandardError; end class EmailValidationError < StandardError; end - class ErrorMiddleware < Faraday::Response::RaiseError + class ErrorMiddleware < Faraday::Middleware def on_complete(env) case env[:status] when 400 @@ -22,5 +22,15 @@ def on_complete(env) raise Faraday::ClientError, response_values(env).to_s end end + + private + + def response_values(env) + { + status: env[:status], + headers: env[:response_headers], + body: env[:body] + } + end end end diff --git a/tijuana_client.gemspec b/tijuana_client.gemspec index 4fec32f..f8e7590 100644 --- a/tijuana_client.gemspec +++ b/tijuana_client.gemspec @@ -1,71 +1,38 @@ -# Generated by juwelier -# DO NOT EDIT THIS FILE DIRECTLY -# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec' -# -*- encoding: utf-8 -*- -# stub: tijuana_client 0.3.1 ruby lib +# frozen_string_literal: true -Gem::Specification.new do |s| - s.name = "tijuana_client".freeze - s.version = "0.3.1" +lib = File.expand_path('lib', __dir__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) - s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= - s.require_paths = ["lib".freeze] - s.authors = ["Nathan Woodhull".freeze] - s.date = "2021-07-23" - s.description = "An API client for the code that runs Getup.org.au".freeze - s.email = "nathan@controlshiftlabs.com".freeze - s.extra_rdoc_files = [ - "LICENSE.txt", - "README.md" - ] - s.files = [ - ".github/workflows/ci.yml", - ".rubocop.yml", - ".ruby-gemset", - ".ruby-version", - "Gemfile", - "LICENSE.txt", - "README.md", - "Rakefile", - "VERSION", - "lib/tijuana_client.rb", - "lib/tijuana_client/base.rb", - "lib/tijuana_client/client.rb", - "lib/tijuana_client/error_middleware.rb", - "lib/tijuana_client/user.rb", - "spec/client_spec.rb", - "spec/spec_helper.rb", - "spec/tijuana_spec.rb", - "spec/user_spec.rb", - "tijuana_client.gemspec" - ] - s.homepage = "http://github.com/controlshift/tijuana_client".freeze - s.licenses = ["MIT".freeze] - s.rubygems_version = "3.1.6".freeze - s.summary = "API client for Tijuana".freeze +Gem::Specification.new do |spec| + spec.name = 'tijuana_client' + spec.version = File.read(File.expand_path('VERSION', __dir__)).strip + spec.authors = ['Nathan Woodhull', 'Owens Ehimen', 'Diego Marcet', 'Grey Moore'] + spec.email = ['talk@controlshiftlabs.com'] - if s.respond_to? :specification_version then - s.specification_version = 4 - end + spec.summary = 'API client for Tijuana' + spec.description = 'An API client for the code that runs Getup.org.au' + spec.homepage = 'https://github.com/controlshift/tijuana_client' + spec.license = 'MIT' - if s.respond_to? :add_runtime_dependency then - s.add_runtime_dependency(%q.freeze, [">= 0.6.0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - else - s.add_dependency(%q.freeze, [">= 0.6.0"]) - s.add_dependency(%q.freeze, [">= 0"]) - s.add_dependency(%q.freeze, [">= 0"]) - s.add_dependency(%q.freeze, [">= 0"]) - s.add_dependency(%q.freeze, [">= 0"]) - s.add_dependency(%q.freeze, [">= 0"]) - s.add_dependency(%q.freeze, [">= 0"]) - s.add_dependency(%q.freeze, [">= 0"]) + spec.files = Dir.chdir(File.expand_path(__dir__)) do + `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } end -end + spec.require_paths = ['lib'] + + spec.required_ruby_version = '>= 3.0.0' + # Runtime dependencies + spec.add_runtime_dependency 'vertebrae', '>= 1.0.5' + spec.add_runtime_dependency 'faraday', '~> 2.0' + + # Development dependencies + spec.add_development_dependency 'bundler', '>= 2.0' + spec.add_development_dependency 'pry' + spec.add_development_dependency 'pry-byebug' + spec.add_development_dependency 'rake', '~> 13.0' + spec.add_development_dependency 'rspec', '~> 3.0' + spec.add_development_dependency 'rubocop' + spec.add_development_dependency 'webmock' + + spec.metadata['rubygems_mfa_required'] = 'true' +end From 2f2ad060a74454d76b0a82a82f2c9fd5dd26a839 Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Wed, 18 Feb 2026 09:20:11 -0500 Subject: [PATCH 2/3] 884: Upgrade ruby in CI --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97c0804..90d6042 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: - uses: actions/checkout@v2 - uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6 with: - ruby-version: 2.7 + ruby-version: 4.0 bundler-cache: true - run: bundle install - run: bundle exec rspec @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v2 - uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6 with: - ruby-version: 2.7 + ruby-version: 4.0 bundler-cache: true - run: bundle install - run: bundle exec rubocop From 63732309c84a2a563ab8637d6b9195a6c4ef19d8 Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Wed, 18 Feb 2026 09:21:38 -0500 Subject: [PATCH 3/3] 884: Upgrade ruby setup version --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 90d6042..78319ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6 + - uses: ruby/setup-ruby@v1 with: ruby-version: 4.0 bundler-cache: true @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6 + - uses: ruby/setup-ruby@v1 with: ruby-version: 4.0 bundler-cache: true