class AttrMasker::Maskers::Replacing
Replacing
masker replaces every character of string which is being masked with replacement
one, preserving the length of the masked string (provided that a replacement string contains a single character, which is a typical case). Optionally, non-alphanumeric characters like dashes or spaces may be left unchanged.
@example Would mask “Adam West” as “XXXXXXXXX”
class User < ActiveRecord::Base m = AttrMasker::Maskers::Replacing.new(replacement: "X") attr_masker :name, :masker => m end
@example Would mask “123-456-789” as “XXX-XXX-XXX”
class User < ActiveRecord::Base m = AttrMasker::Maskers::Replacing.new( replacement: "X", alphanum_only: true) attr_masker :phone, :masker => m end
Attributes
alphanum_only[R]
replacement[R]
Public Class Methods
new(replacement: "*", alphanum_only: false)
click to toggle source
@param replacement [String] replacement string @param alphanum_only
[Boolean] whether to leave non-alphanumeric
characters unchanged or not
# File lib/attr_masker/maskers/replacing.rb, line 30 def initialize(replacement: "*", alphanum_only: false) replacement = "" if replacement.nil? @replacement = replacement @alphanum_only = alphanum_only end
Public Instance Methods
call(value:, **_opts)
click to toggle source
# File lib/attr_masker/maskers/replacing.rb, line 36 def call(value:, **_opts) return value unless value.is_a? String if alphanum_only value.gsub(/[[:alnum:]]/, replacement) else replacement * value.size end end