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