[DRE-commits] [SCM] ruby-twitter-oauth.git branch, master, updated. upstream/0.4.3-9-g53db33d

Youhei SASAKI uwabami at gfd-dennou.org
Wed Jun 19 09:25:01 UTC 2013


The following commit has been merged in the master branch:
commit 2794e65d97b2cf7c9e7da9a15a1a4976ff53039c
Author: Youhei SASAKI <uwabami at gfd-dennou.org>
Date:   Wed Jun 19 18:07:38 2013 +0900

    Imported Upstream version 0.4.93

diff --git a/README.textile b/README.textile
index 5a06c26..e36b16d 100644
--- a/README.textile
+++ b/README.textile
@@ -1,8 +1,14 @@
 h1. Twitter OAuth REST API client library for Ruby
 
+h2. Current Status
+
+Twitter turned off access to the v1 API so this project is currently migrating to v1.1.  Unfortunately everything is not backward-compatible.
+
+The v.0.4.9x series of this gem is work in progress getting the library compatible with Twitter v1.1 - when complete we will push v0.5.0 of this library.
+
 h2. Install the gem
 
-sudo gem install twitter_oauth # (via gemcutter)
+gem 'twitter_oauth'
 
 h2. Using the gem
 
@@ -12,24 +18,7 @@ See "sinitter":http://github.com/moomerman/sinitter/tree/master for a full websi
 
 h2. Unauthorized request example
 
