From 25f34cdab96171204d571d60b40f54322c9d30cf Mon Sep 17 00:00:00 2001 From: rgarcia Date: Wed, 28 Dec 2016 19:42:02 +0100 Subject: [PATCH 1/2] Only stores alphanumeric characters of a signature's document number --- app/models/signature.rb | 7 +++++++ spec/models/signature_spec.rb | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/app/models/signature.rb b/app/models/signature.rb index 47408858a..06ade968c 100644 --- a/app/models/signature.rb +++ b/app/models/signature.rb @@ -10,6 +10,8 @@ class Signature < ActiveRecord::Base delegate :signable, to: :signature_sheet + before_validation :clean_document_number + def verified? user_exists? || in_census? end @@ -58,6 +60,11 @@ class Signature < ActiveRecord::Base User.create!(user_params) end + def clean_document_number + return if self.document_number.blank? + self.document_number = self.document_number.gsub(/[^a-z0-9]+/i, "").upcase + end + def random_password (0...20).map { ('a'..'z').to_a[rand(26)] }.join end diff --git a/spec/models/signature_spec.rb b/spec/models/signature_spec.rb index 6f7237484..8bb090614 100644 --- a/spec/models/signature_spec.rb +++ b/spec/models/signature_spec.rb @@ -13,6 +13,12 @@ describe Signature do it "should not be valid without a document number" do signature.document_number = nil expect(signature).to_not be_valid + + signature.document_number = "" + expect(signature).to_not be_valid + + signature.document_number = " " + expect(signature).to_not be_valid end it "should not be valid without an associated signature sheet" do @@ -22,6 +28,24 @@ describe Signature do end + describe "#clean_document_number" do + it "removes non alphanumeric characters" do + signature = create(:signature, document_number: "123-[;,9]") + expect(signature.document_number).to eq("1239") + end + + it "upcases letter in document number" do + signature = create(:signature, document_number: "123a") + expect(signature.document_number).to eq("123A") + end + + it "deals gracefully with empty document numbers" do + signature = build(:signature, document_number: "") + signature.clean_document_number + expect(signature.document_number).to eq("") + end + end + describe "#verified?" do it "returns true if user exists" do From d0b0782c46b3a4e01aac2d566bdb07a7f0c1c323 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Wed, 28 Dec 2016 21:23:38 +0100 Subject: [PATCH 2/2] sets only one server to run delayed jobs --- config/deploy.rb | 1 + config/deploy/preproduction.rb | 2 +- config/deploy/production.rb | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config/deploy.rb b/config/deploy.rb index 30b08c56d..52fa7a255 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -30,6 +30,7 @@ set :keep_releases, 5 set :local_user, ENV['USER'] set :delayed_job_workers, 2 +set :delayed_job_roles, :background set(:config_files, %w( log_rotation diff --git a/config/deploy/preproduction.rb b/config/deploy/preproduction.rb index 16d1c5bb7..74c96871e 100644 --- a/config/deploy/preproduction.rb +++ b/config/deploy/preproduction.rb @@ -6,5 +6,5 @@ set :ssh_options, port: deploysecret(:ssh_port) set :stage, :preproduction set :rails_env, :preproduction -server deploysecret(:server1), user: deploysecret(:user), roles: %w(web app db importer cron) +server deploysecret(:server1), user: deploysecret(:user), roles: %w(web app db importer cron background) server deploysecret(:server2), user: deploysecret(:user), roles: %w(web app db importer) diff --git a/config/deploy/production.rb b/config/deploy/production.rb index 5e002af1a..90eb501c2 100644 --- a/config/deploy/production.rb +++ b/config/deploy/production.rb @@ -7,6 +7,6 @@ set :stage, :production set :rails_env, :production #server deploysecret(:server1), user: deploysecret(:user), roles: %w(web app db importer) -server deploysecret(:server2), user: deploysecret(:user), roles: %w(web app db importer cron) +server deploysecret(:server2), user: deploysecret(:user), roles: %w(web app db importer cron background) server deploysecret(:server3), user: deploysecret(:user), roles: %w(web app db importer) server deploysecret(:server4), user: deploysecret(:user), roles: %w(web app db importer)