diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/contact.rb | 27 |
1 files changed, 19 insertions, 8 deletions
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 |