-The Twitter API can be called to make public requests without needing any client credentials.
-Most methods will not work in this mode but some of them do.  An example to retrieve the public details
-about a Twitter user is below. 
-
-<pre><code>client = TwitterOAuth::Client.new  
-
-puts client.show('twitter')
-=> => {"status"=>{"truncated"=>false, "favorited"=>false, "text"=>"Update on service issues http://tinyurl.com/ca872j", "id"=>1357776683, "in_reply_to_user_id"=>nil, "in_reply_to_status_id"=>nil, "source"=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>", "created_at"=>"Fri Mar 20 01:17:35 +0000 2009"}, "name"=>"Twitter", "profile_sidebar_fill_color"=>"CDFFFF", "profile_sidebar_border_color"=>"8a6447", "profile_background_tile"=>false, "profile_link_color"=>"0000ff", "url"=>"http://twitter.com", "favourites_count"=>0, "id"=>783214, "description"=>"Always wondering what everyone's doing.", "profile_text_color"=>"000000", "protected"=>false, "utc_offset"=>-28800, "screen_name"=>"twitter", "profile_background_color"=>"9ae4e8", "time_zone"=>"Pacific Time (US & Canada)", "followers_count"=>469150, "profile_background_image_url"=>"http://static.twitter.com/images/themes/theme1/bg.gif", "friends_count"=>30, "statuses_count"=>290, "location"=>"San Francisco, CA", "profile_image_url"=>"http://s3.amazonaws.com/twitter_production/profile_images/75075164/twitter_bird_profile_normal.png", "created_at"=>"Tue Feb 20 14:35:54 +0000 2007"}
-</code></pre>
-
-You can also access to the search API which is available in either authorized or unauthorized modes.
-
-<pre><code>search = client.search('twitter')
-search.results.size => 20
-search.results.first.from_user => "josephpred"
-search.results.first.text
-=> "Useful public service Twitter account for those of you hitting Tahoe or just needing to cross the pass to Reno: @i80chains"
-</code></pre>
+Since Twitter API v1.1 all requests are required to be authorized.
 
 h2. Authorized request example
 
@@ -41,10 +30,10 @@ when you set up your application.
 
 <pre><code>client = TwitterOAuth::Client.new(
     :consumer_key => 'YOUR_APP_CONSUMER_KEY',
-    :consumer_secret => 'YOURA_APP_CONSUMER_SECRET'
+    :consumer_secret => 'YOUR_APP_CONSUMER_SECRET'
 )
 request_token = client.request_token(:oauth_callback => oauth_confirm_url)
-#:oauth_callback required for web apps, since oauth gem by default force PIN-based flow 
+#:oauth_callback required for web apps, since oauth gem by default force PIN-based flow
 #( see http://groups.google.com/group/twitter-development-talk/browse_thread/thread/472500cfe9e7cdb9/848f834227d3e64d )
 
 
@@ -55,6 +44,8 @@ request_token.authorize_url
 In your application your user would be redirected to Twitter to authorize the application at this point.  You'll need to store
 the request token (usually in the session) for later.  The code continues below assuming the user has authorized your application.
 
+NOTE: Above we called the <code>client.request_token(...)</code> method, this authorizes the application on every call.  You can also use the <code>client.authentication_request_token(...)</code> method which automatically redirects back to your application if the user has previously authorized the app.
+
 <pre><code>access_token = client.authorize(
   request_token.token,
   request_token.secret,
@@ -72,8 +63,8 @@ Now if you keep hold of the access_token (usually in the database) for this user
 <pre><code>access_token = @user.access_token # assuming @user
 client = TwitterOAuth::Client.new(
     :consumer_key => 'YOUR_CONSUMER_KEY',
-    :consumer_secret => 'YOUR-CONSUMER-SECRET',
-    :token => access_token.token, 
+    :consumer_secret => 'YOUR_APP_CONSUMER_SECRET',
+    :token => access_token.token,
     :secret => access_token.secret
 )
 
@@ -81,6 +72,36 @@ client.authorized?
 => true
 </code></pre>
 
+h2. PIN-based flow
+
+If you're writing a command line application or desktop app, you will probably want to use the PIN-based authorization method rather than the website redirect method.
+
+<pre><code>client = TwitterOAuth::Client.new(
+  :consumer_key => 'YOUR_CONSUMER_KEY',
+  :consumer_secret => 'YOUR_APP_CONSUMER_SECRET'
+)
+
+request_token = client.authentication_request_token(
+  :oauth_callback => 'oob'
+)
+
+puts request_token.authorize_url
+
+print 'Please visit the URL and enter the code: '
+code = gets.strip
+
+access_token = client.authorize(
+  request_token.token,
+  request_token.secret,
+  :oauth_verifier => code
+)
+
+client.authorized?
+=> true
+</code></pre>
+
+The special oauth callback value of <code>oob</code> tells Twitter you want to do the PIN-based authentication.  The user goes to the authorization URL to get their unique code and they paste that into your application.  Finally we authorize the user with this code.
+
 h2. Working with a Proxy
 
 Services such as "Apigee Analytics and API Management":http://apigee.com/ require you to proxy your API requests through their servers.  The workflow is as follows.
@@ -116,7 +137,7 @@ client = TwitterOAuth::Client.new(
     :proxy => 'http://XXX.YYY.apigee.com',
     :consumer_key => 'YOUR_CONSUMER_KEY',
     :consumer_secret => 'YOUR-CONSUMER-SECRET',
-    :token => access_token.token, 
+    :token => access_token.token,
     :secret => access_token.secret
 )
 
diff --git a/checksums.yaml.gz b/checksums.yaml.gz
new file mode 100644
index 0000000..bb69709
Binary files /dev/null and b/checksums.yaml.gz differ
diff --git a/lib/twitter_oauth.rb b/lib/twitter_oauth.rb
index 527a542..f6aaaad 100644
--- a/lib/twitter_oauth.rb
+++ b/lib/twitter_oauth.rb
@@ -5,5 +5,5 @@ require 'mime/types'
 require 'twitter_oauth/client'
 
 module TwitterOAuth
-  VERSION = '0.4.3'
+  VERSION = '0.4.93'
 end
diff --git a/lib/twitter_oauth/account.rb b/lib/twitter_oauth/account.rb
index 167e210..4080eb2 100644
--- a/lib/twitter_oauth/account.rb
+++ b/lib/twitter_oauth/account.rb
@@ -1,43 +1,38 @@
 module TwitterOAuth
   class Client
-    
-    # Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful; 
+
+    # Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful;
     # returns a 401 status code and an error message if not.
     def authorized?
-      oauth_response = access_token.get('/account/verify_credentials.json')
+      puts "[Client] GET /account/verify_credentials.json" if @debug
+      oauth_response = access_token.get("/#{@api_version}/account/verify_credentials.json")
       return oauth_response.class == Net::HTTPOK
     end
-    
-    # Returns client info
+
     def info
       get('/account/verify_credentials.json')
     end
-    
-    # Returns the remaining number of API requests available to the requesting user before the API limit is reached for the current hour.
-    def rate_limit_status
-      get('/account/rate_limit_status.json')
-    end
-    
+
     # Updates profile background image. Takes a File object and optional tile argument.
     # Returns extended user info object.
     def update_profile_background_image(image, tile = false)
       body, headers = http_multipart_data({:image => image, :tile => tile})
       post('/account/update_profile_background_image.json', body, headers)
     end
-    
+
     # Updates profile avatar image. Takes a File object which should be an image.
     # Returns extended user info object.
     def update_profile_image(image)
       body, headers = http_multipart_data({:image => image})
       post('/account/update_profile_image.json', body, headers)
     end
-    
-    # colors hash must contain at least one or more of the following keys :profile_background_color, :profile_text_color, :profile_link_color, :profile_sidebar_fill_color, :profile_sidebar_border_color 
+
+    # colors hash must contain at least one or more of the following keys :profile_background_color, :profile_text_color, :profile_link_color, :profile_sidebar_fill_color, :profile_sidebar_border_color
     # returns extended user info object.
     def update_profile_colors(colors)
       post('/account/update_profile_colors.json', colors)
     end
-    
+
     # Sets values that users are able to set under the "Account" tab of their settings page.
     # Valid parameters are:
     #   :name     Full name associated with the profile. Maximum of 20 characters.
@@ -48,6 +43,6 @@ module TwitterOAuth
     def update_profile(params)
       post('/account/update_profile', params)
     end
-    
+
   end
 end
diff --git a/lib/twitter_oauth/client.rb b/lib/twitter_oauth/client.rb
index 73bba91..47e56b2 100644
--- a/lib/twitter_oauth/client.rb
+++ b/lib/twitter_oauth/client.rb
@@ -14,18 +14,22 @@ require 'twitter_oauth/lists'
 require 'twitter_oauth/saved_searches'
 require 'twitter_oauth/spam'
 require 'twitter_oauth/geo'
+require 'twitter_oauth/help'
 
 module TwitterOAuth
   class Client
-    
+
     def initialize(options = {})
       @consumer_key = options[:consumer_key]
       @consumer_secret = options[:consumer_secret]
       @token = options[:token]
       @secret = options[:secret]
       @proxy = options[:proxy]
+      @debug = options[:debug]
+      @api_version = options[:api_version] || '1.1'
+      @api_host = options[:api_host] || 'api.twitter.com'
     end
-  
+
     def authorize(token, secret, options = {})
       request_token = OAuth::RequestToken.new(
         consumer, token, secret
@@ -35,56 +39,62 @@ module TwitterOAuth
       @secret = @access_token.secret
       @access_token
     end
-  
+
     def show(username)
       get("/users/show/#{username}.json")
     end
-    
-    # Returns the string "ok" in the requested format with a 200 OK HTTP status code.
-    def test
-      get("/help/test.json")
-    end
-    
+
     def request_token(options={})
       consumer.get_request_token(options)
     end
-    
+
     def authentication_request_token(options={})
       consumer.options[:authorize_path] = '/oauth/authenticate'
       request_token(options)
     end
-    
+
     private
-    
-      def consumer
+
+      def consumer(options={})
         @consumer ||= OAuth::Consumer.new(
           @consumer_key,
           @consumer_secret,
-          { :site => 'http://api.twitter.com', :request_endpoint => @proxy }
+          { :site => "https://#{@api_host}", :request_endpoint => @proxy }
         )
       end
 
       def access_token
         @access_token ||= OAuth::AccessToken.new(consumer, @token, @secret)
       end
-      
+
       def get(path, headers={})
+        puts "[Client] GET #{path}" if @debug
         headers.merge!("User-Agent" => "twitter_oauth gem v#{TwitterOAuth::VERSION}")
-        oauth_response = access_token.get("/1#{path}", headers)
-        JSON.parse(oauth_response.body)
+        oauth_response = access_token.get("/#{@api_version}#{path}", headers)
+        parse(oauth_response.body)
       end
 
       def post(path, body='', headers={})
+        puts "[Client] POST #{path}" if @debug
         headers.merge!("User-Agent" => "twitter_oauth gem v#{TwitterOAuth::VERSION}")
-        oauth_response = access_token.post("/1#{path}", body, headers)
-        JSON.parse(oauth_response.body)
+        oauth_response = access_token.post("/#{@api_version}#{path}", body, headers)
+        parse(oauth_response.body)
       end
 
       def delete(path, headers={})
+        puts "[Client] DELETE #{path}" if @debug
         headers.merge!("User-Agent" => "twitter_oauth gem v#{TwitterOAuth::VERSION}")
-        oauth_response = access_token.delete("/1#{path}", headers)
-        JSON.parse(oauth_response.body)
+        oauth_response = access_token.delete("/#{@api_version}#{path}", headers)
+        parse(oauth_response.body)
+      end
+
+      def parse(response_body)
+        begin
+          JSON.parse(response_body)
+        rescue JSON::ParserError
+          {:response => response_body}.to_json
+        end
       end
   end
 end
-   
+
diff --git a/lib/twitter_oauth/friendships.rb b/lib/twitter_oauth/friendships.rb
index aa59009..83ecf6b 100644
--- a/lib/twitter_oauth/friendships.rb
+++ b/lib/twitter_oauth/friendships.rb
@@ -1,39 +1,73 @@
 module TwitterOAuth
   class Client
-    
+
     # Returns an array of numeric IDs for every user the specified user is following.
     def friends_ids(options={})
       args = options.map{|k,v| "#{k}=#{v}"}.join('&')
       get("/friends/ids.json?#{args}")
     end
-    
+
     # Returns an array of numeric IDs for every user following the specified user.
     def followers_ids(options={})
       args = options.map{|k,v| "#{k}=#{v}"}.join('&')
       get("/followers/ids.json?#{args}")
     end
-    
+
     # Allows the authenticating user to follow the specified user. Returns the befriended user when successful.
     def friend(id)
       post("/friendships/create/#{id}.json")
     end
-    
-    # Allows the authenticating users to unfollow the specified user. Returns the unfollowed user when successful. 
+
+    # Allows the authenticating users to unfollow the specified user. Returns the unfollowed user when successful.
     def unfriend(id)
       post("/friendships/destroy/#{id}.json")
     end
-    
+
     # Tests for the existence of friendship between two users. Will return true if user_a follows user_b, otherwise will return false.
     # You are better off using get_friendship as it returns more extended information.
     def friends?(a, b)
       oauth_response = access_token.get("/friendships/exists.json?user_a=#{a}&user_b=#{b}")
       oauth_response.body.strip == 'true'
     end
-    
+
     # Returns detailed information about the relationship between two users.
     def get_friendship(a, b)
       get("/friendships/show.json?source_screen_name=#{a}&target_screen_name=#{b}")
     end
-    
+
+    # Returns a cursored collection of user objects for every user the specified
+    # user is following (otherwise known as their "friends")
+    def friends(cursor=-1)
+      get("/friends/list.json?cursor=#{cursor}")
+    end
+
+    # Helper to retrun all friends via multiple requests
+    def all_friends(cursor=-1)
+      users = []
+      while cursor != 0 do
+        json = friends(cursor)
+        cursor = json["next_cursor"]
+        users += json["users"]
+      end
+      users
+    end
+
+    # Returns a cursored collection of user objects for users following the
+    # specified user.
+    def followers(cursor=-1)
+      get("/followers/list.json?cursor=#{cursor}")
+    end
+
+    # Helper to retrun all followers via multiple requests
+    def all_followers(cursor=-1)
+      users = []
+      while cursor != 0 do
+        json = followers(cursor)
+        cursor = json["next_cursor"]
+        users += json["users"]
+      end
+      users
+    end
+
   end
 end
diff --git a/lib/twitter_oauth/help.rb b/lib/twitter_oauth/help.rb
new file mode 100644
index 0000000..d6f807c
--- /dev/null
+++ b/lib/twitter_oauth/help.rb
@@ -0,0 +1,14 @@
+module TwitterOAuth
+  class Client
+
+    # Returns the current rate limits for methods belonging to the specified
+    # resource families. Each 1.1 API resource belongs to a "resource family"
+    # which is indicated in its method documentation. You can typically
+    # determine a method's resource family from the first component of the path
+    # after the...
+    def rate_limit_status
+      get('/application/rate_limit_status.json')
+    end
+
+  end
+end
\ No newline at end of file
diff --git a/lib/twitter_oauth/search.rb b/lib/twitter_oauth/search.rb
index 82739e7..fc218a3 100644
--- a/lib/twitter_oauth/search.rb
+++ b/lib/twitter_oauth/search.rb
@@ -2,34 +2,13 @@ require 'open-uri'
 
 module TwitterOAuth
   class Client
-    
+
     def search(q, options={})
-      options[:page] ||= 1
-      options[:rpp] ||= 20
+      options[:count] ||= 20
       options[:q] = URI.escape(q)
       args = options.map{|k,v| "#{k}=#{v}"}.join('&')
-      search_get("/search.json?#{args}")
-    end
-    
-    # Returns the current top 10 trending topics on Twitter.
-    def current_trends
-      search_get("/trends/current.json")
-    end
-    
-    # Returns the top 20 trending topics for each hour in a given day.
-    def daily_trends
-      search_get("/trends/daily.json")
+      get("/search/tweets.json?#{args}")
     end
-    
-    # Returns the top 30 trending topics for each day in a given week.
-    def weekly_trends
-      search_get("/trends/weekly.json")
-    end
-    
-    private
-      def search_get(path)
-        response = open('http://search.twitter.com' + path, 'User-Agent' => 'github.com/moomerman/twitter_outh')
-        JSON.parse(response.read)
-      end
+
   end
 end
\ No newline at end of file
diff --git a/lib/twitter_oauth/timeline.rb b/lib/twitter_oauth/timeline.rb
index 6cc3f3a..a9e6b02 100644
--- a/lib/twitter_oauth/timeline.rb
+++ b/lib/twitter_oauth/timeline.rb
@@ -30,7 +30,7 @@ module TwitterOAuth
     # Returns the 20 most recent @replies (status updates prefixed with @username) for the authenticating user.
     def mentions(options={})
       args = options.map{|k,v| "#{k}=#{v}"}.join('&')
-      get("/statuses/mentions.json?#{args}")
+      get("/statuses/mentions_timeline.json?#{args}")
     end
     alias :replies :mentions
     
diff --git a/lib/twitter_oauth/trends.rb b/lib/twitter_oauth/trends.rb
index 4f05378..71607d0 100644
--- a/lib/twitter_oauth/trends.rb
+++ b/lib/twitter_oauth/trends.rb
@@ -1,25 +1,31 @@
 module TwitterOAuth
   class Client
-    
-    # Returns the top ten topics that are currently trending on Twitter.
-    def trends
-      get("/trends.json")
+
+    # Returns the top 10 trending topics for a specific WOEID, if trending
+    # information is available for it. The response is an array of "trend"
+    # objects that encode the name of the trending topic, the query parameter
+    # that can be used to search for the topic on Twitter Search, and the
+    # Twitter Search URL....
+    def place_trends
+      get("/trends/place.json")
     end
-    
-    # Returns the locations that Twitter has trending topic information for. 
-    # The response is an array of "locations" that encode the location's WOEID (a Yahoo! Where On Earth ID)
-    # and some other human-readable information such as a canonical name and country the location belongs in.
-    def trends_available
+
+    # Returns the locations that Twitter has trending topic information for. The
+    # response is an array of "locations" that encode the location's WOEID and
+    # some other human-readable information such as a canonical name and country
+    # the location belongs in. A WOEID is a Yahoo! Where On Earth ID.
+    def available_trends
       get("/trends/available.json")
     end
-    
-    # Returns the top 10 trending topics for a specific location Twitter has trending topic information for. 
-    # The response is an array of "trend" objects that encode the name of the trending topic, the query 
-    # parameter that can be used to search for the topic on Search, and the direct URL that can be issued against Search. 
-    # This information is cached for five minutes, and therefore users are discouraged from querying these endpoints 
-    # faster than once every five minutes.  Global trends information is also available from this API by using a WOEID of 1.
-    def trends_for_location(woeid)
-      get("/trends/woeid.json")
+
+    # Returns the locations that Twitter has trending topic information for,
+    # closest to a specified location. The response is an array of "locations"
+    # that encode the location's WOEID and some other human-readable information
+    # such as a canonical name and country the location belongs in.
+    # A WOEID is a Yahoo...
+    def closest_trends
+      get("/trends/closest.json")
     end
+
   end
 end
\ No newline at end of file
diff --git a/lib/twitter_oauth/user.rb b/lib/twitter_oauth/user.rb
index 318e760..1d2a25f 100644
--- a/lib/twitter_oauth/user.rb
+++ b/lib/twitter_oauth/user.rb
@@ -1,59 +1,18 @@
 module TwitterOAuth
   class Client
-     
-    # Returns the 100 last friends
-    # The page parameter is implemented for legacy reasons, but use of this is slow
-    # as passing page is no longer supported by the Twitter API as the use of cursors
-    # is now obligitory. It is recommended that you use all_friends instead
-    def friends(page=1)
-      return get("/statuses/friends.json?page=#{page}") if page == 1
-      users = []
-      cursor = "-1"
-      page.times do 
-        return [] if cursor == 0 
-        json = get("/statuses/friends.json?cursor=#{cursor}")
-        cursor = json["next_cursor"]
-        users = json["users"]
-      end
-      users
-    end 
 
-    # Returns all pages of friends
-    def all_friends
-      users = []
-      cursor = "-1"
-      while cursor != 0 do 
-        json = get("/statuses/friends.json?cursor=#{cursor}")
-        cursor = json["next_cursor"]
-        users += json["users"]
-      end
-      users
+    # Returns settings (including current trend, geo and sleep time information)
+    # for the authenticating user.
+    def settings
+      get('/account/settings.json')
     end
-    
-    # Returns the 100 last followers
-    def followers(page=1)
-      return get("/statuses/followers.json?page=#{page}") if page == 1
-      users = []
-      cursor = "-1"
-      page.times do 
-        return [] if cursor == 0 
-        json = get("/statuses/followers.json?cursor=#{cursor}")
-        cursor = json["next_cursor"]
-        users = json["users"]
-      end
-      users
-    end 
 
-    # Returns all pages of followers
-    def all_followers
-      users = []
-      cursor = "-1"
-      while cursor != 0 do 
-        json = get("/statuses/followers.json?cursor=#{cursor}")
-        cursor = json["next_cursor"]
-        users += json["users"]
-      end
-      users
+    # Returns an HTTP 200 OK response code and a representation of the
+    # requesting user if authentication was successful; returns a 401 status
+    # code and an error message if not. Use this method to test if supplied user
+    # credentials are valid.
+    def verify_credentials
+      get('/account/verify_credentials.json')
     end
 
   end
diff --git a/metadata.yml b/metadata.yml
index 41a6a3b..9216e2e 100644
--- a/metadata.yml
+++ b/metadata.yml
@@ -1,76 +1,91 @@
---- !ruby/object:Gem::Specification 
+--- !ruby/object:Gem::Specification
 name: twitter_oauth
-version: !ruby/object:Gem::Version 
-  version: 0.4.3
+version: !ruby/object:Gem::Version
+  version: 0.4.93
 platform: ruby
-authors: 
+authors:
 - Richard Taylor
 autorequire: 
 bindir: bin
 cert_chain: []
-
-date: 2010-08-11 00:00:00 +01:00
-default_executable: 
-dependencies: 
-- !ruby/object:Gem::Dependency 
+date: 2013-06-12 00:00:00.000000000 Z
+dependencies:
+- !ruby/object:Gem::Dependency
   name: oauth
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: 0.4.7
   type: :runtime
-  version_requirement: 
-  version_requirements: !ruby/object:Gem::Requirement 
-    requirements: 
-    - - ">="
-      - !ruby/object:Gem::Version 
-        version: 0.4.1
-    version: 
-- !ruby/object:Gem::Dependency 
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: 0.4.7
+- !ruby/object:Gem::Dependency
   name: json
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: 1.8.0
   type: :runtime
-  version_requirement: 
-  version_requirements: !ruby/object:Gem::Requirement 
-    requirements: 
-    - - ">="
-      - !ruby/object:Gem::Version 
-        version: 1.1.9
-    version: 
-- !ruby/object:Gem::Dependency 
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: 1.8.0
+- !ruby/object:Gem::Dependency
   name: mime-types
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: '1.16'
   type: :runtime
-  version_requirement: 
-  version_requirements: !ruby/object:Gem::Requirement 
-    requirements: 
-    - - ">="
-      - !ruby/object:Gem::Version 
-        version: "1.16"
-    version: 
-- !ruby/object:Gem::Dependency 
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: '1.16'
+- !ruby/object:Gem::Dependency
   name: shoulda
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: '0'
   type: :development
-  version_requirement: 
-  version_requirements: !ruby/object:Gem::Requirement 
-    requirements: 
-    - - ">="
-      - !ruby/object:Gem::Version 
-        version: "0"
-    version: 
-- !ruby/object:Gem::Dependency 
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: '0'
+- !ruby/object:Gem::Dependency
   name: mocha
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: '0'
   type: :development
-  version_requirement: 
-  version_requirements: !ruby/object:Gem::Requirement 
-    requirements: 
-    - - ">="
-      - !ruby/object:Gem::Version 
-        version: "0"
-    version: 
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - '>='
+      - !ruby/object:Gem::Version
+        version: '0'
 description: twitter_oauth is a Ruby client for the Twitter API using OAuth.
 email: moomerman at gmail.com
 executables: []
-
 extensions: []
-
 extra_rdoc_files: []
-
-files: 
+files:
 - LICENSE
 - README.textile
 - lib/twitter_oauth.rb
@@ -81,6 +96,7 @@ files:
 - lib/twitter_oauth/favorites.rb
 - lib/twitter_oauth/friendships.rb
 - lib/twitter_oauth/geo.rb
+- lib/twitter_oauth/help.rb
 - lib/twitter_oauth/lists.rb
 - lib/twitter_oauth/notifications.rb
 - lib/twitter_oauth/saved_searches.rb
@@ -91,34 +107,29 @@ files:
 - lib/twitter_oauth/trends.rb
 - lib/twitter_oauth/user.rb
 - lib/twitter_oauth/utils.rb
-has_rdoc: true
 homepage: http://github.com/moomerman/twitter_oauth
 licenses: []
-
+metadata: {}
 post_install_message: 
-rdoc_options: 
+rdoc_options:
 - --inline-source
 - --charset=UTF-8
-require_paths: 
+require_paths:
 - lib
-required_ruby_version: !ruby/object:Gem::Requirement 
-  requirements: 
-  - - ">="
-    - !ruby/object:Gem::Version 
-      version: "0"
-  version: 
-required_rubygems_version: !ruby/object:Gem::Requirement 
-  requirements: 
-  - - ">="
-    - !ruby/object:Gem::Version 
-      version: "0"
-  version: 
+required_ruby_version: !ruby/object:Gem::Requirement
+  requirements:
+  - - '>='
+    - !ruby/object:Gem::Version
+      version: '0'
+required_rubygems_version: !ruby/object:Gem::Requirement
+  requirements:
+  - - '>='
+    - !ruby/object:Gem::Version
+      version: '0'
 requirements: []
-
 rubyforge_project: twitter_oauth
-rubygems_version: 1.3.5
+rubygems_version: 2.0.0
 signing_key: 
 specification_version: 2
 summary: twitter_oauth is a Ruby client for the Twitter API using OAuth.
 test_files: []
-

-- 
ruby-twitter-oauth.git



More information about the Pkg-ruby-extras-commits mailing list