diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 54e23ed2e..f682e52f4 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -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 diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 47724be6c..d52858e67 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -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 diff --git a/config/deploy.rb b/config/deploy.rb index ba6f43b47..d80fdfb3c 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -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' diff --git a/db/migrate/20150422132631_save_legal_docs_to_disk.rb b/db/migrate/20150422132631_save_legal_docs_to_disk.rb index bffce06b7..d0e184163 100644 --- a/db/migrate/20150422132631_save_legal_docs_to_disk.rb +++ b/db/migrate/20150422132631_save_legal_docs_to_disk.rb @@ -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 diff --git a/spec/models/registrar_spec.rb b/spec/models/registrar_spec.rb index 288ff24b6..c38068e5e 100644 --- a/spec/models/registrar_spec.rb +++ b/spec/models/registrar_spec.rb @@ -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