Class: PersonName::ActiveRecordPersonName

Inherits:
Object
  • Object
show all
Defined in:
lib/person_name/name.rb

Instance Method Summary collapse

Constructor Details

#initialize(naming_prefix, record) ⇒ ActiveRecordPersonName

Returns a new instance of ActiveRecordPersonName.



4
5
6
7
# File 'lib/person_name/name.rb', line 4

def initialize(naming_prefix, record)
  @naming_prefix = naming_prefix
  @record = record
end

Instance Method Details

#full_last_nameObject



25
26
27
# File 'lib/person_name/name.rb', line 25

def full_last_name
  [:intercalation, :last_name, :suffix].collect { |p| self.send(p) }.compact.join " "
end

#full_nameObject



9
10
11
# File 'lib/person_name/name.rb', line 9

def full_name
  NameSplitter::NAME_PARTS.collect { |p| self.send(p) }.compact.join " "
end

#full_name=(new_name) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/person_name/name.rb', line 13

def full_name= new_name
  return if full_name == new_name # no changes
  old_values = {}
  NameSplitter::NAME_PARTS.collect { |p| old_values[p.to_sym] = self.send(p) }
  new_name = NameSplitter.split(new_name, old_values)

  # assignments
  NameSplitter::NAME_PARTS.each do |part|
    self.send "#{part}=", (new_name[part.to_sym] || "").blank? ? nil : new_name[part.to_sym]
  end
end

#short_name(include_middle_names = true) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/person_name/name.rb', line 29

def short_name include_middle_names = true
  parts = []
  parts << "#{self.first_name[0,1].upcase}." if self.first_name
  if include_middle_names and self.middle_name
    names = self.middle_name.split(" ")
    names.each do |name|
      parts << "#{name[0,1].upcase}."
    end
  end
  [parts.join, full_last_name] * " "
end

#to_sObject



51
52
53
# File 'lib/person_name/name.rb', line 51

def to_s
  full_name
end