class Lenjador::Preprocessors::Strategies::Mask

Constants

MASKED_VALUE
MASK_SYMBOL

Public Class Methods

new(trie) click to toggle source
# File lib/lenjador/preprocessors/strategies/mask.rb, line 10
def initialize(trie)
  @trie = trie
end

Public Instance Methods

process(data, pointer = '') click to toggle source
# File lib/lenjador/preprocessors/strategies/mask.rb, line 14
def process(data, pointer = '')
  return MASKED_VALUE unless @trie.include?(pointer)

  case data
  when Hash
    process_hash(data, pointer)

  when Array
    process_array(data, pointer)

  else
    data
  end
end

Private Instance Methods

process_array(data, parent_pointer) click to toggle source
# File lib/lenjador/preprocessors/strategies/mask.rb, line 37
def process_array(data, parent_pointer)
  data.each_with_index.map do |value, index|
    process(value, "#{parent_pointer}/#{index}")
  end
end
process_hash(data, parent_pointer) click to toggle source
# File lib/lenjador/preprocessors/strategies/mask.rb, line 31
def process_hash(data, parent_pointer)
  data.each_with_object({}) do |(key, value), result|
    result[key] = process(value, "#{parent_pointer}/#{key}")
  end
end