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,29 @@ 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 )
33-
34- value . all? { |v | valid_value? ( v ) }
35- end
36-
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 ) }
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 )
4037
41- value . values . all? { | v | valid_value? ( v ) }
42- end
38+ return false if seen . include? ( current . object_id )
39+ seen << current . object_id
4340
44- def valid_value? ( value )
45- valid_simple_value? ( value ) || valid_array_value? ( value ) || valid_mapping_value? ( value )
41+ case current
42+ when Array
43+ current . each { |v | to_check << v }
44+ when Hash
45+ current . each do |k , v |
46+ return false unless valid_key? ( k )
47+ to_check << v
48+ end
49+ else
50+ return false
51+ end
52+ end
53+ true
4654 end
4755
4856 def valid_attributes? ( owner , kind , attrs )
You can’t perform that action at this time.
0 commit comments