From 6404777ef2a9e306037f8b35be60157e1e9b2df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Busqu=C3=A9?= Date: Tue, 14 Nov 2023 11:19:09 +0100 Subject: [PATCH] Use Zeitwerk for autoloading This commit introduces Zeitwerk [1] as the autoloader for WebPipe. We eager-load in a test example to ensure the setup is correct. [1] - https://github.com/fxn/zeitwerk --- .rubocop.yml | 1 + docs/dsl_free_usage.md | 1 - docs/extensions/container.md | 1 - docs/extensions/dry_schema.md | 1 - docs/extensions/hanami_view.md | 2 -- docs/extensions/not_found.md | 1 - docs/extensions/params.md | 1 - docs/extensions/rails.md | 2 -- docs/extensions/router_params.md | 1 - docs/plugging_operations/inspecting_operations.md | 1 - docs/plugs/config.md | 1 - docs/plugs/content_type.md | 1 - lib/web_pipe.rb | 13 ++++++++++++- lib/web_pipe/app.rb | 4 +--- lib/web_pipe/conn.rb | 2 -- lib/web_pipe/conn_support/builder.rb | 2 -- lib/web_pipe/conn_support/composition.rb | 1 - lib/web_pipe/dsl/builder.rb | 4 ---- lib/web_pipe/dsl/instance_context.rb | 2 -- lib/web_pipe/extensions/container/container.rb | 2 -- lib/web_pipe/extensions/cookies/cookies.rb | 1 - lib/web_pipe/extensions/dry_schema/dry_schema.rb | 2 -- .../extensions/dry_schema/plugs/sanitize_params.rb | 1 - lib/web_pipe/extensions/flash/flash.rb | 1 - lib/web_pipe/extensions/hanami_view/hanami_view.rb | 3 --- lib/web_pipe/extensions/params/params.rb | 1 - lib/web_pipe/extensions/rails/rails.rb | 2 -- lib/web_pipe/extensions/redirect/redirect.rb | 2 -- .../extensions/router_params/router_params.rb | 3 --- lib/web_pipe/extensions/session/session.rb | 2 -- lib/web_pipe/pipe.rb | 9 --------- lib/web_pipe/plug.rb | 2 -- lib/web_pipe/rack_support/app_with_middlewares.rb | 1 - lib/web_pipe/rack_support/middleware.rb | 1 - .../rack_support/middleware_specification.rb | 2 -- lib/web_pipe/test_support.rb | 1 - spec/extensions/dry_schema/dry_schema_spec.rb | 1 - spec/extensions/flash/flash_spec.rb | 1 - spec/extensions/flash/integration/flash_spec.rb | 1 - spec/extensions/hanami_view/hanami_view_spec.rb | 1 - spec/extensions/not_found/not_found_spec.rb | 1 - spec/extensions/params/params_spec.rb | 1 - spec/extensions/rails/rails_spec.rb | 1 - spec/extensions/session/session_spec.rb | 1 - spec/extensions/url/url_spec.rb | 1 - spec/support/conn.rb | 1 - spec/unit/web_pipe/app_spec.rb | 2 -- spec/unit/web_pipe/conn_spec.rb | 1 - spec/unit/web_pipe/conn_support/builder_spec.rb | 2 -- spec/unit/web_pipe/conn_support/composition_spec.rb | 1 - spec/unit/web_pipe/conn_support/headers_spec.rb | 1 - spec/unit/web_pipe/pipe_spec.rb | 4 ---- spec/unit/web_pipe/plug_spec.rb | 1 - spec/unit/web_pipe/plugs/config_spec.rb | 1 - spec/unit/web_pipe/plugs/content_type_spec.rb | 1 - .../web_pipe/rack/middleware_specification_spec.rb | 3 --- spec/unit/web_pipe/test_support_spec.rb | 1 - spec/web_pipe_spec.rb | 8 ++++++-- web_pipe.gemspec | 1 + 59 files changed, 21 insertions(+), 94 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 80d6653..4d16498 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,6 +8,7 @@ AllCops: Metrics/BlockLength: Exclude: - spec/**/* + - web_pipe.gemspec Naming/AccessorMethodName: Enabled: false diff --git a/docs/dsl_free_usage.md b/docs/dsl_free_usage.md index c1425b1..5365caa 100644 --- a/docs/dsl_free_usage.md +++ b/docs/dsl_free_usage.md @@ -46,7 +46,6 @@ is exactly equivalent to: ```ruby # config.ru require 'web_pipe' -require 'web_pipe/pipe' WebPipe.load_extensions(:params) diff --git a/docs/extensions/container.md b/docs/extensions/container.md index e829d65..c0ef955 100644 --- a/docs/extensions/container.md +++ b/docs/extensions/container.md @@ -15,7 +15,6 @@ are using the container configured in a connection instance. ```ruby require 'web_pipe' -require 'web_pipe/plugs/config' require 'my_container' WebPipe.load_extensions(:container) diff --git a/docs/extensions/dry_schema.md b/docs/extensions/dry_schema.md index 131768b..858dc21 100644 --- a/docs/extensions/dry_schema.md +++ b/docs/extensions/dry_schema.md @@ -21,7 +21,6 @@ can be reused through composition by other applications. require 'db' require 'dry/schema' require 'web_pipe' -require 'web_pipe/plugs/config' WebPipe.load_extensions(:dry_schema) diff --git a/docs/extensions/hanami_view.md b/docs/extensions/hanami_view.md index 4fa4818..f394b05 100644 --- a/docs/extensions/hanami_view.md +++ b/docs/extensions/hanami_view.md @@ -43,7 +43,6 @@ However, you can resolve a view from a container if you also use the require 'hanami_view' require 'my_container' require 'web_pipe' -require 'web_pipe/plugs/config' WebPipe.load_extensions(:hanami_view, :container) @@ -80,7 +79,6 @@ the view context class: ```ruby require 'web_pipe' -require 'web_pipe/plugs/config' WebPipe.load_extensions(:url) diff --git a/docs/extensions/not_found.md b/docs/extensions/not_found.md index 851b60e..476beeb 100644 --- a/docs/extensions/not_found.md +++ b/docs/extensions/not_found.md @@ -10,7 +10,6 @@ invocation. The `WebPipe::Conn#not_found` method will: ```ruby require 'web_pipe' -require 'web_pipe/plugs/config' WebPipe.load_extensions(:params, :not_found) diff --git a/docs/extensions/params.md b/docs/extensions/params.md index c2ab9aa..f5b06ce 100644 --- a/docs/extensions/params.md +++ b/docs/extensions/params.md @@ -23,7 +23,6 @@ key: ```ruby require 'web_pipe' -require 'web_pipe/plugs/config' WebPipe.load_extensions(:params) diff --git a/docs/extensions/rails.md b/docs/extensions/rails.md index 9d76361..acdc1f9 100644 --- a/docs/extensions/rails.md +++ b/docs/extensions/rails.md @@ -70,8 +70,6 @@ class ApplicationController < ActionController::Base end # app/controllers/articles_index.rb -require 'web_pipe/plugs/config' - WebPipe.load_extensions(:rails) # You can put it in an initializer class ArticlesIndex diff --git a/docs/extensions/router_params.md b/docs/extensions/router_params.md index 9109c6b..48273ce 100644 --- a/docs/extensions/router_params.md +++ b/docs/extensions/router_params.md @@ -17,7 +17,6 @@ transformation to the stack. ```ruby require 'web_pipe' -require 'web_pipe/plugs/config' WebPipe.load_extensions(:router_params) diff --git a/docs/plugging_operations/inspecting_operations.md b/docs/plugging_operations/inspecting_operations.md index c55ddd5..8647b30 100644 --- a/docs/plugging_operations/inspecting_operations.md +++ b/docs/plugging_operations/inspecting_operations.md @@ -7,7 +7,6 @@ the `#operations` method: ```ruby require 'web_pipe' -require 'web_pipe/conn_support/builder' class MyApp include WebPipe diff --git a/docs/plugs/config.md b/docs/plugs/config.md index bedab52..a57cce5 100644 --- a/docs/plugs/config.md +++ b/docs/plugs/config.md @@ -5,7 +5,6 @@ attribute) to an instance of `WebPipe::Conn`. ```ruby require 'web_pipe' -require 'web_pipe/plugs/config' class MyApp include WebPipe diff --git a/docs/plugs/content_type.md b/docs/plugs/content_type.md index 41bd6f8..0b29578 100644 --- a/docs/plugs/content_type.md +++ b/docs/plugs/content_type.md @@ -7,7 +7,6 @@ Example: ```ruby require 'web_pipe' -require 'web_pipe/plugs/content_type' class MyApp include WebPipe diff --git a/lib/web_pipe.rb b/lib/web_pipe.rb index f05eb16..7269def 100644 --- a/lib/web_pipe.rb +++ b/lib/web_pipe.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require "dry/core/extensions" -require "web_pipe/dsl/builder" +require "zeitwerk" # Entry-point for the DSL layer. # @@ -53,6 +53,17 @@ # } # ) module WebPipe + def self.loader + Zeitwerk::Loader.for_gem.tap do |loader| + loader.ignore( + "#{__dir__}/web_pipe/conn_support/errors.rb", + "#{__dir__}/web_pipe/extensions" + ) + loader.inflector.inflect("dsl" => "DSL") + end + end + loader.setup + extend Dry::Core::Extensions # Called via {Module#include}, makes available web_pipe's DSL. diff --git a/lib/web_pipe/app.rb b/lib/web_pipe/app.rb index 3f36415..2c50f51 100644 --- a/lib/web_pipe/app.rb +++ b/lib/web_pipe/app.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true -require "web_pipe/conn" -require "web_pipe/conn_support/builder" -require "web_pipe/conn_support/composition" +require "dry/monads" module WebPipe # Rack app built from a chain of functions that take and return a diff --git a/lib/web_pipe/conn.rb b/lib/web_pipe/conn.rb index 2207357..086f6b7 100644 --- a/lib/web_pipe/conn.rb +++ b/lib/web_pipe/conn.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true require "dry/struct" -require "web_pipe/conn_support/types" require "web_pipe/conn_support/errors" -require "web_pipe/conn_support/headers" module WebPipe # Struct and methods about web request and response data. diff --git a/lib/web_pipe/conn_support/builder.rb b/lib/web_pipe/conn_support/builder.rb index b1e8105..7f94e2b 100644 --- a/lib/web_pipe/conn_support/builder.rb +++ b/lib/web_pipe/conn_support/builder.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true require "rack" -require "web_pipe/conn" -require "web_pipe/conn_support/headers" module WebPipe module ConnSupport diff --git a/lib/web_pipe/conn_support/composition.rb b/lib/web_pipe/conn_support/composition.rb index c0f138d..d86c83d 100644 --- a/lib/web_pipe/conn_support/composition.rb +++ b/lib/web_pipe/conn_support/composition.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require "dry/monads" -require "web_pipe/conn" module WebPipe module ConnSupport diff --git a/lib/web_pipe/dsl/builder.rb b/lib/web_pipe/dsl/builder.rb index 8e2e49f..7c4c685 100644 --- a/lib/web_pipe/dsl/builder.rb +++ b/lib/web_pipe/dsl/builder.rb @@ -1,9 +1,5 @@ # frozen_string_literal: true -require "web_pipe/dsl/class_context" -require "web_pipe/dsl/instance_context" -require "web_pipe/pipe" - module WebPipe module DSL # @api private diff --git a/lib/web_pipe/dsl/instance_context.rb b/lib/web_pipe/dsl/instance_context.rb index 6dc7d2f..20e01d0 100644 --- a/lib/web_pipe/dsl/instance_context.rb +++ b/lib/web_pipe/dsl/instance_context.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "web_pipe/pipe" - module WebPipe module DSL # @api private diff --git a/lib/web_pipe/extensions/container/container.rb b/lib/web_pipe/extensions/container/container.rb index 4f5d648..0f8cd87 100644 --- a/lib/web_pipe/extensions/container/container.rb +++ b/lib/web_pipe/extensions/container/container.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "web_pipe" - # :nodoc: module WebPipe # See the docs for the extension linked from the README. diff --git a/lib/web_pipe/extensions/cookies/cookies.rb b/lib/web_pipe/extensions/cookies/cookies.rb index 2df622f..ea85bc4 100644 --- a/lib/web_pipe/extensions/cookies/cookies.rb +++ b/lib/web_pipe/extensions/cookies/cookies.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "web_pipe" require "rack/utils" # :nodoc: diff --git a/lib/web_pipe/extensions/dry_schema/dry_schema.rb b/lib/web_pipe/extensions/dry_schema/dry_schema.rb index a59c963..ee07d3a 100644 --- a/lib/web_pipe/extensions/dry_schema/dry_schema.rb +++ b/lib/web_pipe/extensions/dry_schema/dry_schema.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "web_pipe" - WebPipe.load_extensions(:params) # :nodoc: diff --git a/lib/web_pipe/extensions/dry_schema/plugs/sanitize_params.rb b/lib/web_pipe/extensions/dry_schema/plugs/sanitize_params.rb index f9e0902..a2fa42b 100644 --- a/lib/web_pipe/extensions/dry_schema/plugs/sanitize_params.rb +++ b/lib/web_pipe/extensions/dry_schema/plugs/sanitize_params.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "web_pipe/types" require "web_pipe/extensions/dry_schema/dry_schema" module WebPipe diff --git a/lib/web_pipe/extensions/flash/flash.rb b/lib/web_pipe/extensions/flash/flash.rb index c19cab6..bb601a6 100644 --- a/lib/web_pipe/extensions/flash/flash.rb +++ b/lib/web_pipe/extensions/flash/flash.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "web_pipe/conn" require "web_pipe/conn_support/errors" # :nodoc: diff --git a/lib/web_pipe/extensions/hanami_view/hanami_view.rb b/lib/web_pipe/extensions/hanami_view/hanami_view.rb index e3203a3..8913c61 100644 --- a/lib/web_pipe/extensions/hanami_view/hanami_view.rb +++ b/lib/web_pipe/extensions/hanami_view/hanami_view.rb @@ -1,8 +1,5 @@ # frozen_string_literal: true -require "web_pipe/types" -require "web_pipe/conn" -require "web_pipe" require "web_pipe/extensions/hanami_view/hanami_view/context" require "hanami/view" diff --git a/lib/web_pipe/extensions/params/params.rb b/lib/web_pipe/extensions/params/params.rb index 03804c5..a2ba3b4 100644 --- a/lib/web_pipe/extensions/params/params.rb +++ b/lib/web_pipe/extensions/params/params.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "web_pipe/types" require "web_pipe/extensions/params/params/transf" # :nodoc: diff --git a/lib/web_pipe/extensions/rails/rails.rb b/lib/web_pipe/extensions/rails/rails.rb index 391914f..ec00078 100644 --- a/lib/web_pipe/extensions/rails/rails.rb +++ b/lib/web_pipe/extensions/rails/rails.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "web_pipe/conn" - # :nodoc: module WebPipe # See the docs for the extension linked from the README. diff --git a/lib/web_pipe/extensions/redirect/redirect.rb b/lib/web_pipe/extensions/redirect/redirect.rb index a65bfde..0a99177 100644 --- a/lib/web_pipe/extensions/redirect/redirect.rb +++ b/lib/web_pipe/extensions/redirect/redirect.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "web_pipe/types" - # :nodoc: module WebPipe # See the docs for the extension linked from the README. diff --git a/lib/web_pipe/extensions/router_params/router_params.rb b/lib/web_pipe/extensions/router_params/router_params.rb index 7d803e7..d6f4fa0 100644 --- a/lib/web_pipe/extensions/router_params/router_params.rb +++ b/lib/web_pipe/extensions/router_params/router_params.rb @@ -1,8 +1,5 @@ # frozen_string_literal: true -require "web_pipe" -require "web_pipe/types" - WebPipe.load_extensions(:params) module WebPipe diff --git a/lib/web_pipe/extensions/session/session.rb b/lib/web_pipe/extensions/session/session.rb index 3d73153..9db2ef8 100644 --- a/lib/web_pipe/extensions/session/session.rb +++ b/lib/web_pipe/extensions/session/session.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "web_pipe/conn" -require "web_pipe/types" require "rack" # :nodoc: diff --git a/lib/web_pipe/pipe.rb b/lib/web_pipe/pipe.rb index 90b3261..f5a0829 100644 --- a/lib/web_pipe/pipe.rb +++ b/lib/web_pipe/pipe.rb @@ -1,12 +1,5 @@ # frozen_string_literal: true -require "web_pipe/conn_support/composition" -require "web_pipe/app" -require "web_pipe/plug" -require "web_pipe/rack_support/middleware_specification" -require "web_pipe/rack_support/app_with_middlewares" -require "web_pipe/types" - module WebPipe # Composable rack application builder. # @@ -28,8 +21,6 @@ module WebPipe # # @example # # config.ru - # require 'web_pipe/pipe' - # # app = WebPipe::Pipe.new # .use(:runtime, Rack::Runtime) # .plug(:content_type) do |conn| diff --git a/lib/web_pipe/plug.rb b/lib/web_pipe/plug.rb index f87d6df..41577bd 100644 --- a/lib/web_pipe/plug.rb +++ b/lib/web_pipe/plug.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true require "dry/struct" -require "web_pipe/types" -require "web_pipe/conn_support/composition" module WebPipe # @api private diff --git a/lib/web_pipe/rack_support/app_with_middlewares.rb b/lib/web_pipe/rack_support/app_with_middlewares.rb index 32cb3eb..345674f 100644 --- a/lib/web_pipe/rack_support/app_with_middlewares.rb +++ b/lib/web_pipe/rack_support/app_with_middlewares.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "web_pipe/rack_support/middleware" require "rack" module WebPipe diff --git a/lib/web_pipe/rack_support/middleware.rb b/lib/web_pipe/rack_support/middleware.rb index cebabcc..e91ec9e 100644 --- a/lib/web_pipe/rack_support/middleware.rb +++ b/lib/web_pipe/rack_support/middleware.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "web_pipe/types" require "dry/struct" module WebPipe diff --git a/lib/web_pipe/rack_support/middleware_specification.rb b/lib/web_pipe/rack_support/middleware_specification.rb index c376e88..9a2ec1a 100644 --- a/lib/web_pipe/rack_support/middleware_specification.rb +++ b/lib/web_pipe/rack_support/middleware_specification.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true require "dry/struct" -require "web_pipe/rack_support/middleware" -require "web_pipe/types" module WebPipe module RackSupport diff --git a/lib/web_pipe/test_support.rb b/lib/web_pipe/test_support.rb index b156044..e9b29b3 100644 --- a/lib/web_pipe/test_support.rb +++ b/lib/web_pipe/test_support.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "web_pipe/conn_support/builder" require "rack/mock" module WebPipe diff --git a/spec/extensions/dry_schema/dry_schema_spec.rb b/spec/extensions/dry_schema/dry_schema_spec.rb index 707d63c..17bc23b 100644 --- a/spec/extensions/dry_schema/dry_schema_spec.rb +++ b/spec/extensions/dry_schema/dry_schema_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe" RSpec.describe WebPipe::Conn do before { WebPipe.load_extensions(:dry_schema) } diff --git a/spec/extensions/flash/flash_spec.rb b/spec/extensions/flash/flash_spec.rb index f592e97..e869240 100644 --- a/spec/extensions/flash/flash_spec.rb +++ b/spec/extensions/flash/flash_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe/conn" require "web_pipe/conn_support/errors" require "rack-flash" diff --git a/spec/extensions/flash/integration/flash_spec.rb b/spec/extensions/flash/integration/flash_spec.rb index 8be094c..7f94a7d 100644 --- a/spec/extensions/flash/integration/flash_spec.rb +++ b/spec/extensions/flash/integration/flash_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe" require "rack/session/cookie" require "rack-flash" diff --git a/spec/extensions/hanami_view/hanami_view_spec.rb b/spec/extensions/hanami_view/hanami_view_spec.rb index ab4d4d3..6b0bb01 100644 --- a/spec/extensions/hanami_view/hanami_view_spec.rb +++ b/spec/extensions/hanami_view/hanami_view_spec.rb @@ -4,7 +4,6 @@ require "support/conn" require "hanami/view" require "hanami/view/context" -require "web_pipe/conn" RSpec.describe WebPipe::Conn do before do diff --git a/spec/extensions/not_found/not_found_spec.rb b/spec/extensions/not_found/not_found_spec.rb index 4aaa4cc..9c72372 100644 --- a/spec/extensions/not_found/not_found_spec.rb +++ b/spec/extensions/not_found/not_found_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require "spec_helper" -require "web_pipe" require "support/conn" RSpec.describe WebPipe::Conn do diff --git a/spec/extensions/params/params_spec.rb b/spec/extensions/params/params_spec.rb index 946404d..b874ec8 100644 --- a/spec/extensions/params/params_spec.rb +++ b/spec/extensions/params/params_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require "spec_helper" -require "web_pipe" require "support/conn" RSpec.describe WebPipe::Conn do diff --git a/spec/extensions/rails/rails_spec.rb b/spec/extensions/rails/rails_spec.rb index b59d3ae..0bedc7b 100644 --- a/spec/extensions/rails/rails_spec.rb +++ b/spec/extensions/rails/rails_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe/conn" RSpec.describe WebPipe::Conn do before do diff --git a/spec/extensions/session/session_spec.rb b/spec/extensions/session/session_spec.rb index 215d4e0..d0638d3 100644 --- a/spec/extensions/session/session_spec.rb +++ b/spec/extensions/session/session_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe" RSpec.describe WebPipe::Conn do before { WebPipe.load_extensions(:session) } diff --git a/spec/extensions/url/url_spec.rb b/spec/extensions/url/url_spec.rb index 1bbd76f..6d1e5fa 100644 --- a/spec/extensions/url/url_spec.rb +++ b/spec/extensions/url/url_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require "spec_helper" -require "web_pipe" require "support/conn" RSpec.describe WebPipe::Conn do diff --git a/spec/support/conn.rb b/spec/support/conn.rb index 9e2177d..488f60f 100644 --- a/spec/support/conn.rb +++ b/spec/support/conn.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require "rack" -require "web_pipe/conn_support/builder" # Minimal rack's env. # diff --git a/spec/unit/web_pipe/app_spec.rb b/spec/unit/web_pipe/app_spec.rb index 280517a..71175ff 100644 --- a/spec/unit/web_pipe/app_spec.rb +++ b/spec/unit/web_pipe/app_spec.rb @@ -2,8 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe/conn_support/composition" -require "web_pipe/app" RSpec.describe WebPipe::App do describe "#call" do diff --git a/spec/unit/web_pipe/conn_spec.rb b/spec/unit/web_pipe/conn_spec.rb index c00a2c2..be9ec05 100644 --- a/spec/unit/web_pipe/conn_spec.rb +++ b/spec/unit/web_pipe/conn_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "web_pipe/conn" require "web_pipe/conn_support/errors" require "support/conn" require "rack" diff --git a/spec/unit/web_pipe/conn_support/builder_spec.rb b/spec/unit/web_pipe/conn_support/builder_spec.rb index fec4833..f511e32 100644 --- a/spec/unit/web_pipe/conn_support/builder_spec.rb +++ b/spec/unit/web_pipe/conn_support/builder_spec.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true require "spec_helper" -require "web_pipe/conn_support/builder" -require "web_pipe/conn" require "support/conn" RSpec.describe WebPipe::ConnSupport::Builder do diff --git a/spec/unit/web_pipe/conn_support/composition_spec.rb b/spec/unit/web_pipe/conn_support/composition_spec.rb index d6e2921..75a6010 100644 --- a/spec/unit/web_pipe/conn_support/composition_spec.rb +++ b/spec/unit/web_pipe/conn_support/composition_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe/conn_support/composition" RSpec.describe WebPipe::ConnSupport::Composition do let(:conn) { build_conn(default_env) } diff --git a/spec/unit/web_pipe/conn_support/headers_spec.rb b/spec/unit/web_pipe/conn_support/headers_spec.rb index 21d1e0e..60e83a9 100644 --- a/spec/unit/web_pipe/conn_support/headers_spec.rb +++ b/spec/unit/web_pipe/conn_support/headers_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe/conn_support/headers" RSpec.describe WebPipe::ConnSupport::Headers do describe ".extract" do diff --git a/spec/unit/web_pipe/pipe_spec.rb b/spec/unit/web_pipe/pipe_spec.rb index dafae1b..0b88675 100644 --- a/spec/unit/web_pipe/pipe_spec.rb +++ b/spec/unit/web_pipe/pipe_spec.rb @@ -3,10 +3,6 @@ require "spec_helper" require "support/conn" require "support/middlewares" -require "web_pipe/pipe" -require "web_pipe/plugs" -require "web_pipe/rack_support/middleware" -require "web_pipe/rack_support/middleware_specification" RSpec.describe WebPipe::Pipe do describe "#plug" do diff --git a/spec/unit/web_pipe/plug_spec.rb b/spec/unit/web_pipe/plug_spec.rb index ee1d566..8b6671b 100644 --- a/spec/unit/web_pipe/plug_spec.rb +++ b/spec/unit/web_pipe/plug_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require "spec_helper" -require "web_pipe/plug" RSpec.describe WebPipe::Plug do let(:container) do diff --git a/spec/unit/web_pipe/plugs/config_spec.rb b/spec/unit/web_pipe/plugs/config_spec.rb index 326da2b..ae37fd2 100644 --- a/spec/unit/web_pipe/plugs/config_spec.rb +++ b/spec/unit/web_pipe/plugs/config_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe/plugs/config" RSpec.describe WebPipe::Plugs::Config do describe ".call" do diff --git a/spec/unit/web_pipe/plugs/content_type_spec.rb b/spec/unit/web_pipe/plugs/content_type_spec.rb index 66af41b..feb03d0 100644 --- a/spec/unit/web_pipe/plugs/content_type_spec.rb +++ b/spec/unit/web_pipe/plugs/content_type_spec.rb @@ -2,7 +2,6 @@ require "spec_helper" require "support/conn" -require "web_pipe/plugs/content_type" RSpec.describe WebPipe::Plugs::ContentType do describe ".call" do diff --git a/spec/unit/web_pipe/rack/middleware_specification_spec.rb b/spec/unit/web_pipe/rack/middleware_specification_spec.rb index bd8eea0..9670d49 100644 --- a/spec/unit/web_pipe/rack/middleware_specification_spec.rb +++ b/spec/unit/web_pipe/rack/middleware_specification_spec.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true require "spec_helper" -require "web_pipe" -require "web_pipe/rack_support/middleware" -require "web_pipe/rack_support/middleware_specification" require "support/middlewares" RSpec.describe WebPipe::RackSupport::MiddlewareSpecification do diff --git a/spec/unit/web_pipe/test_support_spec.rb b/spec/unit/web_pipe/test_support_spec.rb index 6050749..1722336 100644 --- a/spec/unit/web_pipe/test_support_spec.rb +++ b/spec/unit/web_pipe/test_support_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require "spec_helper" -require "web_pipe/test_support" RSpec.describe WebPipe::TestSupport do let(:klass) do diff --git a/spec/web_pipe_spec.rb b/spec/web_pipe_spec.rb index d883973..93a63dd 100644 --- a/spec/web_pipe_spec.rb +++ b/spec/web_pipe_spec.rb @@ -1,9 +1,13 @@ # frozen_string_literal: true -require "web_pipe/version" - RSpec.describe WebPipe do it "has a version number" do expect(WebPipe::VERSION).not_to be nil end + + it "configures loader" do + expect do + WebPipe.loader.eager_load(force: true) + end.not_to raise_error + end end diff --git a/web_pipe.gemspec b/web_pipe.gemspec index 64166d6..b5a4c03 100644 --- a/web_pipe.gemspec +++ b/web_pipe.gemspec @@ -34,4 +34,5 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "dry-struct", "~> 1.0" spec.add_runtime_dependency "dry-types", "~> 1.1" spec.add_runtime_dependency "rack", "~> 2.0" + spec.add_runtime_dependency "zeitwerk", "~> 2.6" end