lib/airbrake-ruby/remote_settings/callback.rb
module Airbrake class RemoteSettings # Callback is a class that provides a callback for the config poller, which # updates the local config according to the data. # # @api private # @since v5.0.2 class Callback def initialize(config) @config = config @orig_error_notifications = config.error_notifications @orig_performance_stats = config.performance_stats end # @param [Airbrake::RemoteSettings::SettingsData] data # @return [void] def call(data) @config.logger.debug do "#{LOG_LABEL} applying remote settings: #{data.to_h}" end @config.error_host = data.error_host if data.error_host @config.apm_host = data.apm_host if data.apm_host process_error_notifications(data) process_performance_stats(data) end private def process_error_notifications(data) return unless @orig_error_notifications @config.error_notifications = data.error_notifications? end def process_performance_stats(data) return unless @orig_performance_stats @config.performance_stats = data.performance_stats? end end end end