Module: GrapeRailsLogger

Defined in:
lib/grape_rails_logger.rb,
lib/grape_rails_logger/railtie.rb,
lib/grape_rails_logger/timings.rb,
lib/grape_rails_logger/version.rb,
lib/grape_rails_logger/subscriber.rb,
lib/grape_rails_logger/debug_tracer.rb,
lib/grape_rails_logger/endpoint_patch.rb,
lib/grape_rails_logger/endpoint_wrapper.rb,
lib/grape_rails_logger/status_extractor.rb,
sig/grape_rails_logger.rbs

Defined Under Namespace

Modules: EndpointPatch, StatusExtractor, Timings Classes: Config, DebugTracer, EndpointWrapper, GrapeRequestLogSubscriber, Railtie

Constant Summary collapse

EFFECTIVE_CONFIG_ATTR_MISSING =

Distinguish "Rails config did not define this key" from a real nil/false value

Object.new.freeze
VERSION =

Returns:

  • (String)
"1.2.1"

Class Method Summary collapse

Class Method Details

.configConfig

Global configuration instance (for non-Rails usage)

Returns:

  • (Config)

    The configuration object



44
45
46
# File 'lib/grape_rails_logger.rb', line 44

def self.config
  @config ||= Config.new
end

.configure {|config| ... } ⇒ void

This method returns an undefined value.

Configure the logger (for non-Rails usage)

Examples:

GrapeRailsLogger.configure do |config|
  config.enabled = false
end

Yields:

  • (config)

    Yields the configuration object

Yield Parameters:

Yield Returns:

  • (void)


55
56
57
# File 'lib/grape_rails_logger.rb', line 55

def self.configure
  yield config
end

.effective_configConfig

Get the effective configuration (Rails-aware)

Caches the synthesized Config while Rails config values are unchanged (avoids allocating a new Config on every call).

Returns:

  • (Config)

    The active configuration object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/grape_rails_logger.rb', line 65

def self.effective_config
  if defined?(Rails) && Rails.application && Rails.application.config.respond_to?(:grape_rails_logger)
    rails_config = Rails.application.config.grape_rails_logger
    signature = rails_effective_config_signature(rails_config)
    if @rails_effective_config_signature == signature && @rails_effective_config
      @rails_effective_config
    else
      @rails_effective_config_signature = signature
      @rails_effective_config = build_effective_config_from_rails(rails_config)
    end
  else
    # Fall back to module-level config for non-Rails usage
    config
  end
end

.subscriber_instance_for(subscriber_class) ⇒ GrapeRequestLogSubscriber

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Reuse one subscriber instance per class — GrapeRequestLogSubscriber has no per-request ivars.

Parameters:

  • subscriber_class (Class)

Returns:



104
105
106
107
# File 'lib/grape_rails_logger.rb', line 104

def self.subscriber_instance_for(subscriber_class)
  @subscriber_instances ||= {}
  @subscriber_instances[subscriber_class] ||= subscriber_class.new
end