Module: FFaker::CompanyIT
Constant Summary collapse
- PREFIXES =
['Studio Legale', 'Studio Tecnico', 'Laboratorio'].freeze
- SUFFIXES =
%w[S.p.a. s.r.l. s.n.c. Avvocati Architetti Ingegneri].freeze
Instance Method Summary collapse
- #name ⇒ Object
-
#partita_iva ⇒ Object
Calculated using the algorithm at it.wikipedia.org/wiki/Partita_IVA to return a valid Partita IVA (Italian VAT number).
- #prefix ⇒ Object
- #suffix ⇒ Object
Methods included from ModuleUtils
const_missing, k, luhn_check, underscore, unique
Methods included from RandomUtils
#fetch_sample, #rand, #shuffle
Instance Method Details
#name ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/ffaker/company_it.rb', line 11 def name case rand(0..2) when 0 then "#{NameIT.last_name} #{suffix}" when 1 then "#{NameIT.last_name} e #{NameIT.last_name} #{suffix}" when 2 then "#{prefix} #{NameIT.last_name}" end end |
#partita_iva ⇒ Object
Calculated using the algorithm at it.wikipedia.org/wiki/Partita_IVA to return a valid Partita IVA (Italian VAT number)
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/ffaker/company_it.rb', line 30 def partita_iva matricola = Array.new(7) { rand(0..9) } office_code = fetch_sample(PIVA_OFFICE_CODES) base = matricola + office_code.chars.map(&:to_i) # Thanks https://stackoverflow.com/a/9189731/1627766 sum = base.reverse.each_slice(2).flat_map do |x, y = 0| [(x * 2).divmod(10), y] end.flatten.sum control_digit = (10 - (sum % 10)) % 10 (base << control_digit).join end |
#prefix ⇒ Object
23 24 25 |
# File 'lib/ffaker/company_it.rb', line 23 def prefix fetch_sample(PREFIXES) end |
#suffix ⇒ Object
19 20 21 |
# File 'lib/ffaker/company_it.rb', line 19 def suffix fetch_sample(SUFFIXES) end |