module CopyTunerClient::Rails
def self.controller_of_rails_engine?(controller)
def self.controller_of_rails_engine?(controller) # SEE: https://github.com/rails/rails/blob/539144d2d61770dab66c8643e744441e52538e09/activesupport/lib/active_support/core_ext/module/introspection.rb#L39-L63 engine_namespaces.include?(controller.class.module_parents[-2]) end
def self.engine_namespaces
def self.engine_namespaces @engine_namespaces ||= ::Rails::Engine.subclasses.filter_map { _1.instance.railtie_namespace } end
def self.initialize
Sets up the logger, environment, name, project root, and framework name
def self.initialize CopyTunerClient.configure(false) do |config| config.environment_name = ::Rails.env config.logger = if defined?(::Rails::Console) Logger.new('/dev/null') elsif defined?(::Rails) && ::Rails.env.development? Logger.new('log/copy_tuner.log') else ::Rails.logger end config.framework = "Rails: #{::Rails::VERSION::STRING}" config.middleware = ::Rails.configuration.middleware config.download_cache_dir = ::Rails.root.join('tmp', 'cache', 'copy_tuner_client') end end