module EncryptedFormFields::Dfs

Public Instance Methods

traverse(value) { |value| ... } click to toggle source
# File lib/encrypted_form_fields/dfs.rb, line 6
def traverse(value, &block)
  if value.respond_to?(:each_pair)
    traverse_hash(value, &block)
  elsif value.is_a?(Array)
    traverse_array(value, &block)
  else
    yield value
  end
end

Private Instance Methods

traverse_array(array, &block) click to toggle source
# File lib/encrypted_form_fields/dfs.rb, line 26
def traverse_array(array, &block)
  array.map do |value|
    traverse(value, &block)
  end
end
traverse_hash(hash, &block) click to toggle source
# File lib/encrypted_form_fields/dfs.rb, line 18
def traverse_hash(hash, &block)
  result = {}.with_indifferent_access
  hash.each_pair do |key, value|
    result[key] = traverse(value, &block)
  end
  result
end