module ActsAs::Human::ClassMethods

Public Instance Methods

acts_as_human(options={}) click to toggle source
# File lib/acts_as_human/class_methods.rb, line 5
def acts_as_human(options={})
  cattr_accessor :require_last_name

  if options.has_key? :require_last_name
    self.require_last_name = options[:require_last_name]
  else
    self.require_last_name = true
  end

  class_eval do
    validates_presence_of :first_name, message: 'first name is required'
    validates_length_of :first_name, maximum: 40,
      message: 'first name is too long (max 40 characters)'

    validates_as_person_name :first_name

    validates_length_of :middle_names, maximum: 40,
      allow_blank: true,
      message: 'middle names are too long (max 40 characters)'

    validates_as_person_name :middle_names, allow_nil: true

    validates_presence_of :last_name, if: -> { self.require_last_name },
      message: 'last name is required'

    validates_length_of :last_name, maximum: 40,
      allow_blank: true,
      message: 'last name is too long (max 40 characters)'

    validates_as_person_name :last_name
  end
end