jamescallmebrent-rumblr 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
 - data/LICENSE.rdoc +0 -1
 - data/README.rdoc +6 -23
 - data/Rakefile +48 -0
 - data/VERSION.yml +1 -1
 - data/lib/rumblr/client.rb +24 -19
 - data/lib/rumblr/post.rb +59 -8
 - data/lib/rumblr/tumblelog.rb +6 -1
 - data/lib/rumblr/user.rb +2 -2
 - data/rumblr.gemspec +60 -0
 - data/spec/rumblr/client_spec.rb +34 -0
 - data/spec/rumblr/post_spec.rb +5 -1
 - data/spec/rumblr/tumblelog_spec.rb +26 -1
 - data/spec/rumblr/user_spec.rb +1 -1
 - data/spec/spec_helper.rb +7 -6
 - metadata +29 -14
 
    
        data/.gitignore
    ADDED
    
    
    
        data/LICENSE.rdoc
    CHANGED
    
    | 
         @@ -22,4 +22,3 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
     | 
|
| 
       22 
22 
     | 
    
         
             
            LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         
     | 
| 
       23 
23 
     | 
    
         
             
            OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         
     | 
| 
       24 
24 
     | 
    
         
             
            WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -4,14 +4,10 @@ Rumblr is a Ruby client for http://www.tumblr.com XML API.  It currently only pr 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            = Overview
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            Rumblr maps the Tumblr API 'authenticate' and 'read' calls.  User, Tumblelog and Post models have attributes provided by the API, as well as some convenience methods for common tasks.
         
     | 
| 
      
 7 
     | 
    
         
            +
            Rumblr maps the Tumblr API 'authenticate' and 'read' calls.  User, Tumblelog and Post models have the attributes provided by the API, as well as some convenience methods for common tasks.
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
            Please read Tumblr's official documentation (http://tumblr.com/api/) to learn more the API.
         
     | 
| 
      
 9 
     | 
    
         
            +
            Please read Tumblr's official documentation (http://tumblr.com/api/) to learn more about the API.
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
            == Dependencies
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            * Ruby >= 1.8.6 (not tested with previous versions)
         
     | 
| 
       14 
     | 
    
         
            -
            * libxml-ruby >= 0.8.3
         
     | 
| 
       15 
11 
     | 
    
         | 
| 
       16 
12 
     | 
    
         
             
            == Dependencies
         
     | 
| 
       17 
13 
     | 
    
         | 
| 
         @@ -32,12 +28,13 @@ To get the latest version, simply type the following instruction into your comma 
     | 
|
| 
       32 
28 
     | 
    
         
             
            In order to use this library you need a valid Tumblr account.
         
     | 
| 
       33 
29 
     | 
    
         
             
            Go to http://tumblr.com and register for a new account if you don't already have one.
         
     | 
| 
       34 
30 
     | 
    
         | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
       35 
32 
     | 
    
         
             
            === Sample usage:
         
     | 
| 
       36 
33 
     | 
    
         | 
| 
       37 
34 
     | 
    
         
             
              require 'rumblr'
         
     | 
| 
       38 
35 
     | 
    
         
             
              include Rumblr
         
     | 
| 
       39 
