class Cased::Sensitive::Handler
Attributes
handlers[W]
label[R]
Public Class Methods
handlers()
click to toggle source
# File lib/cased/sensitive/handler.rb, line 6 def self.handlers @handlers ||= [] end
new(label, handler)
click to toggle source
# File lib/cased/sensitive/handler.rb, line 20 def initialize(label, handler) @label = label.to_sym @handler = prepare_handler(handler) end
register(label, handler)
click to toggle source
# File lib/cased/sensitive/handler.rb, line 14 def self.register(label, handler) handlers << Handler.new(label, handler) end
Public Instance Methods
call(audit_event, key, value)
click to toggle source
# File lib/cased/sensitive/handler.rb, line 25 def call(audit_event, key, value) @handler.call(audit_event, key.to_sym, value) end
Private Instance Methods
prepare_handler(handler)
click to toggle source
# File lib/cased/sensitive/handler.rb, line 31 def prepare_handler(handler) case handler when Regexp proc do |_audit_event, key, value| string = Cased::Sensitive::String.new(value) string.matches(handler).collect do |match| begin_offset = match.begin(0) end_offset = match.end(0) Cased::Sensitive::Range.new( label: label, key: key, begin_offset: begin_offset, end_offset: end_offset, ) end end else raise ArgumentError, "expected #{handler} to be a Regexp or Proc" end end