Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
rubyversion: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4']
rubyversion: ['2.7', '3.0', '3.1', '3.2', '3.3', '3.4']
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
Expand Down
8 changes: 6 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# CHANGELOG

## Next Release (minor)
## Next Release

- Adds Ruby 3.4 support
- Fixes error parsing
- Allows for alternative format of `errors` field
- Corrects available properties of an `EasyPostError` and `ApiError` (`code` and `field` removed from `EasyPostError`, `message` unfurled and explicitly added to `ApiError`)
- Removes unused `Error` model
- Corrects the HTTP verb for updating a brand from `GET` to `PATCH`
- Removes the deprecated `create_list` tracker endpoint function as it is no longer available via API
- Removes deprecated `create_list` tracker endpoint function as it is no longer available via API
- Removes deprecated `user.all_api_keys` and `user.api_keys`, use `api_key.all` and `api_key.retrieve_api_keys_for_user` respectively
- Removes unmaintained and undocumented `irb`
- Removes unused `Rakefile`
- Bumps all dev dependencies

## v6.4.1 (2024-08-09)

Expand Down
3 changes: 1 addition & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ clean:
rm -rf coverage doc *.gem dist

## coverage - Generate a test coverage report
coverage:
make test
coverage: test

## docs - Generate documentation for the library
docs:
Expand Down
3 changes: 0 additions & 3 deletions Rakefile

This file was deleted.

9 changes: 0 additions & 9 deletions bin/easypost-irb

This file was deleted.

23 changes: 10 additions & 13 deletions easypost.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,23 @@ Gem::Specification.new do |spec|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
f.match(%r{^(docs|examples|spec)/})
end
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.require_paths = ['lib']
spec.required_ruby_version = '>= 2.6'
spec.required_ruby_version = '>= 2.7'

spec.add_development_dependency 'abbrev', '~> 0.1'
spec.add_development_dependency 'benchmark', '~> 0.4'
spec.add_development_dependency 'bigdecimal', '~> 3'
spec.add_development_dependency 'brakeman', '~> 5.4'
spec.add_development_dependency 'faraday', '~> 2.7.5' # used for integration tests
spec.add_development_dependency 'brakeman', '~> 5.4' # can't upgrade to 6.x, requires Ruby 3.0
spec.add_development_dependency 'faraday', '~> 2.8' # can't upgrade to 2.9, requires Ruby 3.0
spec.add_development_dependency 'logger', '~> 1'
spec.add_development_dependency 'ostruct', '~> 0.6'
spec.add_development_dependency 'pry', '~> 0.14'
spec.add_development_dependency 'rake', '~> 13.0'
spec.add_development_dependency 'rdoc', '~> 6.9'
spec.add_development_dependency 'rspec', '~> 3.12'
spec.add_development_dependency 'rubocop', '~> 1.49'
spec.add_development_dependency 'rubocop-rspec', '2.19' # pin to 2.19 because latest version doesn't support Ruby 2.6
spec.add_development_dependency 'rdoc', '~> 6.12'
spec.add_development_dependency 'rspec', '~> 3.13'
spec.add_development_dependency 'rubocop', '= 1.73'
spec.add_development_dependency 'rubocop-rspec', '2.31' # can't upgrade to 3.0, requires easycop config changes
spec.add_development_dependency 'simplecov', '~> 0.22'
spec.add_development_dependency 'simplecov-lcov', '~> 0.8'
spec.add_development_dependency 'typhoeus', '~> 1.4.0' # used for integration tests
spec.add_development_dependency 'vcr', '~> 6.1'
spec.add_development_dependency 'webmock', '~> 3.18'
spec.add_development_dependency 'typhoeus', '~> 1.4'
spec.add_development_dependency 'vcr', '~> 6.3'
spec.add_development_dependency 'webmock', '~> 3.25'
end
2 changes: 1 addition & 1 deletion examples
4 changes: 2 additions & 2 deletions lib/easypost/services/report.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class EasyPost::Services::Report < EasyPost::Services::Service
# Create a Report
def create(params = {})
unless params[:type]
raise ArgumentError, "Missing 'type' parameter in params" # TODO: replace the error in the error-handling overhaul PR
raise EasyPost::Errors::MISSING_REQUIRED_PARAMETER.new('type')
end

type = params.delete(:type)
Expand All @@ -26,7 +26,7 @@ def retrieve(id)
# Retrieve all Report objects
def all(params = {})
unless params[:type]
raise ArgumentError, "Missing 'type' parameter in params" # TODO: replace the error in the error-handling overhaul PR
raise EasyPost::Errors::MISSING_REQUIRED_PARAMETER.new('type')
end

type = params.delete(:type)
Expand Down
32 changes: 0 additions & 32 deletions lib/easypost/services/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,38 +39,6 @@ def delete(id)
true
end

# Retrieve a list of all ApiKey objects.
def all_api_keys
warn '[DEPRECATION] `all_api_keys` is deprecated. Please use `all` in the `api_key` service instead.'
response = @client.make_request(:get, 'api_keys')

EasyPost::InternalUtilities::Json.convert_json_to_object(response, EasyPost::Models::ApiKey)
end

# Retrieve a list of ApiKey objects (works for the authenticated user or a child user).
def api_keys(id)
warn '[DEPRECATION] `api_keys` is deprecated.
Please use `retrieve_api_keys_for_user` in the `api_key` service instead.'

api_keys = all_api_keys

if api_keys.id == id
# This function was called on the authenticated user
my_api_keys = api_keys.keys
else
# This function was called on a child user (authenticated as parent, only return this child user's details).
my_api_keys = []
api_keys.children.each do |child|
if child.id == id
my_api_keys = child.keys
break
end
end
end

my_api_keys
end

# Update the Brand of a User.
def update_brand(id, params = {})
wrapped_params = { brand: params }
Expand Down
3 changes: 1 addition & 2 deletions spec/address_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@

# Delivery verification assertions
expect(address.verifications.delivery.success).to be false
# TODO: details is not deserializing correctly, related to the larger "double EasyPostObject" wrapping issue
# expect(address.verifications.delivery.details).to be_empty
expect(address.verifications.delivery.details.to_hash).to be_empty
expect(address.verifications.delivery.errors[0].code).to eq('E.ADDRESS.NOT_FOUND')
expect(address.verifications.delivery.errors[0].field).to eq('address')
expect(address.verifications.delivery.errors[0].suggestion).to be nil
Expand Down