36 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
              user = User.login({:email => ' 
     | 
| 
      
 37 
     | 
    
         
            +
              user = User.login({:email => 'name@domain.com', :password => 'pass'})
         
     | 
| 
       41 
38 
     | 
    
         | 
| 
       42 
39 
     | 
    
         
             
              user.tumblelogs.each do |log|
         
     | 
| 
       43 
40 
     | 
    
         
             
                puts log.name  # 'the tumblelogger'
         
     | 
| 
         @@ -53,22 +50,8 @@ Go to http://tumblr.com and register for a new account if you don't already have 
     | 
|
| 
       53 
50 
     | 
    
         
             
                puts post.url   # 'http://tumblelogger.tumblr.com/post/12345/my-first-tumblr-post'
         
     | 
| 
       54 
51 
     | 
    
         
             
              end
         
     | 
| 
       55 
52 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
            Author:: {Brent Hargrave}[http://brenthargrave.info/] <brent.hargrave@gmail.com>
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
            This library was inspired by some great Ruby clients for other webservices:  {WWW::Delicious}[http://github.com/weppos/www-delicious/tree/master] and {dropio_api_ruby}[http://github.com/weppos/www-delicious/tree/master]
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
            == Resources
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
            * {GitHub}[http://github.com/jamescallmebrent/rumblr/]
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
            == FeedBack and Bug reports
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
            Please email {Brent Hargrave}[mailto:brent.hargrave@gmail.com] with any questions or feedback.
         
     | 
| 
      
 53 
     | 
    
         
            +
              post = RegularPost.new(:title => "Post Title", :body => "Just a regular post!")
         
     | 
| 
      
 54 
     | 
    
         
            +
              Client.instance.write(post, {:email => 'name@domain.com', :password => 'pass'})
         
     | 
| 
       72 
55 
     | 
    
         | 
| 
       73 
56 
     | 
    
         | 
| 
       74 
57 
     | 
    
         
             
            == License
         
     | 
    
        data/Rakefile
    ADDED
    
    | 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            begin
         
     | 
| 
      
 4 
     | 
    
         
            +
              require 'jeweler'
         
     | 
| 
      
 5 
     | 
    
         
            +
              Jeweler::Tasks.new do |s|
         
     | 
| 
      
 6 
     | 
    
         
            +
                summary = %Q{Ruby client for the Tumblr API}
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                s.name = "rumblr"
         
     | 
| 
      
 9 
     | 
    
         
            +
                s.summary = summary
         
     | 
| 
      
 10 
     | 
    
         
            +
                s.email = "brent.hargrave@gmail.com"
         
     | 
| 
      
 11 
     | 
    
         
            +
                s.homepage = "http://github.com/jamescallmebrent/rumblr"
         
     | 
| 
      
 12 
     | 
    
         
            +
                s.description = summary
         
     | 
| 
      
 13 
     | 
    
         
            +
                s.authors = ["Brent Hargrave", "Benny Wong"]
         
     | 
| 
      
 14 
     | 
    
         
            +
                s.add_dependency('libxml-ruby', '>= 0.8.3')
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 17 
     | 
    
         
            +
              puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            require 'rake/rdoctask'
         
     | 
| 
      
 21 
     | 
    
         
            +
            Rake::RDocTask.new do |rdoc|
         
     | 
| 
      
 22 
     | 
    
         
            +
              rdoc.rdoc_dir = 'rdoc'
         
     | 
| 
      
 23 
     | 
    
         
            +
              rdoc.title = 'rumblr'
         
     | 
| 
      
 24 
     | 
    
         
            +
              rdoc.options << '--line-numbers' << '--inline-source'
         
     | 
| 
      
 25 
     | 
    
         
            +
              rdoc.rdoc_files.include('README*')
         
     | 
| 
      
 26 
     | 
    
         
            +
              rdoc.rdoc_files.include('lib/**/*.rb')
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            require 'spec/rake/spectask'
         
     | 
| 
      
 30 
     | 
    
         
            +
            Spec::Rake::SpecTask.new(:spec) do |t|
         
     | 
| 
      
 31 
     | 
    
         
            +
              t.libs << 'lib' << 'spec'
         
     | 
| 
      
 32 
     | 
    
         
            +
              t.spec_files = FileList['spec/**/*_spec.rb']
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            Spec::Rake::SpecTask.new(:rcov) do |t|
         
     | 
| 
      
 36 
     | 
    
         
            +
              t.libs << 'lib' << 'spec'
         
     | 
| 
      
 37 
     | 
    
         
            +
              t.spec_files = FileList['spec/**/*_spec.rb']
         
     | 
| 
      
 38 
     | 
    
         
            +
              t.rcov = true
         
     | 
| 
      
 39 
     | 
    
         
            +
            end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            begin
         
     | 
| 
      
 42 
     | 
    
         
            +
              require 'cucumber/rake/task'
         
     | 
| 
      
 43 
     | 
    
         
            +
              Cucumber::Rake::Task.new(:features)
         
     | 
| 
      
 44 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 45 
     | 
    
         
            +
              puts "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
         
     | 
| 
      
 46 
     | 
    
         
            +
            end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            task :default => :spec
         
     | 
    
        data/VERSION.yml
    CHANGED
    
    
    
        data/lib/rumblr/client.rb
    CHANGED
    
    | 
         @@ -21,7 +21,9 @@ module Rumblr 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    user_attributes = parse_user_attributes_from(response_body)
         
     | 
| 
       22 
22 
     | 
    
         
             
                    user_attributes.merge!(user_credentials)
         
     | 
| 
       23 
23 
     | 
    
         
             
                  end
         
     | 
| 
       24 
     | 
    
         
            -
                  User.new(user_attributes)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  user = User.new(user_attributes)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  user.tumblelogs.each{ |tumblelog| tumblelog.user = user }
         
     | 
| 
      
 26 
     | 
    
         
            +
                  user
         
     | 
| 
       25 
27 
     | 
    
         
             
                end
         
     | 
| 
       26 
28 
     | 
    
         | 
| 
       27 
29 
     | 
    
         
             
                def read(options={})
         
     | 
| 
         @@ -35,8 +37,13 @@ module Rumblr 
     | 
|
| 
       35 
37 
     | 
    
         | 
| 
       36 
38 
     | 
    
         
             
                  request_url_host = URI.parse(options[:url]).host
         
     | 
| 
       37 
39 
     | 
    
         
             
                  complete_request(request,host=request_url_host) do |response_body|
         
     | 
| 
       38 
     | 
    
         
            -
                    parser 
     | 
| 
      
 40 
     | 
    
         
            +
                    parser = XML::Parser.string(response_body)
         
     | 
| 
       39 
41 
     | 
    
         
             
                    doc = parser.parse
         
     | 
| 
      
 42 
     | 
    
         
            +
                    # parse and map tumblelog
         
     | 
| 
      
 43 
     | 
    
         
            +
                    tumblelog_element = doc.find_first('//tumblr/tumblelog')
         
     | 
| 
      
 44 
     | 
    
         
            +
                    tumblelog_attrs = cleanup_hash(tumblelog_element.attributes.to_h)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    tumblelog_attrs.merge!(:url => options[:url])
         
     | 
| 
      
 46 
     | 
    
         
            +
                    tumblelog = Tumblelog.new(tumblelog_attrs)
         
     | 
| 
       40 
47 
     | 
    
         
             
                    # parse and map posts
         
     | 
| 
       41 
48 
     | 
    
         
             
                    posts = doc.find('//tumblr/posts/post').inject([]) do |array, element|
         
     | 
| 
       42 
49 
     | 
    
         
             
                      post_attrs = cleanup_hash(element.attributes.to_h)
         
     | 
| 
         @@ -52,29 +59,27 @@ module Rumblr 
     | 
|
| 
       52 
59 
     | 
    
         
             
                      inner_attrs.delete(:tag)
         
     | 
| 
       53 
60 
     | 
    
         
             
                      post_attrs.merge!(inner_attrs)
         
     | 
| 
       54 
61 
     | 
    
         
             
                      # turn attributes into proper model
         
     | 
| 
       55 
     | 
    
         
            -
                      klass =  
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                              when 'photo'        then PhotoPost
         
     | 
| 
       58 
     | 
    
         
            -
                              when 'quote'        then QuotePost
         
     | 
| 
       59 
     | 
    
         
            -
                              when 'link'         then LinkPost
         
     | 
| 
       60 
     | 
    
         
            -
                              when 'conversation' then ConversationPost
         
     | 
| 
       61 
     | 
    
         
            -
                              when 'video'        then VideoPost
         
     | 
| 
       62 
     | 
    
         
            -
                              when 'audio'        then AudioPost
         
     | 
| 
       63 
     | 
    
         
            -
                              else raise          'unknown post type'
         
     | 
| 
       64 
     | 
    
         
            -
                              end
         
     | 
| 
      
 62 
     | 
    
         
            +
                      klass = Rumblr.const_get(Post::TYPES[post_attrs[:type]])
         
     | 
| 
      
 63 
     | 
    
         
            +
                      raise 'unknown post type' unless klass
         
     | 
| 
       65 
64 
     | 
    
         
             
                      post = klass.new(post_attrs)
         
     | 
| 
      
 65 
     | 
    
         
            +
                      post.tumblelog = tumblelog
         
     | 
| 
       66 
66 
     | 
    
         
             
                      array << post
         
     | 
| 
       67 
67 
     | 
    
         
             
                      array
         
     | 
| 
       68 
68 
     | 
    
         
             
                    end
         
     | 
| 
       69 
     | 
    
         
            -
                    # parse and map tumblelog
         
     | 
| 
       70 
     | 
    
         
            -
                    tumblelog_element = doc.find_first('//tumblr/tumblelog')
         
     | 
| 
       71 
     | 
    
         
            -
                    tumblelog_attrs = cleanup_hash(tumblelog_element.attributes.to_h)
         
     | 
| 
       72 
     | 
    
         
            -
                    tumblelog_attrs.merge!(:url => options[:url])
         
     | 
| 
       73 
     | 
    
         
            -
                    tumblelog = Tumblelog.new(tumblelog_attrs)
         
     | 
| 
       74 
69 
     | 
    
         
             
                  end
         
     | 
| 
       75 
70 
     | 
    
         
             
                  return tumblelog, posts
         
     | 
| 
       76 
71 
     | 
    
         
             
                end
         
     | 
| 
       77 
72 
     | 
    
         | 
| 
      
 73 
     | 
    
         
            +
                def write(post, creds)
         
     | 
| 
      
 74 
     | 
    
         
            +
                  raise(ArgumentError) unless post && post.is_a?(Post)
         
     | 
| 
      
 75 
     | 
    
         
            +
                  raise(ArgumentError) unless creds
         
     | 
| 
      
 76 
     | 
    
         
            +
                  uri = URI::HTTP.build(:path => "/api/write")
         
     | 
| 
      
 77 
     | 
    
         
            +
                  request = Net::HTTP::Post.new(uri.request_uri, DEFAULT_HEADER)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  request.set_form_data(creds.merge(:type => Post::TYPES.invert[post.class]).merge(post.attribute_hash))
         
     | 
| 
      
 79 
     | 
    
         
            +
                  request_url_host = URI.parse(uri.request_uri).host
         
     | 
| 
      
 80 
     | 
    
         
            +
                  complete_request(request)
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
                
         
     | 
| 
       78 
83 
     | 
    
         | 
| 
       79 
84 
     | 
    
         
             
                protected
         
     | 
| 
       80 
85 
     | 
    
         | 
| 
         @@ -111,7 +116,7 @@ module Rumblr 
     | 
|
| 
       111 
116 
     | 
    
         
             
                private
         
     | 
| 
       112 
117 
     | 
    
         | 
| 
       113 
118 
     | 
    
         
             
                def parse_user_attributes_from(response_body)
         
     | 
| 
       114 
     | 
    
         
            -
                  parser 
     | 
| 
      
 119 
     | 
    
         
            +
                  parser = XML::Parser.string response_body
         
     | 
| 
       115 
120 
     | 
    
         
             
                  doc = parser.parse
         
     | 
| 
       116 
121 
     | 
    
         
             
                  tumblelogs = doc.find('//tumblr/tumblelog').inject([]) do |array, element|
         
     | 
| 
       117 
122 
     | 
    
         
             
                    tumblelog_attrs = cleanup_hash(element.attributes.to_h)
         
     | 
| 
         @@ -138,4 +143,4 @@ module Rumblr 
     | 
|
| 
       138 
143 
     | 
    
         | 
| 
       139 
144 
     | 
    
         
             
              end
         
     | 
| 
       140 
145 
     | 
    
         | 
| 
       141 
     | 
    
         
            -
            end
         
     | 
| 
      
 146 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/rumblr/post.rb
    CHANGED
    
    | 
         @@ -3,7 +3,19 @@ module Rumblr 
     | 
|
| 
       3 
3 
     | 
    
         
             
              # for attribute details, see Tumblr's documentation:
         
     | 
| 
       4 
4 
     | 
    
         
             
              # http://www.tumblr.com/api
         
     | 
| 
       5 
5 
     | 
    
         
             
              class Post < Resource
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
      
 7 
     | 
    
         
            +
                TYPES = {
         
     | 
| 
      
 8 
     | 
    
         
            +
                  'regular'      => "RegularPost",
         
     | 
| 
      
 9 
     | 
    
         
            +
                  'photo'        => "PhotoPost",
         
     | 
| 
      
 10 
     | 
    
         
            +
                  'quote'        => "QuotePost",
         
     | 
| 
      
 11 
     | 
    
         
            +
                  'link'         => "LinkPost",
         
     | 
| 
      
 12 
     | 
    
         
            +
                  'conversation' => "ConversationPost",
         
     | 
| 
      
 13 
     | 
    
         
            +
                  'video'        => "VideoPost",
         
     | 
| 
      
 14 
     | 
    
         
            +
                  'audio'        => "AudioPost"
         
     | 
| 
      
 15 
     | 
    
         
            +
                }
         
     | 
| 
      
 16 
     | 
    
         
            +
                
         
     | 
| 
       6 
17 
     | 
    
         
             
                attr_reader :id, :url, :type, :unix_timestamp, :date_gmt, :date, :tags, :private
         
     | 
| 
      
 18 
     | 
    
         
            +
                attr_accessor :tumblelog
         
     | 
| 
       7 
19 
     | 
    
         | 
| 
       8 
20 
     | 
    
         
             
                def initialize(attrs={})
         
     | 
| 
       9 
21 
     | 
    
         
             
                  @private = false
         
     | 
| 
         @@ -18,34 +30,73 @@ module Rumblr 
     | 
|
| 
       18 
30 
     | 
    
         
             
                  !self.private?
         
     | 
| 
       19 
31 
     | 
    
         
             
                end
         
     | 
| 
       20 
32 
     | 
    
         | 
| 
      
 33 
     | 
    
         
            +
                def attribute_hash
         
     | 
| 
      
 34 
     | 
    
         
            +
                  {:date => date}
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
                
         
     | 
| 
       21 
37 
     | 
    
         
             
              end
         
     | 
| 
       22 
38 
     | 
    
         | 
| 
       23 
39 
     | 
    
         
             
              class RegularPost < Post
         
     | 
| 
       24 
     | 
    
         
            -
                 
     | 
| 
      
 40 
     | 
    
         
            +
                attr_accessor :title, :body
         
     | 
| 
      
 41 
     | 
    
         
            +
                
         
     | 
| 
      
 42 
     | 
    
         
            +
                def attribute_hash
         
     | 
| 
      
 43 
     | 
    
         
            +
                  super.merge(:title => title, :body => body)
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
                
         
     | 
| 
       25 
46 
     | 
    
         
             
              end
         
     | 
| 
       26 
47 
     | 
    
         | 
| 
       27 
48 
     | 
    
         
             
              class PhotoPost < Post
         
     | 
| 
       28 
     | 
    
         
            -
                 
     | 
| 
      
 49 
     | 
    
         
            +
                attr_accessor :source, :data, :caption, :click_through_url
         
     | 
| 
      
 50 
     | 
    
         
            +
                
         
     | 
| 
      
 51 
     | 
    
         
            +
                def attribute_hash
         
     | 
| 
      
 52 
     | 
    
         
            +
                  super.merge(:source => source, :data => data, :caption => caption, :click_through_url => click_through_url)
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
                
         
     | 
| 
       29 
55 
     | 
    
         
             
              end
         
     | 
| 
       30 
56 
     | 
    
         | 
| 
       31 
57 
     | 
    
         
             
              class QuotePost < Post
         
     | 
| 
       32 
     | 
    
         
            -
                 
     | 
| 
      
 58 
     | 
    
         
            +
                attr_accessor :quote, :source
         
     | 
| 
      
 59 
     | 
    
         
            +
                
         
     | 
| 
      
 60 
     | 
    
         
            +
                def attribute_hash
         
     | 
| 
      
 61 
     | 
    
         
            +
                  super.merge(:quote => quote, :source => source)
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
                
         
     | 
| 
       33 
64 
     | 
    
         
             
              end
         
     | 
| 
       34 
65 
     | 
    
         | 
| 
       35 
66 
     | 
    
         
             
              class LinkPost < Post
         
     | 
| 
       36 
     | 
    
         
            -
                 
     | 
| 
      
 67 
     | 
    
         
            +
                attr_accessor :name, :url, :description
         
     | 
| 
      
 68 
     | 
    
         
            +
                
         
     | 
| 
      
 69 
     | 
    
         
            +
                def attribute_hash
         
     | 
| 
      
 70 
     | 
    
         
            +
                  super.merge(:name => name, :url => url, :description => description)
         
     | 
| 
      
 71 
     | 
    
         
            +
                end
         
     | 
| 
      
 72 
     | 
    
         
            +
                
         
     | 
| 
       37 
73 
     | 
    
         
             
              end
         
     | 
| 
       38 
74 
     | 
    
         | 
| 
       39 
75 
     | 
    
         
             
              class ConversationPost < Post
         
     | 
| 
       40 
     | 
    
         
            -
                 
     | 
| 
      
 76 
     | 
    
         
            +
                attr_accessor :title, :conversation
         
     | 
| 
      
 77 
     | 
    
         
            +
                
         
     | 
| 
      
 78 
     | 
    
         
            +
                def attribute_hash
         
     | 
| 
      
 79 
     | 
    
         
            +
                  super.merge(:title => title, :conversation => conversation)
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
                
         
     | 
| 
       41 
82 
     | 
    
         
             
              end
         
     | 
| 
       42 
83 
     | 
    
         | 
| 
       43 
84 
     | 
    
         
             
              class VideoPost < Post
         
     | 
| 
       44 
     | 
    
         
            -
                 
     | 
| 
      
 85 
     | 
    
         
            +
                attr_accessor :embed, :data, :title, :caption
         
     | 
| 
      
 86 
     | 
    
         
            +
                
         
     | 
| 
      
 87 
     | 
    
         
            +
                def attribute_hash
         
     | 
| 
      
 88 
     | 
    
         
            +
                  super.merge(:embed => embed, :data => data, :title => title, :caption => caption)
         
     | 
| 
      
 89 
     | 
    
         
            +
                end
         
     | 
| 
      
 90 
     | 
    
         
            +
                
         
     | 
| 
       45 
91 
     | 
    
         
             
              end
         
     | 
| 
       46 
92 
     | 
    
         | 
| 
       47 
93 
     | 
    
         
             
              class AudioPost < Post
         
     | 
| 
       48 
     | 
    
         
            -
                 
     | 
| 
      
 94 
     | 
    
         
            +
                attr_accessor :data, :caption
         
     | 
| 
      
 95 
     | 
    
         
            +
                
         
     | 
| 
      
 96 
     | 
    
         
            +
                def attribute_hash
         
     | 
| 
      
 97 
     | 
    
         
            +
                  super.merge(:data => data, :caption => caption)
         
     | 
| 
      
 98 
     | 
    
         
            +
                end
         
     | 
| 
      
 99 
     | 
    
         
            +
                
         
     | 
| 
       49 
100 
     | 
    
         
             
              end
         
     | 
| 
       50 
101 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
            end
         
     | 
| 
      
 102 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/rumblr/tumblelog.rb
    CHANGED
    
    | 
         @@ -3,12 +3,17 @@ module Rumblr 
     | 
|
| 
       3 
3 
     | 
    
         
             
              class Tumblelog < Resource
         
     | 
| 
       4 
4 
     | 
    
         
             
                attr_reader :name, :timezone, :cname, :title, :url, :avatar_url, :is_primary, 
         
     | 
| 
       5 
5 
     | 
    
         
             
                            :type, :private_id
         
     | 
| 
      
 6 
     | 
    
         
            +
                attr_accessor :user
         
     | 
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
                def posts
         
     | 
| 
       8 
9 
     | 
    
         
             
                  return [] unless self.url
         
     | 
| 
       9 
10 
     | 
    
         
             
                  log, posts = Client.instance.read(:url => self.url)
         
     | 
| 
       10 
11 
     | 
    
         
             
                  return posts
         
     | 
| 
       11 
12 
     | 
    
         
             
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def primary?
         
     | 
| 
      
 15 
     | 
    
         
            +
                  is_primary == "yes"
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
       12 
17 
     | 
    
         | 
| 
       13 
18 
     | 
    
         
             
                class << self
         
     | 
| 
       14 
19 
     | 
    
         | 
| 
         @@ -21,4 +26,4 @@ module Rumblr 
     | 
|
| 
       21 
26 
     | 
    
         | 
| 
       22 
27 
     | 
    
         
             
              end
         
     | 
| 
       23 
28 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
            end
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/rumblr/user.rb
    CHANGED
    
    
    
        data/rumblr.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,60 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Gem::Specification.new do |s|
         
     | 
| 
      
 4 
     | 
    
         
            +
              s.name = %q{rumblr}
         
     | 
| 
      
 5 
     | 
    
         
            +
              s.version = "0.0.2"
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
      
 8 
     | 
    
         
            +
              s.authors = ["Brent Hargrave", "Benny Wong"]
         
     | 
| 
      
 9 
     | 
    
         
            +
              s.date = %q{2009-05-30}
         
     | 
| 
      
 10 
     | 
    
         
            +
              s.description = %q{Ruby client for the Tumblr API}
         
     | 
| 
      
 11 
     | 
    
         
            +
              s.email = %q{brent.hargrave@gmail.com}
         
     | 
| 
      
 12 
     | 
    
         
            +
              s.extra_rdoc_files = [
         
     | 
| 
      
 13 
     | 
    
         
            +
                "LICENSE.rdoc",
         
     | 
| 
      
 14 
     | 
    
         
            +
                 "README.rdoc"
         
     | 
| 
      
 15 
     | 
    
         
            +
              ]
         
     | 
| 
      
 16 
     | 
    
         
            +
              s.files = [
         
     | 
| 
      
 17 
     | 
    
         
            +
                ".gitignore",
         
     | 
| 
      
 18 
     | 
    
         
            +
                 "LICENSE.rdoc",
         
     | 
| 
      
 19 
     | 
    
         
            +
                 "README.rdoc",
         
     | 
| 
      
 20 
     | 
    
         
            +
                 "Rakefile",
         
     | 
| 
      
 21 
     | 
    
         
            +
                 "VERSION.yml",
         
     | 
| 
      
 22 
     | 
    
         
            +
                 "lib/rumblr.rb",
         
     | 
| 
      
 23 
     | 
    
         
            +
                 "lib/rumblr/client.rb",
         
     | 
| 
      
 24 
     | 
    
         
            +
                 "lib/rumblr/post.rb",
         
     | 
| 
      
 25 
     | 
    
         
            +
                 "lib/rumblr/resource.rb",
         
     | 
| 
      
 26 
     | 
    
         
            +
                 "lib/rumblr/tumblelog.rb",
         
     | 
| 
      
 27 
     | 
    
         
            +
                 "lib/rumblr/user.rb",
         
     | 
| 
      
 28 
     | 
    
         
            +
                 "rumblr.gemspec",
         
     | 
| 
      
 29 
     | 
    
         
            +
                 "spec/rumblr/client_spec.rb",
         
     | 
| 
      
 30 
     | 
    
         
            +
                 "spec/rumblr/post_spec.rb",
         
     | 
| 
      
 31 
     | 
    
         
            +
                 "spec/rumblr/tumblelog_spec.rb",
         
     | 
| 
      
 32 
     | 
    
         
            +
                 "spec/rumblr/user_spec.rb",
         
     | 
| 
      
 33 
     | 
    
         
            +
                 "spec/spec_helper.rb"
         
     | 
| 
      
 34 
     | 
    
         
            +
              ]
         
     | 
| 
      
 35 
     | 
    
         
            +
              s.homepage = %q{http://github.com/jamescallmebrent/rumblr}
         
     | 
| 
      
 36 
     | 
    
         
            +
              s.rdoc_options = ["--charset=UTF-8"]
         
     | 
| 
      
 37 
     | 
    
         
            +
              s.require_paths = ["lib"]
         
     | 
| 
      
 38 
     | 
    
         
            +
              s.rubygems_version = %q{1.3.3}
         
     | 
| 
      
 39 
     | 
    
         
            +
              s.summary = %q{Ruby client for the Tumblr API}
         
     | 
| 
      
 40 
     | 
    
         
            +
              s.test_files = [
         
     | 
| 
      
 41 
     | 
    
         
            +
                "spec/rumblr/client_spec.rb",
         
     | 
| 
      
 42 
     | 
    
         
            +
                 "spec/rumblr/post_spec.rb",
         
     | 
| 
      
 43 
     | 
    
         
            +
                 "spec/rumblr/tumblelog_spec.rb",
         
     | 
| 
      
 44 
     | 
    
         
            +
                 "spec/rumblr/user_spec.rb",
         
     | 
| 
      
 45 
     | 
    
         
            +
                 "spec/spec_helper.rb"
         
     | 
| 
      
 46 
     | 
    
         
            +
              ]
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              if s.respond_to? :specification_version then
         
     | 
| 
      
 49 
     | 
    
         
            +
                current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
         
     | 
| 
      
 50 
     | 
    
         
            +
                s.specification_version = 3
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
         
     | 
| 
      
 53 
     | 
    
         
            +
                  s.add_runtime_dependency(%q<libxml-ruby>, [">= 0.8.3"])
         
     | 
| 
      
 54 
     | 
    
         
            +
                else
         
     | 
| 
      
 55 
     | 
    
         
            +
                  s.add_dependency(%q<libxml-ruby>, [">= 0.8.3"])
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
              else
         
     | 
| 
      
 58 
     | 
    
         
            +
                s.add_dependency(%q<libxml-ruby>, [">= 0.8.3"])
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/rumblr/client_spec.rb
    CHANGED
    
    | 
         @@ -108,4 +108,38 @@ module Rumblr 
     | 
|
| 
       108 
108 
     | 
    
         | 
| 
       109 
109 
     | 
    
         
             
              end
         
     | 
| 
       110 
110 
     | 
    
         | 
| 
      
 111 
     | 
    
         
            +
              describe Client, "writing to a public tumblelog" do
         
     | 
| 
      
 112 
     | 
    
         
            +
                
         
     | 
| 
      
 113 
     | 
    
         
            +
                before(:each) do
         
     | 
| 
      
 114 
     | 
    
         
            +
                  mock_successful(:authenticated_read)
         
     | 
| 
      
 115 
     | 
    
         
            +
                  @tumblelog, posts = @client.read( :url => 'http://dummylog.tumblr.com/', 
         
     | 
| 
      
 116 
     | 
    
         
            +
                                                    :email => 'valid',
         
     | 
| 
      
 117 
     | 
    
         
            +
                                                    :password => 'valid' )
         
     | 
| 
      
 118 
     | 
    
         
            +
                  mock_successful(:authenticated_write)
         
     | 
| 
      
 119 
     | 
    
         
            +
                end
         
     | 
| 
      
 120 
     | 
    
         
            +
                
         
     | 
| 
      
 121 
     | 
    
         
            +
                it 'should raise an ArgumentError without post' do
         
     | 
| 
      
 122 
     | 
    
         
            +
                  lambda do
         
     | 
| 
      
 123 
     | 
    
         
            +
                    @client.write(nil, {:email => 'valid', :password => 'valid'})
         
     | 
| 
      
 124 
     | 
    
         
            +
                  end.should raise_error(ArgumentError)
         
     | 
| 
      
 125 
     | 
    
         
            +
                end
         
     | 
| 
      
 126 
     | 
    
         
            +
                
         
     | 
| 
      
 127 
     | 
    
         
            +
                it 'should raise an ArgumentError if post is incorrect class' do
         
     | 
| 
      
 128 
     | 
    
         
            +
                  lambda do
         
     | 
| 
      
 129 
     | 
    
         
            +
                    @client.write("", {:email => 'valid', :password => 'valid'})
         
     | 
| 
      
 130 
     | 
    
         
            +
                  end.should raise_error(ArgumentError)
         
     | 
| 
      
 131 
     | 
    
         
            +
                end
         
     | 
| 
      
 132 
     | 
    
         
            +
                
         
     | 
| 
      
 133 
     | 
    
         
            +
                it 'should raise an ArgumentError without creds' do
         
     | 
| 
      
 134 
     | 
    
         
            +
                  lambda do
         
     | 
| 
      
 135 
     | 
    
         
            +
                    @client.write(Rumblr::Post.new, nil)
         
     | 
| 
      
 136 
     | 
    
         
            +
                  end.should raise_error(ArgumentError)
         
     | 
| 
      
 137 
     | 
    
         
            +
                end
         
     | 
| 
      
 138 
     | 
    
         
            +
                
         
     | 
| 
      
 139 
     | 
    
         
            +
                it 'should return an id' do
         
     | 
| 
      
 140 
     | 
    
         
            +
                  @client.write(Rumblr::Post.new, {:email => 'valid', :password => 'valid'}).should == "10001"
         
     | 
| 
      
 141 
     | 
    
         
            +
                end
         
     | 
| 
      
 142 
     | 
    
         
            +
                
         
     | 
| 
      
 143 
     | 
    
         
            +
              end
         
     | 
| 
      
 144 
     | 
    
         
            +
              
         
     | 
| 
       111 
145 
     | 
    
         
             
            end
         
     | 
    
        data/spec/rumblr/post_spec.rb
    CHANGED
    
    | 
         @@ -5,7 +5,7 @@ module Rumblr 
     | 
|
| 
       5 
5 
     | 
    
         
             
              describe Post, 'instances' do
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
                it 'should have attributes shared by every Post' do
         
     | 
| 
       8 
     | 
    
         
            -
                  Post.new.should respond_to(:id, :url, :type, :unix_timestamp, :date_gmt, :date, :tags, :private)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  Post.new.should respond_to(:id, :url, :type, :unix_timestamp, :date_gmt, :date, :tags, :private, :tumblelog)
         
     | 
| 
       9 
9 
     | 
    
         
             
                end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                it 'private attribute should default to false' do
         
     | 
| 
         @@ -20,6 +20,10 @@ module Rumblr 
     | 
|
| 
       20 
20 
     | 
    
         
             
                  Post.new.should respond_to(:public?)
         
     | 
| 
       21 
21 
     | 
    
         
             
                end
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
      
 23 
     | 
    
         
            +
                it 'should provide a hash of attributes and values for API' do
         
     | 
| 
      
 24 
     | 
    
         
            +
                  Post.new.should respond_to(:attribute_hash)
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
       23 
27 
     | 
    
         
             
              end
         
     | 
| 
       24 
28 
     | 
    
         | 
| 
       25 
29 
     | 
    
         
             
            end
         
     | 
| 
         @@ -35,5 +35,30 @@ module Rumblr 
     | 
|
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
              end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              describe Tumblelog, 'user' do
         
     | 
| 
      
 40 
     | 
    
         
            +
                
         
     | 
| 
      
 41 
     | 
    
         
            +
                describe 'logged in' do
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  before(:each) do
         
     | 
| 
      
 44 
     | 
    
         
            +
                    mock_successful(:authenticate)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    @user = User.login(:email => 'valid_email', :password => 'valid_password')
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  it 'should have a user associated with it' do
         
     | 
| 
      
 49 
     | 
    
         
            +
                    @user.primary_tumblelog.user.should_not be_nil
         
     | 
| 
      
 50 
     | 
    
         
            +
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
               
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                describe 'not logged in' do
         
     | 
| 
      
 55 
     | 
    
         
            +
                  
         
     | 
| 
      
 56 
     | 
    
         
            +
                  it 'should not have a user if anonymous read' do
         
     | 
| 
      
 57 
     | 
    
         
            +
                    mock_successful(:anonymous_read)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    Tumblelog.find_by_url('valid_url').user.should be_nil
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                  
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
       39 
64 
     | 
    
         
             
            end
         
     | 
    
        data/spec/rumblr/user_spec.rb
    CHANGED
    
    
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -12,8 +12,12 @@ def mock_successful(request) 
     | 
|
| 
       12 
12 
     | 
    
         
             
              }
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
              @client = Rumblr::Client.instance
         
     | 
| 
       15 
     | 
    
         
            -
               
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 15 
     | 
    
         
            +
              if request == :authenticated_write
         
     | 
| 
      
 16 
     | 
    
         
            +
                @client.stub!(:complete_request).and_return(responses_to[request])
         
     | 
| 
      
 17 
     | 
    
         
            +
              else
         
     | 
| 
      
 18 
     | 
    
         
            +
                # yes, this is cheating, but for now just concerned that xml is parsed right
         
     | 
| 
      
 19 
     | 
    
         
            +
                @client.stub!(:complete_request).and_yield(responses_to[request])
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
       17 
21 
     | 
    
         
             
            end
         
     | 
| 
       18 
22 
     | 
    
         | 
| 
       19 
23 
     | 
    
         
             
            def successful_authenticate_xml
         
     | 
| 
         @@ -98,8 +102,5 @@ def successful_authenticated_read_xml 
     | 
|
| 
       98 
102 
     | 
    
         
             
            end
         
     | 
| 
       99 
103 
     | 
    
         | 
| 
       100 
104 
     | 
    
         
             
            def successful_authenticated_write_xml
         
     | 
| 
       101 
     | 
    
         
            -
               
     | 
| 
       102 
     | 
    
         
            -
                <?xml version="1.0" encoding="UTF-8"?>
         
     | 
| 
       103 
     | 
    
         
            -
              EOF
         
     | 
| 
       104 
     | 
    
         
            -
              response.strip!
         
     | 
| 
      
 105 
     | 
    
         
            +
              "10001"
         
     | 
| 
       105 
106 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,48 +1,59 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: jamescallmebrent-rumblr
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Brent Hargrave
         
     | 
| 
      
 8 
     | 
    
         
            +
            - Benny Wong
         
     | 
| 
       8 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
12 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2009- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2009-05-30 00:00:00 -07:00
         
     | 
| 
       13 
14 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
     | 
    
         
            -
            dependencies:  
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
      
 15 
     | 
    
         
            +
            dependencies: 
         
     | 
| 
      
 16 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 17 
     | 
    
         
            +
              name: libxml-ruby
         
     | 
| 
      
 18 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 19 
     | 
    
         
            +
              version_requirement: 
         
     | 
| 
      
 20 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 21 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 22 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 23 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 24 
     | 
    
         
            +
                    version: 0.8.3
         
     | 
| 
      
 25 
     | 
    
         
            +
                version: 
         
     | 
| 
       16 
26 
     | 
    
         
             
            description: Ruby client for the Tumblr API
         
     | 
| 
       17 
27 
     | 
    
         
             
            email: brent.hargrave@gmail.com
         
     | 
| 
       18 
28 
     | 
    
         
             
            executables: []
         
     | 
| 
       19 
29 
     | 
    
         | 
| 
       20 
30 
     | 
    
         
             
            extensions: []
         
     | 
| 
       21 
31 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
            extra_rdoc_files:  
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 32 
     | 
    
         
            +
            extra_rdoc_files: 
         
     | 
| 
      
 33 
     | 
    
         
            +
            - LICENSE.rdoc
         
     | 
| 
      
 34 
     | 
    
         
            +
            - README.rdoc
         
     | 
| 
       24 
35 
     | 
    
         
             
            files: 
         
     | 
| 
      
 36 
     | 
    
         
            +
            - .gitignore
         
     | 
| 
       25 
37 
     | 
    
         
             
            - LICENSE.rdoc
         
     | 
| 
       26 
38 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
      
 39 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
       27 
40 
     | 
    
         
             
            - VERSION.yml
         
     | 
| 
       28 
     | 
    
         
            -
            - lib/rumblr
         
     | 
| 
      
 41 
     | 
    
         
            +
            - lib/rumblr.rb
         
     | 
| 
       29 
42 
     | 
    
         
             
            - lib/rumblr/client.rb
         
     | 
| 
       30 
43 
     | 
    
         
             
            - lib/rumblr/post.rb
         
     | 
| 
       31 
44 
     | 
    
         
             
            - lib/rumblr/resource.rb
         
     | 
| 
       32 
45 
     | 
    
         
             
            - lib/rumblr/tumblelog.rb
         
     | 
| 
       33 
46 
     | 
    
         
             
            - lib/rumblr/user.rb
         
     | 
| 
       34 
     | 
    
         
            -
            -  
     | 
| 
       35 
     | 
    
         
            -
            - spec/rumblr
         
     | 
| 
      
 47 
     | 
    
         
            +
            - rumblr.gemspec
         
     | 
| 
       36 
48 
     | 
    
         
             
            - spec/rumblr/client_spec.rb
         
     | 
| 
       37 
49 
     | 
    
         
             
            - spec/rumblr/post_spec.rb
         
     | 
| 
       38 
50 
     | 
    
         
             
            - spec/rumblr/tumblelog_spec.rb
         
     | 
| 
       39 
51 
     | 
    
         
             
            - spec/rumblr/user_spec.rb
         
     | 
| 
       40 
52 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       41 
     | 
    
         
            -
            has_rdoc:  
     | 
| 
      
 53 
     | 
    
         
            +
            has_rdoc: false
         
     | 
| 
       42 
54 
     | 
    
         
             
            homepage: http://github.com/jamescallmebrent/rumblr
         
     | 
| 
       43 
55 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       44 
56 
     | 
    
         
             
            rdoc_options: 
         
     | 
| 
       45 
     | 
    
         
            -
            - --inline-source
         
     | 
| 
       46 
57 
     | 
    
         
             
            - --charset=UTF-8
         
     | 
| 
       47 
58 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       48 
59 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -63,7 +74,11 @@ requirements: [] 
     | 
|
| 
       63 
74 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       64 
75 
     | 
    
         
             
            rubygems_version: 1.2.0
         
     | 
| 
       65 
76 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       66 
     | 
    
         
            -
            specification_version:  
     | 
| 
      
 77 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
       67 
78 
     | 
    
         
             
            summary: Ruby client for the Tumblr API
         
     | 
| 
       68 
     | 
    
         
            -
            test_files:  
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
      
 79 
     | 
    
         
            +
            test_files: 
         
     | 
| 
      
 80 
     | 
    
         
            +
            - spec/rumblr/client_spec.rb
         
     | 
| 
      
 81 
     | 
    
         
            +
            - spec/rumblr/post_spec.rb
         
     | 
| 
      
 82 
     | 
    
         
            +
            - spec/rumblr/tumblelog_spec.rb
         
     | 
| 
      
 83 
     | 
    
         
            +
            - spec/rumblr/user_spec.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
            - spec/spec_helper.rb
         
     |