# Copyright (c) 2021 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true require 'contrast/utils/job_servers_running' module Contrast module Framework module Rails # A Railtie to allow for the automatic hooking of the Agent into a Rails application. class Railtie < ::Rails::Railtie include Contrast::Components::Interface access_component :agent, :app_context, :logging initializer 'Contrast Ruby Agent Initializer' do |app| Rails.logger.debug("In railtie ::#{ app.middleware.inspect }") if defined?(Rails) && defined?(Rails.logger) if APP_CONTEXT.instrument_middleware_stack? AGENT.insert_middleware(app) else Rails.logger.debug('Detected a running job server, skipping Contrast middleware insertion.') logger.debug('Disabling Contrast for process', p_id: Process.pid) end end rake_tasks do load 'contrast/tasks/service.rb' load 'contrast/tasks/config.rb' end end end end end