Permalink
Switch branches/tags
Nothing to show
Commits on Jan 25, 2011
  1. Set $LOAD_PATH of unit tests to allow them to be exec'ed from any path

    Gustavo Machado Campagnani Gama committed Jan 25, 2011
  2. Add missing copyright headers

    Gustavo Machado Campagnani Gama committed Jan 25, 2011
  3. Defined the ItemList array-like interface and added a first set of un…

    Gustavo Machado Campagnani Gama committed Jan 25, 2011
    …it tests
    
    Spent some time testing and evaluating the available options to wrap the
    ItemList class around a array-style interface. I tried subclassing,
    using an explicit delegator object, but neither worked well enough
    because the Array class isn't very 'inheritance' friendly (all methods
    that return a new array-like interface use the Array class explicitly,
    instead of the using the subclass). So I settled with the Forwardable
    module, which forwards a select subset of methods to the wrapped array
    instance.
    
    To help with testing this, I've also (finally) added the first batch of
    unit tests for the ItemList class.
Commits on Jan 1, 2011
  1. Wrapped the "/stream/items/ids" "/stream/items/contents" methods

    Gustavo Machado Campagnani Gama committed Jan 1, 2011
    Add {broadcast,unread,shared,starred,...}_item_ids methods to the User
    class. These methods behave much like the *_items methods, except that
    only the item ids (or item refs, as the API refers to them) are
    returned.
    
    Also added the "items_from_ids" method, which retrieves the full Item
    contents given a list of item ids/refs. Together, these two methods
    provide a nice mechanism to synchronize a user's item list.
Commits on Dec 23, 2010
  1. Added unit tests for the Google::Reader::Tag class

    Gustavo Machado Campagnani Gama committed Dec 23, 2010
  2. Add 'Google::Reader::Tag.rename' method

    Gustavo Machado Campagnani Gama committed Dec 23, 2010
    The unnoficial docs from pyrfeed don't mention it but by monitoring the
    Google Reader webapp requests I was able to discover the existence of an
    'rename-tag' API endpoing, used to (suprise!) rename tags/labels. I've
    added a method to the Tag class that wraps it.
  3. Add band (!) version of the 'Google::Reader::User.tags' method

    Gustavo Machado Campagnani Gama committed Dec 23, 2010
  4. Improve network-related error handlers

    Gustavo Machado Campagnani Gama committed Dec 23, 2010
    Check the HTTP status code of every request, and raise an exception with
    a (relatively) useful message whenever an error occurs.
    
    Also changed the order of some exception raising statements
    ('<condition> and raise "..."' instead of raise '"...." unless
    <condition>'). It's a matter of preference and starting the statements
    with the condition feels more natural to me.
  5. Fix 'ItemList.next' method (use client.access_token as request proxy)

    Gustavo Machado Campagnani Gama committed Dec 23, 2010
Commits on Dec 21, 2010
  1. Implement the full 'subscription' API

    Gustavo Machado Campagnani Gama committed Dec 21, 2010
    Add all the write/update operations related to subscriptions objects.
    This time with proper unit tests. :-)
  2. Add the first unit tests (for now just the basic Client interface)

    Gustavo Machado Campagnani Gama committed Dec 21, 2010
  3. Add the 'Tag' class

    Gustavo Machado Campagnani Gama committed Dec 21, 2010
    Add a class to represent Google Reader generic tags/folders. It already
    supports the write methods provided by API.
  4. Implemented the 'edit-tag' method

    Gustavo Machado Campagnani Gama committed Dec 21, 2010
    Initial support for the 'write' operations: add wrappers to the Item
    class that encapsulate the 'edit-tag' operations provided by the Google
    Reader API (add/remove star, mark/unmark unread, share/unshare, add
    arbitrary tags, etc).
  5. Replace list method declarations with metaprogramming-like code

    Gustavo Machado Campagnani Gama committed Dec 21, 2010
    Instead of declaring all the *_items methods (which all look the same
    except for the name of the filter and the name of the method & cache
    variable), use ruby's powerful metaprogramming capabilities to define
    the methods with 'class_eval'.
Commits on Dec 18, 2010
  1. Fetch items in larger batches and limit history to 30 days

    Gustavo Machado Campagnani Gama committed Dec 18, 2010
    Two minor changes to ItemList.all:
      * we now fetch items in batches of 200 to decrease the number of
    	requests
      * we limit the history to 30 days, to avoid downloading the entire
    	Google Reader item database (or at least a significant part of
    	it...)
  2. Fix construction of the query-string in ItemList.next

    Gustavo Machado Campagnani Gama committed Dec 18, 2010
Commits on Dec 16, 2010
  1. Use instance authorize_callback method

    Gustavo Machado Campagnani Gama committed Dec 16, 2010
    Fix a typo which cause the verifier to try to access the
    'authorize_callback' method in the class object.
  2. Fix rack server shutdown

    Gustavo Machado Campagnani Gama committed Dec 16, 2010
    Rack ~> 1.2 changed the way webrick's handler setups the shutdown hook
    (i.e., it doesn't use SIGINT anymore). This patch uses the new
    'shutdown' class method instead while retaining compatibility with older
    Rack versions.
  3. Initial commit

    Gustavo Machado Campagnani Gama committed Dec 16, 2010