class Cased::Sensitive::Processor
Attributes
audit_event[R]
handlers[R]
Public Class Methods
new(audit_event, handlers)
click to toggle source
# File lib/cased/sensitive/processor.rb, line 27 def initialize(audit_event, handlers) @audit_event = audit_event.dup.freeze @ranges = [] @handlers = handlers end
process(audit_event, handlers = nil)
click to toggle source
# File lib/cased/sensitive/processor.rb, line 8 def self.process(audit_event, handlers = nil) handlers ||= Cased::Sensitive::Handler.handlers processor = new(audit_event, handlers) processor.process processor end
process!(audit_event, handlers = nil)
click to toggle source
# File lib/cased/sensitive/processor.rb, line 15 def self.process!(audit_event, handlers = nil) processor = process(audit_event, handlers) return unless processor.sensitive? audit_event[:'.cased'] = { pii: processor.to_h, } end
Public Instance Methods
process()
click to toggle source
# File lib/cased/sensitive/processor.rb, line 33 def process return true if defined?(@processed) walk(audit_event) @processed = true end
ranges()
click to toggle source
# File lib/cased/sensitive/processor.rb, line 40 def ranges @ranges.flatten end
sensitive?()
click to toggle source
# File lib/cased/sensitive/processor.rb, line 44 def sensitive? process && ranges.any? end
to_h()
click to toggle source
# File lib/cased/sensitive/processor.rb, line 48 def to_h results = {} ranges.each do |range| results[range.key] ||= [] results[range.key] << range.to_h end results end
Private Instance Methods
process_handlers(audit_event, path, value)
click to toggle source
# File lib/cased/sensitive/processor.rb, line 70 def process_handlers(audit_event, path, value) handlers.each do |handler| ranges = handler.call(audit_event, path, value) @ranges << ranges unless ranges.nil? || ranges.empty? end end
walk(hash)
click to toggle source
# File lib/cased/sensitive/processor.rb, line 59 def walk(hash) hash.each_with_json_path do |path, value| case value when Cased::Sensitive::String @ranges << value.range(key: path) when ::String process_handlers(audit_event, path, value) end end end