class Atatus::TraceContext::Tracestate::EsEntry

Constants

ASSIGN
LONG_TO_SHORT
SHORT_TO_LONG
SPLIT

Attributes

sample_rate[R]

Public Class Methods

new(values = nil) click to toggle source
# File lib/atatus/trace_context/tracestate.rb, line 45
def initialize(values = nil)
  parse(values)
end

Public Instance Methods

empty?() click to toggle source
# File lib/atatus/trace_context/tracestate.rb, line 61
def empty?
  !sample_rate
end
key() click to toggle source
# File lib/atatus/trace_context/tracestate.rb, line 51
def key
  'es'
end
sample_rate=(val) click to toggle source
# File lib/atatus/trace_context/tracestate.rb, line 65
def sample_rate=(val)
  float = Float(val).round(3)

  return nil unless (0.0..1.0).include?(float)

  @sample_rate = float
rescue ArgumentError => e
  nil
end
to_s() click to toggle source
# File lib/atatus/trace_context/tracestate.rb, line 75
def to_s
  return nil if empty?

  "es=#{value}"
end
value() click to toggle source
# File lib/atatus/trace_context/tracestate.rb, line 55
def value
  LONG_TO_SHORT.map do |l, s|
    "#{s}#{ASSIGN}#{send(l)}"
  end.join(SPLIT)
end

Private Instance Methods

parse(values) click to toggle source
# File lib/atatus/trace_context/tracestate.rb, line 83
def parse(values)
  return unless values

  values.split(SPLIT).map do |kv|
    k, v = kv.split(ASSIGN)
    next unless SHORT_TO_LONG.keys.include?(k)
    send("#{SHORT_TO_LONG[k]}=", v)
  end
end