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