Sha256: 3c5fd800a7cd7a63cffc88a27d972e509831ad4df9b72525e9c4be9ddd05030e
Contents?: true
Size: 1.3 KB
Versions: 3
Compression:
Stored size: 1.3 KB
Contents
# frozen_string_literal: true # This module is used to detect a Rails application and activate the corresponding plugins # when Runger Config is loaded before Rails (e.g., in config/puma.rb). module Runger::Rails class << self attr_reader :tracer, :name_method attr_accessor :disable_postponed_load_warning private def tracepoint_class_callback(event) # Ignore singletons return if event.self.singleton_class? # We wait till `rails/application/configuration.rb` has been loaded, since we rely on it # See https://github.com/palkan/runger_config/issues/134 return unless name_method.bind_call(event.self) == 'Rails::Application::Configuration' tracer.disable unless disable_postponed_load_warning warn("Runger Config was loaded before Rails. Activating Runger Config Rails plugins now.\n" \ 'NOTE: Already loaded configs were provisioned without Rails-specific sources.') end require 'runger/rails' end end # TruffleRuby doesn't support TracePoint's end event unless defined?(::TruffleRuby) @tracer = TracePoint.new(:end, &method(:tracepoint_class_callback)) @tracer.enable # Use `Module#name` instead of `self.name` to handle overwritten `name` method @name_method = Module.instance_method(:name) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
runger_config-5.2.0 | lib/runger/rails/autoload.rb |
runger_config-5.1.0 | lib/runger/rails/autoload.rb |
runger_config-5.0.0 | lib/runger/rails/autoload.rb |