Class: Ppl::Adapter::Vcard::Vpim

Inherits:
Object
  • Object
show all
Defined in:
lib/ppl/adapter/vcard/vpim.rb

Instance Method Summary collapse

Instance Method Details

#decode(string) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/ppl/adapter/vcard/vpim.rb', line 58

def decode(string)
  vcard   = Vpim::Vcard.decode(string).first
  contact = Ppl::Entity::Contact.new

  if !vcard.birthday.nil?
    contact.birthday = vcard.birthday
  end

  vcard.emails.each do |email|
    contact.email_addresses.push(email.to_s)
  end

  if !vcard.telephones.empty?
    contact.phone_number = vcard.telephones.first
  end

  if !vcard.address.nil?
    contact.postal_address             = Ppl::Entity::PostalAddress.new
    contact.postal_address.street      = vcard.address.street
    contact.postal_address.postal_code = vcard.address.postalcode
    contact.postal_address.po_box      = vcard.address.pobox
    contact.postal_address.locality    = vcard.address.locality
    contact.postal_address.region      = vcard.address.region
    contact.postal_address.country     = vcard.address.country
  end

  if !vcard.org.nil?
    contact.organization = vcard.org.first
  end

  name = nil
  name = vcard.name

  if !name.nil?
    contact.name = name.fullname
  end

  return contact
end

#encode(contact) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/ppl/adapter/vcard/vpim.rb', line 6

def encode(contact)
  vcard = Vpim::Vcard::Maker.make2 do |maker|

    if !contact.birthday.nil?
      maker.birthday = contact.birthday
    end

    maker.add_name do |name|
      name.given    = contact.id   unless contact.id.nil?
      name.fullname = contact.name unless contact.name.nil?
    end

    contact.email_addresses.each do |email_address|
      maker.add_email(email_address)
    end

    if !contact.phone_number.nil?
      maker.add_tel(contact.phone_number)
    end

    if !contact.organization.nil?
      maker.org=(contact.organization)
    end

    if !contact.postal_address.nil?
      maker.add_addr do |address|
        if !contact.postal_address.street.nil?
          address.street = contact.postal_address.street
        end
        if !contact.postal_address.postal_code.nil?
          address.postalcode = contact.postal_address.postal_code
        end
        if !contact.postal_address.po_box.nil?
          address.pobox = contact.postal_address.po_box
        end
        if !contact.postal_address.country.nil?
          address.country = contact.postal_address.country
        end
        if !contact.postal_address.region.nil?
          address.region = contact.postal_address.region
        end
        if !contact.postal_address.locality.nil?
          address.locality = contact.postal_address.locality
        end
      end
    end

  end

  return vcard.to_s
end