lib/highrise/person.rb in highrise-3.2.1 vs lib/highrise/person.rb in highrise-3.2.3
- old
+ new
@@ -1,10 +1,11 @@
module Highrise
class Person < Subject
include Pagination
include Taggable
include Searchable
+ include CustomFields
def company
Company.find(company_id) if company_id
end
@@ -18,73 +19,18 @@
def web_address
contact_data.web_addresses.first
end
- def label
- 'Party'
+ def email_addresses
+ contact_data.email_addresses.collect { |address| address.address } rescue []
end
-
- def field(field_label)
- custom_fields = attributes["subject_datas"] ||= []
- field = custom_fields.detect do |field|
- field.subject_field_label == field_label
- end
- field ? field.value : nil
+
+ def phone_numbers
+ contact_data.phone_numbers.collect { |phone_number| phone_number.number } rescue []
end
-
- def new_subject_data(field, value)
- Highrise::SubjectData.new(:subject_field_id => field.id, :subject_field_label => field.label, :value => value)
- end
-
- def set_field_value(field_label, new_value)
- custom_fields = attributes["subject_datas"] ||= []
- custom_fields.each do |field|
- return field.value = new_value if field.subject_field_label== field_label
- end
-
- SubjectField.find(:all).each do |custom_field|
- if custom_field.label == field_label
- return attributes["subject_datas"] << new_subject_data(custom_field, new_value)
- end
- end
- end
- def transform_subject_field_label field_label
- field_label.downcase.tr(' ', '_')
+ def label
+ 'Party'
end
-
- def convert_method_to_field_label method
- custom_fields = attributes["subject_datas"] ||= []
- custom_fields.each do |field|
- method_name_from_field = transform_subject_field_label(field.subject_field_label)
- return field if method_name_from_field == method
- end
- nil
- end
-
- def method_missing(method_symbol, *args)
- method_name = method_symbol.to_s
-
- if method_name[-1,1] == "="
- attribute_name = method_name[0...-1]
- field = convert_method_to_field_label(attribute_name)
- return set_field_value(field.subject_field_label, args[0]) if field
-
- return super if attributes[attribute_name]
-
- subject_fields = SubjectField.find(:all)
- unless subject_fields.nil?
- subject_fields.each do |custom_field|
- if transform_subject_field_label(custom_field.label) == attribute_name
- return attributes["subject_datas"] << new_subject_data(custom_field, args[0])
- end
- end
- end
- else
- field = convert_method_to_field_label(method_name)
- return field(field.subject_field_label) if field
- end
- super
- end
end
end