Use zeitwerk to load gem

This commit is contained in:
Nicolas Rodriguez 2026-03-02 03:32:41 +01:00
parent 3b2ebd5669
commit df56d571b7
8 changed files with 130 additions and 130 deletions

View file

@ -22,4 +22,5 @@ Gem::Specification.new do |spec|
spec.add_dependency 'grape', '>= 2.4.0'
spec.add_dependency 'rack'
spec.add_dependency 'zeitwerk'
end

View file

@ -1,17 +1,12 @@
require 'grape_logging/multi_io'
require 'grape_logging/version'
require 'grape_logging/formatters/default'
require 'grape_logging/formatters/json'
require 'grape_logging/formatters/lograge'
require 'grape_logging/formatters/logstash'
require 'grape_logging/formatters/rails'
require 'grape_logging/loggers/base'
require 'grape_logging/loggers/response'
require 'grape_logging/loggers/filter_parameters'
require 'grape_logging/loggers/client_env'
require 'grape_logging/loggers/request_headers'
require 'grape_logging/reporters/active_support_reporter'
require 'grape_logging/reporters/logger_reporter'
require 'grape_logging/timings'
require 'grape_logging/middleware/request_logger'
require 'grape_logging/util/parameter_filter'
require 'grape'
require 'rack/utils'
require 'zeitwerk'
# load zeitwerk
Zeitwerk::Loader.for_gem.tap do |loader|
loader.inflector.inflect 'multi_io' => 'MultiIO'
loader.setup
end
module GrapeLogging
end

View file

@ -1,5 +1,3 @@
require 'rack/utils'
module GrapeLogging
module Formatters
class Rails

View file

@ -16,7 +16,7 @@ module GrapeLogging
private
def parameter_filter
@parameter_filter ||= ParameterFilter.new(@replacement, @filter_parameters)
@parameter_filter ||= GrapeLogging::Util::ParameterFilter.new(@replacement, @filter_parameters)
end
def safe_parameters(request)

View file

@ -1,5 +1,3 @@
require 'grape'
module GrapeLogging
module Middleware
class RequestLogger < Grape::Middleware::Base

View file

@ -1,4 +1,5 @@
module Reporters
module GrapeLogging
module Reporters
class ActiveSupportReporter
def initialize(instrumentation_key)
@instrumentation_key = instrumentation_key
@ -8,4 +9,5 @@ module Reporters
ActiveSupport::Notifications.instrument @instrumentation_key, params
end
end
end
end

View file

@ -1,4 +1,5 @@
module Reporters
module GrapeLogging
module Reporters
class LoggerReporter
def initialize(logger, formatter, log_level)
@logger = logger.clone || Logger.new(STDOUT)
@ -10,4 +11,5 @@ module Reporters
@logger.send(@log_level, params)
end
end
end
end

View file

@ -1,4 +1,6 @@
if defined?(Rails.application)
module GrapeLogging
module Util
if defined?(Rails.application)
if Gem::Version.new(Rails.version) < Gem::Version.new('6.0.0')
class ParameterFilter < ActionDispatch::Http::ParameterFilter
def initialize(_replacement, filter_parameters)
@ -14,7 +16,7 @@ if defined?(Rails.application)
end
end
end
else
else
#
# lifted from https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/http/parameter_filter.rb
# we could depend on Rails specifically, but that would us way to hefty!
@ -99,4 +101,6 @@ else
end
end
end
end
end
end