From 938be908267d4377935729484682eaf6342d17e9 Mon Sep 17 00:00:00 2001 From: elijah Date: Fri, 10 Jul 2015 17:11:44 -0700 Subject: initial commit. --- lib/reserve_usernames/validate.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lib/reserve_usernames/validate.rb (limited to 'lib/reserve_usernames/validate.rb') diff --git a/lib/reserve_usernames/validate.rb b/lib/reserve_usernames/validate.rb new file mode 100644 index 0000000..669c2fb --- /dev/null +++ b/lib/reserve_usernames/validate.rb @@ -0,0 +1,27 @@ +module ReserveUsernames::Validate + def self.included(base) + base.class_eval do + + validate :check_if_address_is_taken + + protected + + # + # Only query ReservedUsername if this is a new record. + # Otherwise, validation will always fail because the address + # has been taken... by this identity. + # + def check_if_address_is_taken + if new_record? && address + username = address.split('@').first + if ReservedUsername.find(username) + Rails.logger.info("ReserveUsernames - #{username} is taken.") + errors.add :address, :taken + end + end + rescue ActiveResource::ResourceNotFound + end + + end + end +end -- cgit v1.2.3