summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/contact.rb27
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