module Metrics::Backend::Test::Interface
def metric(name, type, description: nil, unit: nil, &block)
def metric(name, type, description: nil, unit: nil, &block) unless name.is_a?(String) raise ArgumentError, "Invalid name (must be String): #{name.inspect}!" end unless name =~ VALID_METRIC_NAME raise ArgumentError, "Invalid name (must match #{VALID_METRIC_NAME}): #{name.inspect}!" end unless type.is_a?(Symbol) raise ArgumentError, "Invalid type (must be Symbol): #{type.inspect}!" end # Description is optional but must be string if given: if description unless description.is_a?(String) raise ArgumentError, "Invalid description (must be String): #{description.inspect}!" end end # Unit is optional but must be string if given: if unit unless unit.is_a?(String) raise ArgumentError, "Invalid unit (must be String): #{unit.inspect}!" end end return Metric.new(name, type, description, unit) end