Ensure generated numbers are always numbers

This commit is contained in:
Martin Lensment 2015-04-23 11:22:06 +03:00
parent 12e32af524
commit f838a6506c
5 changed files with 14 additions and 2 deletions

View file

@ -10,6 +10,7 @@ class LegalDocument < ActiveRecord::Base
def save_to_filesystem
loop do
rand = SecureRandom.random_number.to_s.last(4)
next if rand.to_i == 0 || rand.length < 4
self.path = "#{ENV['legal_documents_dir']}/#{Time.zone.now.to_formatted_s(:number)}_#{rand}.#{document_type}"
break unless File.file?(path)
end

View file

@ -22,7 +22,7 @@ class Registrar < ActiveRecord::Base
base = nil
loop do
base = SecureRandom.random_number.to_s.last(8)
break if base.length == 8
break if base.to_i != 0 && base.length == 8
end
control_base = (base + '2715' + '00').to_i

View file

@ -98,7 +98,8 @@ set :shared_paths, [
'log',
'public/system',
'export/zonefiles',
'import/bank_statements'
'import/bank_statements',
'import/legal_documents'
]
# Optional settings:
@ -137,6 +138,9 @@ task setup: :environment do
queue! %(mkdir -p "#{deploy_to}/shared/import/bank_statements")
queue! %(chmod g+rx,u+rwx "#{deploy_to}/shared/import/bank_statements")
queue! %(mkdir -p "#{deploy_to}/shared/import/legal_documents")
queue! %(chmod g+rx,u+rwx "#{deploy_to}/shared/import/legal_documents")
queue! %(touch "#{deploy_to}/shared/config/database.yml")
deploy do
invoke :'git:clone'

View file

@ -5,6 +5,7 @@ class SaveLegalDocsToDisk < ActiveRecord::Migration
path = nil
loop do
rand = SecureRandom.random_number.to_s.last(4)
next if rand.to_i == 0 || rand.length < 4
path = "#{ENV['legal_documents_dir']}/#{Time.zone.now.to_formatted_s(:number)}_#{rand}.#{x.document_type}"
break unless File.file?(path)
end

View file

@ -32,6 +32,12 @@ describe Registrar do
it 'should not have valid code' do
@registrar.code.should == nil
end
it 'should generate reference number' do
@registrar.generate_iso_11649_reference_no
@registrar.reference_no.should_not be_blank
@registrar.reference_no.last(10).to_i.should_not == 0
end
end
context 'with valid attributes' do