From 5de07c194e85fa74e7d7f2be12e99cb9acad3ccc Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sat, 9 Sep 2017 17:37:13 +0200 Subject: Validate postcode properly. Don't accept invalid postcodes, or postcodes containing invalid chars. --- lib/contact.rb | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'lib/contact.rb') diff --git a/lib/contact.rb b/lib/contact.rb index ffa33bf..cb9a6e9 100644 --- a/lib/contact.rb +++ b/lib/contact.rb @@ -16,28 +16,39 @@ class Contact "#{@street}, #{@postcode} #{@city}" end + def valid? + validate! + @errors.length == 0 + end + def validate! - errors = [] + @errors = [] if @name.nil? || @name.strip.empty? - errors << "Du må oppgi en kontaktperson" + @errors << "Du må oppgi en kontaktperson" end - if @postcode.nil? || @postcode.strip.empty? - errors << "Du må oppgi et gyldig postnr." + unless valid_postcode + @errors << "Du må oppgi et gyldig postnr." end if @city.nil? || @city.strip.empty? - errors << "Du må oppgi poststed." + @errors << "Du må oppgi poststed." end if @phone.nil? || @phone.strip.empty? - errors << "Du må oppgi et telefonnummer" + @errors << "Du må oppgi et telefonnummer" end if @email.nil? || @email.strip.empty? - errors << "Du må oppgi en epostadresse" + @errors << "Du må oppgi en epostadresse" end - errors + @errors + end + + private + + def valid_postcode + @postcode && @postcode =~ /^\d{4}$/ end end -- cgit v1.2.3