Sha256: 348b6ef8a6709095a6bab81dd5a10f659eb1dc02f0403413b63dfc9c9312fdfc
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
# (c) 2017 Ribose Inc. # module AttrMasker module Maskers # +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 class Replacing attr_reader :replacement, :alphanum_only # @param replacement [String] replacement string # @param alphanum_only [Boolean] whether to leave non-alphanumeric # characters unchanged or not def initialize(replacement: "*", alphanum_only: false) replacement = "" if replacement.nil? @replacement = replacement @alphanum_only = alphanum_only end def call(value:, **_opts) return value unless value.is_a? String if alphanum_only value.gsub(/[[:alnum:]]/, replacement) else replacement * value.size end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
attr_masker-0.3.1 | lib/attr_masker/maskers/replacing.rb |