From fbe348443e1dc8d495a898d4fef0d6e460167214 Mon Sep 17 00:00:00 2001 From: Leszek Zalewski Date: Fri, 18 Dec 2020 13:02:47 +0100 Subject: [PATCH] Refactor targets lookup --- lib/puma/plugin/telemetry.rb | 2 +- lib/puma/plugin/telemetry/config.rb | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/puma/plugin/telemetry.rb b/lib/puma/plugin/telemetry.rb index 4ba23b7..a08a94e 100644 --- a/lib/puma/plugin/telemetry.rb +++ b/lib/puma/plugin/telemetry.rb @@ -4,10 +4,10 @@ require "puma/plugin" require "puma/plugin/telemetry/version" -require "puma/plugin/telemetry/config" require "puma/plugin/telemetry/data" require "puma/plugin/telemetry/targets/datadog_statsd_target" require "puma/plugin/telemetry/targets/io_target" +require "puma/plugin/telemetry/config" module Puma class Plugin diff --git a/lib/puma/plugin/telemetry/config.rb b/lib/puma/plugin/telemetry/config.rb index f3d4971..afc58ea 100644 --- a/lib/puma/plugin/telemetry/config.rb +++ b/lib/puma/plugin/telemetry/config.rb @@ -30,6 +30,11 @@ class Config "queue.capacity" ].freeze + TARGETS = { + dogstatsd: Telemetry::Targets::DatadogStatsdTarget, + io: Telemetry::Targets::IOTarget + }.freeze + # Whenever telemetry should run with puma # - default: false attr_accessor :enabled @@ -68,15 +73,11 @@ def enabled? def add_target(name_or_target, **args) return @targets.push(name_or_target) unless name_or_target.is_a?(Symbol) - target = - case name_or_target - when :dogstatsd then Telemetry::Targets::DatadogStatsdTarget.new(**args) - when :io then Telemetry::Targets::IOTarget.new(**args) - else - raise Telemetry::Error, "Undefined Target: #{name_or_target.inspect}, #{args.inspect}" - end + target = TARGETS.fetch(name_or_target) do + raise Telemetry::Error, "Unknown Target: #{name_or_target.inspect}, #{args.inspect}" + end - @targets.push(target) + @targets.push(target.new(**args)) end end end