Module: NameMasker

Defined in:
lib/name_masker.rb,
lib/name_masker/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.mask(first_name, last_name) ⇒ Object



40
41
42
# File 'lib/name_masker.rb', line 40

def self.mask(first_name, last_name)
  [mask_first_name(first_name), ' ', mask_last_name(last_name)].join
end

.mask_first_name(name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/name_masker.rb', line 6

def self.mask_first_name(name)
  return '*' if name.length < 2

  masked_part = case name.length
                when 2..3
                  '*'
                when 4
                  '**'
                else
                  '***'
                end

  base_string = name.length == 2 ? name[0] : name[0..1]

  [base_string, masked_part].join
end

.mask_last_name(name) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/name_masker.rb', line 23

def self.mask_last_name(name)
  return '*' if name.length < 2

  masked_part = case name.length
                when 2
                  '*'
                when 3..4
                  '**'
                else
                  '***'
                end

  visible_part = name.length <= 3 ? name[-1] : name[-2..-1]

  [masked_part, visible_part].join
end