Module: Samwise::Util

Defined in:
lib/samwise/util.rb

Class Method Summary collapse

Class Method Details

.duns_contains_forbidden_characters?(duns: nil) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
36
37
38
# File 'lib/samwise/util.rb', line 32

def self.duns_contains_forbidden_characters?(duns: nil)
  duns.split('').each do |character|
    return false if self.string_is_numeric?(string: character)
  end

  false
end

.duns_is_eight_digits?(duns: nil) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/samwise/util.rb', line 48

def self.duns_is_eight_digits?(duns: nil)
  duns.length == 8
end

.duns_is_nine_digits?(duns: nil) ⇒ Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/samwise/util.rb', line 52

def self.duns_is_nine_digits?(duns: nil)
  duns.length == 9
end

.duns_is_properly_formatted?(duns: nil) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/samwise/util.rb', line 4

def self.duns_is_properly_formatted?(duns: nil)
  return false if duns.nil?

  duns = duns.gsub('-', '')

  return true if duns_contains_forbidden_characters?(duns: duns)

  return true if duns_is_eight_digits?(duns: duns)
  return true if duns_is_nine_digits?(duns: duns)
  return true if duns_is_thirteen_digits?(duns: duns)

  return false
end

.duns_is_thirteen_digits?(duns: nil) ⇒ Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/samwise/util.rb', line 56

def self.duns_is_thirteen_digits?(duns: nil)
  duns.length == 13
end

.format_duns(duns: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/samwise/util.rb', line 18

def self.format_duns(duns: nil)
  raise Samwise::Error::InvalidFormat unless duns_is_properly_formatted?(duns: duns)

  duns = duns.gsub('-', '')

  if duns_is_nine_digits?(duns: duns)
    duns = "#{duns}0000"
  elsif duns_is_eight_digits?(duns: duns)
    duns = "0#{duns}0000"
  end

  duns
end

.string_is_numeric?(string: nil) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
43
44
45
46
# File 'lib/samwise/util.rb', line 40

def self.string_is_numeric?(string: nil)
  string.split('').each do |character|
    return false unless character.to_i.to_s == character
  end

  return true
end