Wrap text
Report abuse
class << ActiveRecord::Base
def concerned_with(*concerns)
concerns.each do |concern|
require_dependency "#{name.underscore}/#{concern}"
end
end
end
class User < ActiveRecord::Base
concerned_with :validation, :states, :activation
end
# app/models/user/validation.rb
require 'digest/sha1'
class User
# Virtual attribute for the unencrypted password
attr_accessor :password
validates_presence_of :login, :email
validates_presence_of :password, :if => :password_required?
validates_presence_of :password_confirmation, :if => :password_required?
validates_length_of :password, :within => 4..40, :if => :password_required?
validates_confirmation_of :password, :if => :password_required?
validates_length_of :login, :within => 3..40
validates_length_of :email, :within => 3..100
validates_uniqueness_of :login, :email, :scope => :site_id
before_save :downcase_email_and_login
before_save :encrypt_password
before_create :set_first_user_as_admin
...
end