class Faker::Company

Public Class Methods

australian_business_number() click to toggle source
# File lib/faker/company.rb, line 87
def australian_business_number
  base = ('%09d' % rand(10 ** 9))
  abn = "00#{base}"

  (99 - (abn_checksum(abn) % 89)).to_s + base
end
bs() click to toggle source

When a straight answer won't do, BS to the rescue!

# File lib/faker/company.rb, line 28
def bs
  translate('faker.company.bs').collect {|list| sample(list) }.join(' ')
end
buzzword() click to toggle source
# File lib/faker/company.rb, line 23
def buzzword
  sample(translate('faker.company.buzzwords').flatten)
end
catch_phrase() click to toggle source

Generate a buzzword-laden catch phrase.

# File lib/faker/company.rb, line 19
def catch_phrase
  translate('faker.company.buzzwords').collect {|list| sample(list) }.join(' ')
end
duns_number() click to toggle source
# File lib/faker/company.rb, line 36
def duns_number
  ('%09d' % rand(10 ** 9)).gsub(/(\d{2})(\d{3})(\d{4})/, '\\1-\\2-\\3')
end
ein() click to toggle source
# File lib/faker/company.rb, line 32
def ein
  ('%09d' % rand(10 ** 9)).gsub(/(\d{2})(\d{7})/, '\\1-\\2')
end
french_siren_number() click to toggle source

Get a random French SIREN number. See more here fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_entreprises

# File lib/faker/company.rb, line 65
def french_siren_number
  base = (1..8).map { rand(10) }.join
  base + luhn_algorithm(base).to_s
end
french_siret_number() click to toggle source
# File lib/faker/company.rb, line 70
def french_siret_number
  location = rand(100).to_s.rjust(4, '0')
  org_no = french_siren_number + location
  org_no + luhn_algorithm(org_no).to_s
end
industry() click to toggle source
# File lib/faker/company.rb, line 14
def industry
  fetch('company.industry')
end
name() click to toggle source
# File lib/faker/company.rb, line 6
def name
  parse('company.name')
end
norwegian_organisation_number() click to toggle source

Get a random Norwegian organization number. Info: www.brreg.no/om-oss/samfunnsoppdraget-vart/registera-vare/einingsregisteret/organisasjonsnummeret/

# File lib/faker/company.rb, line 77
def norwegian_organisation_number
  # Valid leading digit: 8, 9
  mod11_check = nil
  while mod11_check.nil?
    base = [sample([8, 9]), ('%07d' % rand(10 ** 7))].join
    mod11_check = mod11(base)
  end
  base + mod11_check.to_s
end
profession() click to toggle source
# File lib/faker/company.rb, line 94
def profession
  fetch('company.profession')
end
spanish_organisation_number() click to toggle source

Get a random Spanish organization number. See more here es.wikipedia.org/wiki/Número_de_identificación_fiscal

# File lib/faker/company.rb, line 47
def spanish_organisation_number
  # Valid leading character: A, B, C, D, E, F, G, H, J, N, P, Q, R, S, U, V, W
  # 7 digit numbers
  letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'N', 'P', 'Q', 'R', 'S', 'U', 'V', 'W']
  base = [sample(letters), ('%07d' % rand(10 ** 7))].join
  base
end
suffix() click to toggle source
# File lib/faker/company.rb, line 10
def suffix
  fetch('company.suffix')
end
swedish_organisation_number() click to toggle source

Get a random Swedish organization number. See more here sv.wikipedia.org/wiki/Organisationsnummer

# File lib/faker/company.rb, line 56
def swedish_organisation_number
  # Valid leading digit: 1, 2, 3, 5, 6, 7, 8, 9
  # Valid third digit: >= 2
  # Last digit is a control digit
  base = [sample([1, 2, 3, 5, 6, 7, 8, 9]), sample((0..9).to_a), sample((2..9).to_a), ('%06d' % rand(10 ** 6))].join
  base + luhn_algorithm(base).to_s
end

Private Class Methods

abn_checksum(abn) click to toggle source
# File lib/faker/company.rb, line 149
def abn_checksum(abn)
  abn_weights = [10,1,3,5,7,9,11,13,15,17,19]
  sum = 0

  abn_weights.each_with_index do |weight, i|
    sum += weight * abn[i].to_i
  end

  sum
end
luhn_algorithm(number) click to toggle source
# File lib/faker/company.rb, line 121
def luhn_algorithm(number)
  multiplications = []

  number.split(//).each_with_index do |digit, i|
    if i.even?
      multiplications << digit.to_i * 2
    else
      multiplications << digit.to_i
    end
  end

  sum = 0

  multiplications.each do |num|
    num.to_s.each_byte do |character|
      sum += character.chr.to_i
    end
  end

  if sum % 10 == 0
    control_digit = 0
  else
    control_digit = (sum / 10 + 1) * 10 - sum
  end

  control_digit
end
mod11(number) click to toggle source

Mod11 functionality from github.com/badmanski/mod11/blob/master/lib/mod11.rb

# File lib/faker/company.rb, line 101
def mod11(number)
  weight = [2, 3, 4, 5, 6, 7,
            2, 3, 4, 5, 6, 7,
            2, 3, 4, 5, 6, 7]

  sum = 0

  number.to_s.reverse.chars.each_with_index do |char, i|
    sum += char.to_i * weight[i]
  end

  remainder = sum % 11

  case remainder
  when 0 then remainder
  when 1 then nil
  else 11 - remainder
  end
end