<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -21,7 +21,7 @@ TODO
   require 'rubygems'
   require 'stammer'
   
-  stammer = Stammer.new('user@example.com', 'password')
+  stammer = Stammer::Client.new('user@example.com', 'password')
   messages = stammer.messages
   sent_messages = stammer.messages('sent')
 </diff>
      <filename>README.txt</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,5 @@
 # $Id$
 
-# Equivalent to a header guard in C/C++
-# Used to prevent the class/module from being loaded more than once
-unless defined? Stammer
-
 module Stammer
 
   # :stopdoc:
@@ -49,8 +45,4 @@ module Stammer
 
 end  # module Stammer
 
-Stammer.require_all_libs_relative_to __FILE__
-
-end  # unless defined?
-
-# EOF
+Stammer.require_all_libs_relative_to __FILE__
\ No newline at end of file</diff>
      <filename>lib/stammer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,11 +4,16 @@ require 'net/https'
 
 module Stammer
   class Client
-    def initialize(user, password, secret = nil, client = nil, format = 'json')
+    
+    ACCEPTABLE_SUBSETS = [:all, :sent, :received, :following]
+    FORMAT = 'json'
+    HEADERS = {'User-Agent' =&gt; 'Stammer v0.0.3', 'Accept' =&gt; &quot;text/#{FORMAT}&quot;}
+    API_URL = &quot;https://yammer.com/api/v1&quot;
+    
+    def initialize(user, password, secret = nil, client = nil)
       @user     = user
       @password = password
-      @format   = format
-
+    
       unless !secret || !client
         @secret = secret
         @client = client
@@ -18,8 +23,10 @@ module Stammer
     end
     
     # TODO: pagination via older_than/newer_than
-    def messages(subset = nil)
-      MessageList.new(send_request('messages', subset))
+    def messages(subset = :all)
+      raise ArgumentError.new(&quot;Subset must be in [#{ACCEPTABLE_SUBSETS.join(', ')}]&quot;) unless ACCEPTABLE_SUBSETS.include?(subset)
+      subset = nil if subset == :all
+      MessageList.new(send_request('messages', subset.to_s))
     end
     
     # TODO: pagination via page
@@ -30,20 +37,39 @@ module Stammer
     def tags(id = nil)
       TagList.new(send_request('tags', id))
     end
+        
+    def update_status(status)
+      raise ArgumentError.new(&quot;must update with a status&quot;) if status.to_s == &quot;&quot;
+      url = URI.parse(API_URL + &quot;/messages&quot;)
+      conn = create_connection(url)
+      res = conn.start do |http|
+        req = Net::HTTP::Post.new(url.path, HEADERS)
+        req.basic_auth(@user, @password)
+        req.form_data = {'body' =&gt; status}
+        http.request(req)
+      end
+      return res.is_a?(Net::HTTPCreated)
+    end
 
     private
+    
     def send_request(*args)
-      url = URI.parse(&quot;https://yammer.com/api/v1/#{args.compact.join('/')}.#{@format}&quot;)
-      
-      conn = Net::HTTP.new(url.host, url.port)
-      conn.use_ssl = true
-      conn.verify_mode = OpenSSL::SSL::VERIFY_NONE
-      res = conn.start { |http| 
-        req = Net::HTTP::Get.new(url.path, {'User-Agent' =&gt; 'Stammer v0.0.1', 'Accept' =&gt; 'text/json'})
+      url = URI.parse(&quot;#{API_URL}/#{args.compact.join('/')}.#{FORMAT}&quot;)
+      puts &quot;grabbing #{url.to_s}&quot;
+      conn = create_connection(url)
+      res = conn.start do |http| 
+        req = Net::HTTP::Get.new(url.path, HEADERS)
         req.basic_auth(@user, @password)
         http.request(req)
-      }
+      end
       JSON.load(res.body)
     end
+    
+    def create_connection(url)
+      conn = Net::HTTP.new(url.host, url.port)
+      conn.use_ssl = true
+      conn.verify_mode = OpenSSL::SSL::VERIFY_NONE
+      conn
+    end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/stammer/client.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ module Stammer
     def ytb?
       !(self.plain =~ /^(today|blocker|yesterday)/).nil?
     end
-
+    
     def plain
       self['body']['plain']
     end
@@ -23,5 +23,7 @@ module Stammer
     def created
       Time.parse(self['created_at'])
     end
+    
+    alias :body :plain
   end
 end
\ No newline at end of file</diff>
      <filename>lib/stammer/message.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 Gem::Specification.new do |s|
   s.name     = &quot;stammer&quot;
-  s.version  = &quot;0.0.2&quot;
+  s.version  = &quot;0.0.3&quot;
   s.date     = &quot;2008-09-19&quot;
   s.summary  = &quot;Super-simple wrapper for the Yammer API&quot;
   s.email    = &quot;ben.scofield@viget.com&quot;</diff>
      <filename>stammer.gemspec</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>36fe7f447b7f0bf1ecaa52518609575cd4b25c42</id>
    </parent>
  </parents>
  <author>
    <name>Terry Heath</name>
    <email>theath@kapwnt.local</email>
  </author>
  <url>http://github.com/bscofield/stammer/commit/86564830d99e801aacb9e294296b6a189377ff0d</url>
  <id>86564830d99e801aacb9e294296b6a189377ff0d</id>
  <committed-date>2008-10-01T14:28:12-07:00</committed-date>
  <authored-date>2008-10-01T14:28:12-07:00</authored-date>
  <message>Added a limiter around supported API messages gets and added a way to update status.</message>
  <tree>5924fc0feae7ceeb2f7d56d10932fc5632541eda</tree>
  <committer>
    <name>Terry Heath</name>
    <email>theath@kapwnt.local</email>
  </committer>
</commit>
