class Blinkist::AirbrakeScrubber::DeepTraversal
Public Class Methods
new(source)
click to toggle source
# File lib/blinkist-airbrake-scrubber/deep_traversal.rb, line 9 def initialize(source) @source = source end
Public Instance Methods
traverse(&block)
click to toggle source
# File lib/blinkist-airbrake-scrubber/deep_traversal.rb, line 13 def traverse(&block) recursive_traverse(@source, &block) end
Private Instance Methods
recursive_traverse(input, &block)
click to toggle source
# File lib/blinkist-airbrake-scrubber/deep_traversal.rb, line 19 def recursive_traverse(input, &block) case input when Array input.map { |i| recursive_traverse(i, &block) } when Hash Hash[input.map do |key, value| # Go deeper for things that are not simple objects case value when Array, Hash [key, recursive_traverse(value, &block)] else [key, block.call(key, value)] end end] else input end end