diff --git a/freight_kit.gemspec b/freight_kit.gemspec index 5257c24..f9d9b03 100644 --- a/freight_kit.gemspec +++ b/freight_kit.gemspec @@ -31,10 +31,9 @@ Gem::Specification.new do |spec| spec.add_development_dependency('business_time', '~> 0.13.0') spec.add_development_dependency('faker', '~> 3.2.1') spec.add_development_dependency('rake', '~> 13.1.0') + spec.add_development_dependency('redcarpet', '~> 3.6.0') # for yard spec.add_development_dependency('rspec', '~> 3.12') spec.add_development_dependency('rubocop-next', '~> 1.0.3') - - spec.add_development_dependency('redcarpet', '~> 3.6.0') # for yard spec.add_development_dependency('yard', '~> 0.9.28') spec.add_dependency('activemodel', '>= 4.2', '< 7.1.4') @@ -48,6 +47,7 @@ Gem::Specification.new do |spec| spec.add_dependency('savon', '>= 2.0', '< 2.15') spec.add_dependency('tzinfo-data', '~> 1.2023', '>= 1.2023.3') spec.add_dependency('watir', '>= 7.0', '< 7.2') + spec.add_dependency('zeitwerk', '>= 2.6.0', '< 2.6.12') spec.required_ruby_version = '>= 3.2.0' end diff --git a/lib/freight_kit.rb b/lib/freight_kit.rb index 795b983..5a11127 100644 --- a/lib/freight_kit.rb +++ b/lib/freight_kit.rb @@ -3,10 +3,7 @@ require 'active_model' require 'active_support/all' require 'active_utils' - require 'cgi' -require 'yaml' - require 'httparty' require 'measured' require 'mimemagic' @@ -15,20 +12,28 @@ require 'place_kit' require 'savon' require 'watir' +require 'yaml' +require 'zeitwerk' + +module FreightKit + VERSION = File.read(File.expand_path('../VERSION', __dir__)).strip.freeze + + class Inflector < Zeitwerk::Inflector + def camelize(basename, abspath) + if basename =~ /\Ahttp_(.*)/ + return "HTTP#{super(::Regexp.last_match(1), abspath)}" + end + + super + end + end +end + +loader = Zeitwerk::Loader.for_gem + +loader.collapse("#{__dir__}/freight_kit/errors") +loader.collapse("#{__dir__}/freight_kit/models") + +loader.inflector = FreightKit::Inflector.new -require 'freight_kit/error' -require 'freight_kit/errors' - -require 'freight_kit/model' -require 'freight_kit/models' - -require 'freight_kit/carrier' -require 'freight_kit/carriers' -require 'freight_kit/contact' -require 'freight_kit/package_item' -require 'freight_kit/package' -require 'freight_kit/packaging' -require 'freight_kit/platform' -require 'freight_kit/shipment_packer' -require 'freight_kit/tariff' -require 'freight_kit/version' +loader.setup diff --git a/lib/freight_kit/errors.rb b/lib/freight_kit/errors.rb deleted file mode 100644 index 12c782f..0000000 --- a/lib/freight_kit/errors.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -require 'freight_kit/errors/http_error' -require 'freight_kit/errors/invalid_credentials_error' -require 'freight_kit/errors/expired_credentials_error' -require 'freight_kit/errors/document_not_found_error' -require 'freight_kit/errors/shipment_not_found_error' -require 'freight_kit/errors/response_error' -require 'freight_kit/errors/unserviceable_error' -require 'freight_kit/errors/unserviceable_accessorials_error' diff --git a/lib/freight_kit/errors/document_not_found_error.rb b/lib/freight_kit/errors/document_not_found_error.rb index b0e8d51..9612f33 100644 --- a/lib/freight_kit/errors/document_not_found_error.rb +++ b/lib/freight_kit/errors/document_not_found_error.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module FreightKit - class DocumentNotFoundError < FreightKit::Error; end + class DocumentNotFoundError < Error; end end diff --git a/lib/freight_kit/errors/expired_credentials_error.rb b/lib/freight_kit/errors/expired_credentials_error.rb index 35da6a6..80f6644 100644 --- a/lib/freight_kit/errors/expired_credentials_error.rb +++ b/lib/freight_kit/errors/expired_credentials_error.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module FreightKit - class ExpiredCredentialsError < FreightKit::InvalidCredentialsError; end + class ExpiredCredentialsError < InvalidCredentialsError; end end diff --git a/lib/freight_kit/errors/http_error.rb b/lib/freight_kit/errors/http_error.rb index a6531e6..5ce8eed 100644 --- a/lib/freight_kit/errors/http_error.rb +++ b/lib/freight_kit/errors/http_error.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module FreightKit - class HTTPError < FreightKit::Error + class HTTPError < Error attr_reader :body, :code def initialize(body:, code:) diff --git a/lib/freight_kit/errors/invalid_credentials_error.rb b/lib/freight_kit/errors/invalid_credentials_error.rb index 0b2debb..be96aa9 100644 --- a/lib/freight_kit/errors/invalid_credentials_error.rb +++ b/lib/freight_kit/errors/invalid_credentials_error.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module FreightKit - class InvalidCredentialsError < FreightKit::Error; end + class InvalidCredentialsError < Error; end end diff --git a/lib/freight_kit/errors/response_error.rb b/lib/freight_kit/errors/response_error.rb index cd4f2ba..df79f6f 100644 --- a/lib/freight_kit/errors/response_error.rb +++ b/lib/freight_kit/errors/response_error.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module FreightKit - class ResponseError < FreightKit::Error + class ResponseError < Error attr_reader :response def initialize(response = nil) diff --git a/lib/freight_kit/errors/shipment_not_found_error.rb b/lib/freight_kit/errors/shipment_not_found_error.rb index effbf0f..e12dd67 100644 --- a/lib/freight_kit/errors/shipment_not_found_error.rb +++ b/lib/freight_kit/errors/shipment_not_found_error.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module FreightKit - class ShipmentNotFoundError < FreightKit::Error; end + class ShipmentNotFoundError < Error; end end diff --git a/lib/freight_kit/errors/unserviceable_accessorials_error.rb b/lib/freight_kit/errors/unserviceable_accessorials_error.rb index 66a64cd..1f5ba70 100644 --- a/lib/freight_kit/errors/unserviceable_accessorials_error.rb +++ b/lib/freight_kit/errors/unserviceable_accessorials_error.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module FreightKit - class UnserviceableAccessorialsError < FreightKit::UnserviceableError + class UnserviceableAccessorialsError < UnserviceableError attr_reader :accessorials def initialize(accessorials:) @@ -11,7 +11,9 @@ def initialize(accessorials:) end def message - @message ||= "Unable to service #{@accessorials.map { |accessorial| accessorial.to_s.gsub("_", " ") }.join(", ")}" + @message ||= "Unable to service #{@accessorials.map do |accessorial| + accessorial.to_s.gsub("_", " ") + end.join(", ")}" end end end diff --git a/lib/freight_kit/errors/unserviceable_error.rb b/lib/freight_kit/errors/unserviceable_error.rb index 8758d58..ba77121 100644 --- a/lib/freight_kit/errors/unserviceable_error.rb +++ b/lib/freight_kit/errors/unserviceable_error.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module FreightKit - class UnserviceableError < FreightKit::Error; end + class UnserviceableError < Error; end end diff --git a/lib/freight_kit/models.rb b/lib/freight_kit/models.rb deleted file mode 100644 index 29f60f3..0000000 --- a/lib/freight_kit/models.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -require 'freight_kit/models/credential' -require 'freight_kit/models/label' -require 'freight_kit/models/price' -require 'freight_kit/models/rate' -require 'freight_kit/models/shipment' - -require 'freight_kit/models/date_time' -require 'freight_kit/models/location' - -require 'freight_kit/models/response' -require 'freight_kit/models/document_response' -require 'freight_kit/models/pickup_response' -require 'freight_kit/models/rate_response' -require 'freight_kit/models/shipment_event' -require 'freight_kit/models/tracking_response' diff --git a/lib/freight_kit/contact.rb b/lib/freight_kit/models/contact.rb similarity index 100% rename from lib/freight_kit/contact.rb rename to lib/freight_kit/models/contact.rb diff --git a/lib/freight_kit/version.rb b/lib/freight_kit/version.rb deleted file mode 100644 index e1d42b7..0000000 --- a/lib/freight_kit/version.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -module FreightKit - VERSION = File.read(File.expand_path('../../VERSION', __dir__)).strip.freeze -end