Sha256: 1c888b6238565c2317de3a1ecf6efddf083fa30551942fbc9a85d5bab5b649d3
Contents?: true
Size: 1.54 KB
Versions: 2
Compression:
Stored size: 1.54 KB
Contents
module Highrise class Person < Subject require 'highrise/rfc822' include Pagination include Taggable include Searchable include SubjectData::Mixin def initialize(*args) super(*args) create_subject_fields_accessors end def company Company.find(company_id) if company_id end def name "#{first_name rescue ''} #{last_name rescue ''}".strip end def address contact_data.addresses.first end def web_address contact_data.web_addresses.first end def label 'Party' end def phone_number contact_data.phone_numbers.first.number rescue nil end def email_valid? !!(email_address && (email_address =~ RFC822::EmailAddress)) end def email_address contact_data.email_addresses.first.address rescue nil end alias :email :email_address def tagged? name tags.any?{ | tag | tag['name'].to_s == name} end def self.tagged_with_name(tag_name) tagged_with_id((Tag.find_by_name(tag_name)).id) end def self.tagged_with_id id find_all_across_pages(:from => "/tags/#{id}.xml").select do |obj| obj.kind_of?(Person) end end def create_subject_fields_accessors subject_data_fields.each do |subject_field_name, value| # for this instance only singleton_class.instance_eval do define_method subject_field_name do value end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
peterosullivan-highrise-3.0.6 | lib/highrise/person.rb |
peterosullivan-highrise-3.0.5 | lib/highrise/person.rb |