Tomas Madariaga
2011-Dec-01 12:07 UTC
I can''t generate a single vcard file with multiple contacts using vpim
Hi, I want to generate a single .vcf file with several contacts, but I can''t because vpim generates it like a unique contact .vcf with other users data. This is my code for generate a single contact vcard and works fine: def get_card contact = User.find(params[:id]) card = Vpim::Vcard::Maker.make2 do |maker| maker.add_name do |name| name.given = contact.user_info.name end maker.add_addr do |addr| addr.location = ''home'' addr.street = contact.user_info.address_street addr.locality = contact.user_info.address_city addr.region = contact.user_info.address_state addr.postalcode = contact.user_info.address_postalcode end if !contact.user_info.telephone.empty? maker.add_tel(contact.user_info.telephone) do |tel| tel.location = ''home'' tel.preferred = true end end if !contact.user_info.fax.empty? maker.add_tel(contact.user_info.fax) do |tel| tel.location = ''home'' tel.capability = ''fax'' end end maker.add_email(contact.email) do |e| e.location = ''home'' end end send_data card.to_s, :filename => contact.user_info.name + ".vcf" end And this is my method for a single vcard file with multiple contacts: def get_list_cards ids = params[:ids] contact_list = [] card = Vpim::Vcard::Maker.make2 do |maker| ids.each do |id| contact_list.push(User.find(id)) end contact_list.each do |contact| #I need to introduce BEGIN:VCARD tag to separate contacts maker.add_name do |name| name.given = contact.user_info.name end maker.add_addr do |addr| addr.location = ''home'' addr.street = contact.user_info.address_street addr.locality = contact.user_info.address_city addr.region = contact.user_info.address_state addr.postalcode = contact.user_info.address_postalcode end if !contact.user_info.telephone.empty? maker.add_tel(contact.user_info.telephone) do |tel| tel.location = ''home'' tel.preferred = true end end if !contact.user_info.fax.empty? maker.add_tel(contact.user_info.fax) do |tel| tel.location = ''home'' tel.capability = ''fax'' end end maker.add_email(contact.email) do |e| e.location = ''home'' end end #I need to introduce END:VCARD tag to separate contacts end send_data card.to_s, :filename => params[:name]+".vcf" end It works but not well, it generates .vcf file but with a single N:; tag. I need to add as N:; tags as user names and i need to split each contact with BEGIN:VCARD and END:VCARD. I don''t know how to do it. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.