def to_s
      out = ''
      desc = ''
      aut = ''
      published = DateTime.parse(posted_at).to_date

      case type
      when 'image'
        desc = data.image.caption
        aut = data.respond_to?(:oembed) ? data.oembed.author_name : attribution.name
      when 'text'
        desc = data.text

        doc = Nokogiri::HTML(desc)
        desc = doc.xpath("//text()").to_s
        desc = desc.gsub(/&[a-z]+;/,'')
      else
        desc = data.send("#{type}".to_sym).description

        aut = source.username
        aut = "@" + aut if source.name.downcase == 'twitter'
      end

      case source.name.downcase
      when 'storify'
        out << "\n#{desc}\n"
        out << ('-' * desc.length) + "\n\n" if desc.length < 40
      when 'twitter'
        out << "[#{published.to_s}] #{aut}: #{permalink}\n"
      else
        out << "#{aut} [#{published.to_s}]: #{permalink}\n"
      end

      out
    end
def to_s
      out = ''
      desc = ''
      aut = ''
      published = DateTime.parse(posted_at).to_date

      case type
      when 'image'
        desc = data.image.caption
        aut = data.respond_to?(:oembed) ? data.oembed.author_name : attribution.name
      when 'text'
        desc = data.text

        doc = Nokogiri::HTML(desc)
        desc = doc.xpath("//text()").to_s
        desc = desc.gsub(/&[a-z]+;/,'')
      else
        desc = data.send("#{type}".to_sym).description

        aut = source.username
        aut = "@" + aut if source.name.downcase == 'twitter'
      end

      case source.name.downcase
      when 'storify'
        out << "\n#{desc}\n"
        out << ('-' * desc.length) + "\n\n" if desc.length < 40
      when 'twitter'
        out << "[#{published.to_s}] #{aut}: #{permalink}\n"
      else
        out << "#{aut} [#{published.to_s}]: #{permalink}\n"
      end

      out
    end
meta.....highly variable