# frozen_string_literal: true require_relative "./operator" module Aspecto # Aspecto OpenTelemetry Distro module OpenTelemetry module Sampler # Aspecto's sampling rule condition class Condition def initialize(condition_config) @operator = Operator.new condition_config["comparison"], condition_config["value"] @from = condition_config["from"]&.to_sym @key = condition_config["key"] end def satisfies?(attributes, span_name) case @from when :attribute @operator.satisfies? attributes&.[](@key)&.to_s when :operation @operator.satisfies? span_name else # Other "from" are not implemented for now false end end end end end end