Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
ruby-version: 4.0
bundler-cache: true
- run: bundle install
- run: bundle exec rspec
rubocop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
ruby-version: 4.0
bundler-cache: true
- run: bundle install
- run: bundle exec rubocop
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.7.4
4.0.1
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Changelog

## [1.0.0] - 2026-02-11
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's have a "breaking changes" section, which should include:

  • we now require faraday 2.x
  • dropped support for ruby < 4.0 (or < 3.0, depending on our intent)


### 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
17 changes: 3 additions & 14 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -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
45 changes: 2 additions & 43 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.3.1
1.0.0
15 changes: 7 additions & 8 deletions lib/tijuana_client/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
12 changes: 11 additions & 1 deletion lib/tijuana_client/error_middleware.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
97 changes: 32 additions & 65 deletions tijuana_client.gemspec
Original file line number Diff line number Diff line change
@@ -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<vertebrae>.freeze, [">= 0.6.0"])
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
s.add_development_dependency(%q<pry>.freeze, [">= 0"])
s.add_development_dependency(%q<pry-byebug>.freeze, [">= 0"])
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
s.add_development_dependency(%q<webmock>.freeze, [">= 0"])
else
s.add_dependency(%q<vertebrae>.freeze, [">= 0.6.0"])
s.add_dependency(%q<bundler>.freeze, [">= 0"])
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
s.add_dependency(%q<pry>.freeze, [">= 0"])
s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
s.add_dependency(%q<rspec>.freeze, [">= 0"])
s.add_dependency(%q<rubocop>.freeze, [">= 0"])
s.add_dependency(%q<webmock>.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'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we in fact supporting all rubies 3.0 and up? Let's either cap this at "3.x or 4.x (not 5+)" and add supported versions to our CI, or declare ~> 4.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