Module: NameMasker

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

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
"0.1.1"

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_email(email) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/name_masker.rb', line 52

def self.mask_email(email)
  return '***' unless email.include?('@')

  index_of_at = email.index('@')

  ['*', email[1], '***', email[index_of_at..index_of_at+1], '***'].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

.mask_phone_number(country_code, gsm) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/name_masker.rb', line 44

def self.mask_phone_number(country_code, gsm)
  ['+', country_code,
   gsm[0],
   (Array.new(gsm.length - 3) { '*' }).join,
   gsm[-2..-1]
  ].join
end