File tree Expand file tree Collapse file tree
sdk/lib/opentelemetry/sdk Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -28,21 +28,31 @@ def valid_simple_value?(value)
2828 value . instance_of? ( String ) || boolean? ( value ) || numeric? ( value ) || value . nil?
2929 end
3030
31- def valid_array_value? ( value )
32- return false unless value . is_a? ( Array )
31+ def valid_value? ( value )
32+ to_check = [ value ]
33+ seen = Set . new
34+ until to_check . empty?
35+ current = to_check . pop
36+ next if valid_simple_value? ( current )
3337
34- value . all? { |v | valid_value? ( v ) }
35- end
38+ return false if seen . include? ( current . object_id )
3639
37- def valid_mapping_value? ( value )
38- return false unless value . is_a? ( Hash )
39- return false unless value . keys . all? { |k | valid_key? ( k ) }
40+ seen << current . object_id
4041
41- value . values . all? { |v | valid_value? ( v ) }
42- end
42+ case current
43+ when Array
44+ current . each { |v | to_check << v }
45+ when Hash
46+ current . each do |k , v |
47+ return false unless valid_key? ( k )
4348
44- def valid_value? ( value )
45- valid_simple_value? ( value ) || valid_array_value? ( value ) || valid_mapping_value? ( value )
49+ to_check << v
50+ end
51+ else
52+ return false
53+ end
54+ end
55+ true
4656 end
4757
4858 def valid_attributes? ( owner , kind , attrs )
You can’t perform that action at this time.
0 commit comments