module ActsAs::Human::InstanceMethods

Public Instance Methods

full_name() click to toggle source
# File lib/acts_as_human/instance_methods.rb, line 5
def full_name
  return '' if first_name.blank? and last_name.blank?

  return "#{first_name} #{last_name}" if middle_names.blank?
  return "#{first_name} #{middle_names} #{last_name}"
end
full_name=(names) click to toggle source
# File lib/acts_as_human/instance_methods.rb, line 12
def full_name=(names)
  names_array = names.titlecase.split

  self.first_name = names_array.first
  return if names_array.size < 2

  self.last_name = get_last_name(names_array)

  assign_middle_names(names_array)
end

Private Instance Methods

assign_middle_names(names_array) click to toggle source
# File lib/acts_as_human/instance_methods.rb, line 33
def assign_middle_names(names_array)
  if names_array.size > 2
    self.middle_names = get_middle_names(names_array)
  else
    self.middle_names = nil
  end
end
get_last_name(names_array) click to toggle source
# File lib/acts_as_human/instance_methods.rb, line 25
def get_last_name(names_array)
  if names_array.size > 2 and names_array[-2].eql? 'Mc'
    surname = names_array.pop
    names_array << "#{names_array.pop} #{surname}"
  end
  names_array.last
end
get_middle_names(names_array) click to toggle source
# File lib/acts_as_human/instance_methods.rb, line 41
def get_middle_names(names_array)
  names_array[1..(names_array.size-2)].join(' ')
end