class Raven::Processor::RemoveCircularReferences
Constants
- ELISION_STRING
Public Instance Methods
process(value, visited = [])
click to toggle source
# File lib/raven/processor/removecircularreferences.rb, line 4 def process(value, visited = []) return ELISION_STRING if visited.include?(value.__id__) visited << value.__id__ if value.is_a?(Array) || value.is_a?(Hash) case value when Hash !value.frozen? ? value.merge!(value) { |_, v| process v, visited } : value.merge(value) { |_, v| process v, visited } when Array !value.frozen? ? value.map! { |v| process v, visited } : value.map { |v| process v, visited } else value end end