Sha256: 4514de5ed0c2a88c06a7da9fa1df747a162551416923b96f65ee54c0d1b0f02a

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

# Copyright (c) 2020 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details.
# frozen_string_literal: true

module ActionController
  module Railties
    # Used to monkey patch all the inherited calls in action_pack
    #
    # This is the usual entry point for Rails inheritance work, so it should
    # catch most of the calls to inherited.
    module Helpers
      alias_method :cs__patched_inherited, :inherited
      def inherited klass
        klass&.instance_variable_set(:@cs__defining_class, true)
        cs__patched_inherited(klass)
      ensure
        klass&.instance_variable_set(:@cs__defining_class, false)
      end
    end
  end
end

module ActiveRecord
  module AttributeMethods
    # Used to monkey patch all the inherited calls in action_pack
    module TimeZoneConversion
      module ClassMethods #:nodoc:
        private

        alias_method :cs__patched_inherited, :inherited
        def inherited klass
          klass&.instance_variable_set(:@cs__defining_class, true)
          cs__patched_inherited(klass)
        ensure
          klass&.instance_variable_set(:@cs__defining_class, false)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contrast-agent-3.11.0 lib/contrast/extensions/framework/rails/action_controller_inheritance.rb