Class: HasVcards::Vcard
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- HasVcards::Vcard
show all
- Includes:
- DirectoryLookup, I18nHelpers
- Defined in:
- app/models/has_vcards/vcard.rb,
app/models/has_vcards/vcard/directory_address.rb
Defined Under Namespace
Modules: DirectoryAddress, DirectoryLookup
Class Method Summary
collapse
Instance Method Summary
collapse
#address_matches, #directory_filter, #directory_found?, #directory_lookup, #directory_matches, #family_name_match?, #family_name_matches, #filtered_matches, #great_match?, #great_matches, #locality_matches, #map_for_directory, #normalize, #perfect_match?, #perfect_matches
Class Method Details
.by_name(name) ⇒ Object
62
63
64
65
66
|
# File 'app/models/has_vcards/vcard.rb', line 62
def self.by_name(name)
where(
'full_name LIKE :name OR family_name LIKE :name OR given_name LIKE :name OR nickname LIKE :name', name: name
)
end
|
Instance Method Details
#abbreviated_name ⇒ Object
87
88
89
90
91
|
# File 'app/models/has_vcards/vcard.rb', line 87
def abbreviated_name
return read_attribute(:full_name) if read_attribute(:full_name)
[given_name.try(:first).try(:upcase), family_name].compact.join('. ')
end
|
#address_lines ⇒ Object
94
95
96
97
98
99
|
# File 'app/models/has_vcards/vcard.rb', line 94
def address_lines
lines = [extended_address, street_address, post_office_box, "#{postal_code} #{locality}"]
lines.reject(&:blank?).compact.map(&:strip)
end
|
#address_with_autobuild ⇒ Object
28
29
30
|
# File 'app/models/has_vcards/vcard.rb', line 28
def address_with_autobuild
address_without_autobuild || build_address
end
|
108
109
110
111
112
113
|
# File 'app/models/has_vcards/vcard.rb', line 108
def contact_lines
lines = contacts
lines.map(&:to_s).reject(&:blank?).compact.map(&:strip)
end
|
#full_address_lines ⇒ Object
101
102
103
104
105
106
|
# File 'app/models/has_vcards/vcard.rb', line 101
def full_address_lines
lines = [honorific_prefix, full_name] + address_lines
lines.reject(&:blank?).compact.map(&:strip)
end
|
#full_name ⇒ Object
80
81
82
83
84
85
|
# File 'app/models/has_vcards/vcard.rb', line 80
def full_name
result = read_attribute(:full_name).presence
result ||= [ family_name.presence, given_name.presence ].compact.join(' ')
result
end
|
#validate_name ⇒ Object
71
72
73
74
75
76
77
|
# File 'app/models/has_vcards/vcard.rb', line 71
def validate_name
return if full_name.present?
errors.add(:full_name, "#{t_attr(:full_name, Vcard)} #{I18n.translate('errors.messages.empty')}")
errors.add(:family_name, "#{t_attr(:family_name, Vcard)} #{I18n.translate('errors.messages.empty')}")
errors.add(:given_name, "#{t_attr(:given_name, Vcard)} #{I18n.translate('errors.messages.empty')}")
end
|