Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
# lifted from http://readlist.com/lists/lists.rubyonrails.org/rails/7/38240.html # originally by Derek Neighbors # see http://vpim.rubyforge.org/ for more info ## controller # This allows us to get a contact back as html, xml or vcard. def show respond_to do |format| format.html format.xml { render :xml => @contact.to_xml } format.vcf do send_data @contact.to_vcard, :filename => "#{@contact.id}.vcf", :type => 'text/directory' end end end ## model # Then in the contact model you can add something like: def to_vcard card = Vpim::Vcard::Maker.make2 do |maker| maker.add_name do |name| name.prefix = prefix unless self.prefix.blank? name.given = first_name name.family = last_name name.suffix = suffix unless self.suffix.blank? end if preferred_location maker.add_addr do |addr| addr.preferred = true addr.location = 'work' addr.street = preferred_location.address_line_1 unless preferred_location.address_line_1.blank? addr.locality = preferred_location.city unless preferred_location.city.blank? addr.postalcode = preferred_location.postal_code unless preferred_location.postal_code.blank? addr.country = preferred_location.country unless preferred_location.country.blank? end maker.add_tel(preferred_location.voice_number) do |tel| tel.location = 'work' tel.preferred = true end unless preferred_location.voice_number.blank? maker.add_tel(preferred_location.fax_number) do |tel| tel.location = 'work' tel.capability = 'fax' end unless preferred_location.fax_number.blank? maker.add_email(preferred_location.email) do |e| e.location = 'work' e.preferred = 'yes' end unless preferred_location.email.blank? end end card.to_s end
This paste will be private.
From the Design Piracy series on my blog: