Project

atom-tools

0.01
No commit activity in last 3 years
No release in over 3 years
atom-tools is an all-in-one Atom library. It parses and builds Atom (RFC 4287) entries and feeds, and manipulates Atom Publishing Protocol (RFC 5023) Collections. It also comes with a set of commandline utilities for working with AtomPub Collections. It is not the fastest Ruby Atom library, but it is comprehensive and makes handling extensions to the Atom format very easy.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme
= atom-tools README

atom-tools is an all-in-one library for parsing, creating and manipulating Atom <http://www.w3.org/2005/Atom> feeds and entries.
It handles all the nasty XML and HTTP details so that you don't have to.

== Example

  require "atom/feed"
  require "open-uri"

  feed = Atom::Feed.new "http://www.tbray.org/ongoing/ongoing.atom"
    # => <http://www.tbray.org/ongoing/ongoing.atom entries: 0 title=''>

  feed.update!
  feed.entries.length
    # => 20

  feed.title.to_s
    # => "ongoing"

  feed.authors.first.name
    # => "Tim Bray"

  entry = feed.entries.first
    # => #<Atom::Entry id:'http://www.tbray.org/ongoing/When/200x/2006/11/07/Munich'>

  entry.title.to_s
    # => "M\303\274nchen"

  entry.links.last
    # => {"href"=>"http://www.tbray.org/ongoing/When/200x/2006/11/07/Munich#comments", "rel"=>"replies", "type" => "application/xhtml+xml"}

  entry.summary.to_s
    # => "That local spelling is nicer than the ugly English [...]"

Things are explained in more detail in the RDoc.

== The Atom Publishing Protocol

  require "atom/service"

  service = Atom::Service.new "http://necronomicorp.com/app.xml"
  coll = service.workspaces.first.collections.first
    # => <http://necronomicorp.com/testatom?app entries: 0 title='testing: entry endpoint'>

  coll.feed.update!
    # => <http://necronomicorp.com/testatom?app entries: 10 title='testing the APP'>

  entry = coll.feed.entries.first
  entry.title
    # => 'html entities'#text

  # modify the title
  entry.title = "HTML entities"

  # store the modified entry
  coll.put! entry
    # => #<Net::HTTPOK 200 OK readbody=true>

  coll.feed.entries.first.title
    # => 'HTML entities'#text

For details on authentication, see the documentation for Atom::HTTP.