twitter_oauth 0.4.4 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 639d2e417aaee45051563ee329334f846269208a
4
+ data.tar.gz: fbacee9a0cca0bc7ee3548a6597442d6dac3abe8
5
+ SHA512:
6
+ metadata.gz: 6e37581314f14bb089f61d7b20415bbe39803c54d312132ab9e23d1fb4455351b12ddfbc2c5cf54a1bc7c18328e838c81acc9df003cc1921055c703bc867c743
7
+ data.tar.gz: 34eeb8f1a635194f04b3a716cd57c5d2d46740e1acc9953c6b1a207c1978d0e0e2129ae0827602d7cbe0ba80c2fb07a83d718dadbe9c8f94fa56226f848ba970
@@ -14,9 +14,9 @@ h2. Unauthorized request example
14
14
 
15
15
  The Twitter API can be called to make public requests without needing any client credentials.
16
16
  Most methods will not work in this mode but some of them do. An example to retrieve the public details
17
- about a Twitter user is below.
17
+ about a Twitter user is below.
18
18
 
19
- <pre><code>client = TwitterOAuth::Client.new
19
+ <pre><code>client = TwitterOAuth::Client.new
20
20
 
21
21
  puts client.show('twitter')
22
22
  => => {"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"}
@@ -41,10 +41,10 @@ when you set up your application.
41
41
 
42
42
  <pre><code>client = TwitterOAuth::Client.new(
43
43
  :consumer_key => 'YOUR_APP_CONSUMER_KEY',
44
- :consumer_secret => 'YOURA_APP_CONSUMER_SECRET'
44
+ :consumer_secret => 'YOUR_APP_CONSUMER_SECRET'
45
45
  )
46
46
  request_token = client.request_token(:oauth_callback => oauth_confirm_url)
47
- #:oauth_callback required for web apps, since oauth gem by default force PIN-based flow
47
+ #:oauth_callback required for web apps, since oauth gem by default force PIN-based flow
48
48
  #( see http://groups.google.com/group/twitter-development-talk/browse_thread/thread/472500cfe9e7cdb9/848f834227d3e64d )
49
49
 
50
50
 
@@ -55,6 +55,8 @@ request_token.authorize_url
55
55
  In your application your user would be redirected to Twitter to authorize the application at this point. You'll need to store
56
56
  the request token (usually in the session) for later. The code continues below assuming the user has authorized your application.
57
57
 
58
+ 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.
59
+
58
60
  <pre><code>access_token = client.authorize(
59
61
  request_token.token,
60
62
  request_token.secret,
@@ -72,8 +74,8 @@ Now if you keep hold of the access_token (usually in the database) for this user
72
74
  <pre><code>access_token = @user.access_token # assuming @user
73
75
  client = TwitterOAuth::Client.new(
74
76
  :consumer_key => 'YOUR_CONSUMER_KEY',
75
- :consumer_secret => 'YOUR-CONSUMER-SECRET',
76
- :token => access_token.token,
77
+ :consumer_secret => 'YOUR_APP_CONSUMER_SECRET',
78
+ :token => access_token.token,
77
79
  :secret => access_token.secret
78
80
  )
79
81
 
@@ -81,6 +83,36 @@ client.authorized?
81
83
  => true
82
84
  </code></pre>
83
85
 
86
+ h2. PIN-based flow
87
+
88
+ 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.
89
+
90
+ <pre><code>client = TwitterOAuth::Client.new(
91
+ :consumer_key => 'YOUR_CONSUMER_KEY',
92
+ :consumer_secret => 'YOUR_APP_CONSUMER_SECRET'
93
+ )
94
+
95
+ request_token = client.authentication_request_token(
96
+ :oauth_callback => 'oob'
97
+ )
98
+
99
+ puts request_token.authorize_url
100
+
101
+ print 'Please visit the URL and enter the code: '
102
+ code = gets.strip
103
+
104
+ access_token = client.authorize(
105
+ request_token.token,
106
+ request_token.secret,
107
+ :oauth_verifier => code
108
+ )
109
+
110
+ client.authorized?
111
+ => true
112
+ </code></pre>
113
+
114
+ 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.
115
+
84
116
  h2. Working with a Proxy
85
117
 
86
118
  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 +148,7 @@ client = TwitterOAuth::Client.new(
116
148
  :proxy => 'http://XXX.YYY.apigee.com',
117
149
  :consumer_key => 'YOUR_CONSUMER_KEY',
118
150
  :consumer_secret => 'YOUR-CONSUMER-SECRET',
119
- :token => access_token.token,
151
+ :token => access_token.token,
120
152
  :secret => access_token.secret
121
153
  )
122
154
 
@@ -5,5 +5,5 @@ require 'mime/types'
5
5
  require 'twitter_oauth/client'
6
6
 
7
7
  module TwitterOAuth
8
- VERSION = '0.4.4'
8
+ VERSION = '0.4.9'
9
9
  end
@@ -4,20 +4,11 @@ module TwitterOAuth
4
4
  # Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful;
5
5
  # returns a 401 status code and an error message if not.
6
6
  def authorized?
7
- oauth_response = access_token.get('/1/account/verify_credentials.json')
7
+ puts "[Client] GET /account/verify_credentials.json" if @debug
8
+ oauth_response = access_token.get("/#{@api_version}/account/verify_credentials.json")
8
9
  return oauth_response.class == Net::HTTPOK
9
10
  end
10
11
 
11
- # Returns client info
12
- def info
13
- get('/account/verify_credentials.json')
14
- end
15
-
16
- # Returns the remaining number of API requests available to the requesting user before the API limit is reached for the current hour.
17
- def rate_limit_status
18
- get('/account/rate_limit_status.json')
19
- end
20
-
21
12
  # Updates profile background image. Takes a File object and optional tile argument.
22
13
  # Returns extended user info object.
23
14
  def update_profile_background_image(image, tile = false)
@@ -14,18 +14,22 @@ require 'twitter_oauth/lists'
14
14
  require 'twitter_oauth/saved_searches'
15
15
  require 'twitter_oauth/spam'
16
16
  require 'twitter_oauth/geo'
17
+ require 'twitter_oauth/help'
17
18
 
18
19
  module TwitterOAuth
19
20
  class Client
20
-
21
+
21
22
  def initialize(options = {})
22
23
  @consumer_key = options[:consumer_key]
23
24
  @consumer_secret = options[:consumer_secret]
24
25
  @token = options[:token]
25
26
  @secret = options[:secret]
26
27
  @proxy = options[:proxy]
28
+ @debug = options[:debug]
29
+ @api_version = options[:api_version] || '1.1'
30
+ @api_host = options[:api_host] || 'api.twitter.com'
27
31
  end
28
-
32
+
29
33
  def authorize(token, secret, options = {})
30
34
  request_token = OAuth::RequestToken.new(
31
35
  consumer, token, secret
@@ -35,56 +39,62 @@ module TwitterOAuth
35
39
  @secret = @access_token.secret
36
40
  @access_token
37
41
  end
38
-
42
+
39
43
  def show(username)
40
44
  get("/users/show/#{username}.json")
41
45
  end
42
-
43
- # Returns the string "ok" in the requested format with a 200 OK HTTP status code.
44
- def test
45
- get("/help/test.json")
46
- end
47
-
46
+
48
47
  def request_token(options={})
49
48
  consumer.get_request_token(options)
50
49
  end
51
-
50
+
52
51
  def authentication_request_token(options={})
53
52
  consumer.options[:authorize_path] = '/oauth/authenticate'
54
53
  request_token(options)
55
54
  end
56
-
55
+
57
56
  private
58
-
59
- def consumer
57
+
58
+ def consumer(options={})
60
59
  @consumer ||= OAuth::Consumer.new(
61
60
  @consumer_key,
62
61
  @consumer_secret,
63
- { :site => 'http://api.twitter.com', :request_endpoint => @proxy }
62
+ { :site => "https://#{@api_host}", :request_endpoint => @proxy }
64
63
  )
65
64
  end
66
65
 
67
66
  def access_token
68
67
  @access_token ||= OAuth::AccessToken.new(consumer, @token, @secret)
69
68
  end
70
-
69
+
71
70
  def get(path, headers={})
71
+ puts "[Client] GET #{path}" if @debug
72
72
  headers.merge!("User-Agent" => "twitter_oauth gem v#{TwitterOAuth::VERSION}")
73
- oauth_response = access_token.get("/1#{path}", headers)
74
- JSON.parse(oauth_response.body)
73
+ oauth_response = access_token.get("/#{@api_version}#{path}", headers)
74
+ parse(oauth_response.body)
75
75
  end
76
76
 
77
77
  def post(path, body='', headers={})
78
+ puts "[Client] POST #{path}" if @debug
78
79
  headers.merge!("User-Agent" => "twitter_oauth gem v#{TwitterOAuth::VERSION}")
79
- oauth_response = access_token.post("/1#{path}", body, headers)
80
- JSON.parse(oauth_response.body)
80
+ oauth_response = access_token.post("/#{@api_version}#{path}", body, headers)
81
+ parse(oauth_response.body)
81
82
  end
82
83
 
83
84
  def delete(path, headers={})
85
+ puts "[Client] DELETE #{path}" if @debug
84
86
  headers.merge!("User-Agent" => "twitter_oauth gem v#{TwitterOAuth::VERSION}")
85
- oauth_response = access_token.delete("/1#{path}", headers)
86
- JSON.parse(oauth_response.body)
87
+ oauth_response = access_token.delete("/#{@api_version}#{path}", headers)
88
+ parse(oauth_response.body)
89
+ end
90
+
91
+ def parse(response_body)
92
+ begin
93
+ JSON.parse(response_body)
94
+ rescue JSON::ParserError
95
+ {:response => response_body}.to_json
96
+ end
87
97
  end
88
98
  end
89
99
  end
90
-
100
+
@@ -1,39 +1,73 @@
1
1
  module TwitterOAuth
2
2
  class Client
3
-
3
+
4
4
  # Returns an array of numeric IDs for every user the specified user is following.
5
5
  def friends_ids(options={})
6
6
  args = options.map{|k,v| "#{k}=#{v}"}.join('&')
7
7
  get("/friends/ids.json?#{args}")
8
8
  end
9
-
9
+
10
10
  # Returns an array of numeric IDs for every user following the specified user.
11
11
  def followers_ids(options={})
12
12
  args = options.map{|k,v| "#{k}=#{v}"}.join('&')
13
13
  get("/followers/ids.json?#{args}")
14
14
  end
15
-
15
+
16
16
  # Allows the authenticating user to follow the specified user. Returns the befriended user when successful.
17
17
  def friend(id)
18
18
  post("/friendships/create/#{id}.json")
19
19
  end
20
-
21
- # Allows the authenticating users to unfollow the specified user. Returns the unfollowed user when successful.
20
+
21
+ # Allows the authenticating users to unfollow the specified user. Returns the unfollowed user when successful.
22
22
  def unfriend(id)
23
23
  post("/friendships/destroy/#{id}.json")
24
24
  end
25
-
25
+
26
26
  # Tests for the existence of friendship between two users. Will return true if user_a follows user_b, otherwise will return false.
27
27
  # You are better off using get_friendship as it returns more extended information.
28
28
  def friends?(a, b)
29
29
  oauth_response = access_token.get("/friendships/exists.json?user_a=#{a}&user_b=#{b}")
30
30
  oauth_response.body.strip == 'true'
31
31
  end
32
-
32
+
33
33
  # Returns detailed information about the relationship between two users.
34
34
  def get_friendship(a, b)
35
35
  get("/friendships/show.json?source_screen_name=#{a}&target_screen_name=#{b}")
36
36
  end
37
-
37
+
38
+ # Returns a cursored collection of user objects for every user the specified
39
+ # user is following (otherwise known as their "friends")
40
+ def friends(cursor=-1)
41
+ get("/friends/list.json?cursor=#{cursor}")
42
+ end
43
+
44
+ # Helper to retrun all friends via multiple requests
45
+ def all_friends(cursor=-1)
46
+ users = []
47
+ while cursor != 0 do
48
+ json = friends(cursor)
49
+ cursor = json["next_cursor"]
50
+ users += json["users"]
51
+ end
52
+ users
53
+ end
54
+
55
+ # Returns a cursored collection of user objects for users following the
56
+ # specified user.
57
+ def followers(cursor=-1)
58
+ get("/followers/list.json?cursor=#{cursor}")
59
+ end
60
+
61
+ # Helper to retrun all followers via multiple requests
62
+ def all_followers(cursor=-1)
63
+ users = []
64
+ while cursor != 0 do
65
+ json = followers(cursor)
66
+ cursor = json["next_cursor"]
67
+ users += json["users"]
68
+ end
69
+ users
70
+ end
71
+
38
72
  end
39
73
  end
@@ -0,0 +1,14 @@
1
+ module TwitterOAuth
2
+ class Client
3
+
4
+ # Returns the current rate limits for methods belonging to the specified
5
+ # resource families. Each 1.1 API resource belongs to a "resource family"
6
+ # which is indicated in its method documentation. You can typically
7
+ # determine a method's resource family from the first component of the path
8
+ # after the...
9
+ def rate_limit_status
10
+ get('/application/rate_limit_status.json')
11
+ end
12
+
13
+ end
14
+ end
@@ -2,34 +2,13 @@ require 'open-uri'
2
2
 
3
3
  module TwitterOAuth
4
4
  class Client
5
-
5
+
6
6
  def search(q, options={})
7
- options[:page] ||= 1
8
- options[:rpp] ||= 20
7
+ options[:count] ||= 20
9
8
  options[:q] = URI.escape(q)
10
9
  args = options.map{|k,v| "#{k}=#{v}"}.join('&')
11
- search_get("/search.json?#{args}")
12
- end
13
-
14
- # Returns the current top 10 trending topics on Twitter.
15
- def current_trends
16
- search_get("/trends/current.json")
17
- end
18
-
19
- # Returns the top 20 trending topics for each hour in a given day.
20
- def daily_trends
21
- search_get("/trends/daily.json")
10
+ get("/search/tweets.json?#{args}")
22
11
  end
23
-
24
- # Returns the top 30 trending topics for each day in a given week.
25
- def weekly_trends
26
- search_get("/trends/weekly.json")
27
- end
28
-
29
- private
30
- def search_get(path)
31
- response = open('http://search.twitter.com' + path, 'User-Agent' => 'github.com/moomerman/twitter_outh')
32
- JSON.parse(response.read)
33
- end
12
+
34
13
  end
35
14
  end
@@ -1,25 +1,31 @@
1
1
  module TwitterOAuth
2
2
  class Client
3
-
4
- # Returns the top ten topics that are currently trending on Twitter.
5
- def trends
6
- get("/trends.json")
3
+
4
+ # Returns the top 10 trending topics for a specific WOEID, if trending
5
+ # information is available for it. The response is an array of "trend"
6
+ # objects that encode the name of the trending topic, the query parameter
7
+ # that can be used to search for the topic on Twitter Search, and the
8
+ # Twitter Search URL....
9
+ def place_trends
10
+ get("/trends/place.json")
7
11
  end
8
-
9
- # Returns the locations that Twitter has trending topic information for.
10
- # The response is an array of "locations" that encode the location's WOEID (a Yahoo! Where On Earth ID)
11
- # and some other human-readable information such as a canonical name and country the location belongs in.
12
- def trends_available
12
+
13
+ # Returns the locations that Twitter has trending topic information for. The
14
+ # response is an array of "locations" that encode the location's WOEID and
15
+ # some other human-readable information such as a canonical name and country
16
+ # the location belongs in. A WOEID is a Yahoo! Where On Earth ID.
17
+ def available_trends
13
18
  get("/trends/available.json")
14
19
  end
15
-
16
- # Returns the top 10 trending topics for a specific location Twitter has trending topic information for.
17
- # The response is an array of "trend" objects that encode the name of the trending topic, the query
18
- # parameter that can be used to search for the topic on Search, and the direct URL that can be issued against Search.
19
- # This information is cached for five minutes, and therefore users are discouraged from querying these endpoints
20
- # faster than once every five minutes. Global trends information is also available from this API by using a WOEID of 1.
21
- def trends_for_location(woeid)
22
- get("/trends/woeid.json")
20
+
21
+ # Returns the locations that Twitter has trending topic information for,
22
+ # closest to a specified location. The response is an array of "locations"
23
+ # that encode the location's WOEID and some other human-readable information
24
+ # such as a canonical name and country the location belongs in.
25
+ # A WOEID is a Yahoo...
26
+ def closest_trends
27
+ get("/trends/closest.json")
23
28
  end
29
+
24
30
  end
25
31
  end
@@ -1,59 +1,18 @@
1
1
  module TwitterOAuth
2
2
  class Client
3
-
4
- # Returns the 100 last friends
5
- # The page parameter is implemented for legacy reasons, but use of this is slow
6
- # as passing page is no longer supported by the Twitter API as the use of cursors
7
- # is now obligitory. It is recommended that you use all_friends instead
8
- def friends(page=1)
9
- return get("/statuses/friends.json?page=#{page}") if page == 1
10
- users = []
11
- cursor = "-1"
12
- page.times do
13
- return [] if cursor == 0
14
- json = get("/statuses/friends.json?cursor=#{cursor}")
15
- cursor = json["next_cursor"]
16
- users = json["users"]
17
- end
18
- users
19
- end
20
3
 
21
- # Returns all pages of friends
22
- def all_friends
23
- users = []
24
- cursor = "-1"
25
- while cursor != 0 do
26
- json = get("/statuses/friends.json?cursor=#{cursor}")
27
- cursor = json["next_cursor"]
28
- users += json["users"]
29
- end
30
- users
4
+ # Returns settings (including current trend, geo and sleep time information)
5
+ # for the authenticating user.
6
+ def settings
7
+ get('/account/settings.json')
31
8
  end
32
-
33
- # Returns the 100 last followers
34
- def followers(page=1)
35
- return get("/statuses/followers.json?page=#{page}") if page == 1
36
- users = []
37
- cursor = "-1"
38
- page.times do
39
- return [] if cursor == 0
40
- json = get("/statuses/followers.json?cursor=#{cursor}")
41
- cursor = json["next_cursor"]
42
- users = json["users"]
43
- end
44
- users
45
- end
46
9
 
47
- # Returns all pages of followers
48
- def all_followers
49
- users = []
50
- cursor = "-1"
51
- while cursor != 0 do
52
- json = get("/statuses/followers.json?cursor=#{cursor}")
53
- cursor = json["next_cursor"]
54
- users += json["users"]
55
- end
56
- users
10
+ # Returns an HTTP 200 OK response code and a representation of the
11
+ # requesting user if authentication was successful; returns a 401 status
12
+ # code and an error message if not. Use this method to test if supplied user
13
+ # credentials are valid.
14
+ def verify_credentials
15
+ get('/account/verify_credentials.json')
57
16
  end
58
17
 
59
18
  end
metadata CHANGED
@@ -1,94 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter_oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
5
- prerelease:
4
+ version: 0.4.9
6
5
  platform: ruby
7
6
  authors:
8
7
  - Richard Taylor
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-10-12 00:00:00.000000000 Z
11
+ date: 2013-06-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: oauth
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.4.1
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.4.1
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: 1.1.9
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: 1.1.9
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: mime-types
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '1.16'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '1.16'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: shoulda
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: mocha
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  description: twitter_oauth is a Ruby client for the Twitter API using OAuth.
@@ -107,6 +96,7 @@ files:
107
96
  - lib/twitter_oauth/favorites.rb
108
97
  - lib/twitter_oauth/friendships.rb
109
98
  - lib/twitter_oauth/geo.rb
99
+ - lib/twitter_oauth/help.rb
110
100
  - lib/twitter_oauth/lists.rb
111
101
  - lib/twitter_oauth/notifications.rb
112
102
  - lib/twitter_oauth/saved_searches.rb
@@ -119,6 +109,7 @@ files:
119
109
  - lib/twitter_oauth/utils.rb
120
110
  homepage: http://github.com/moomerman/twitter_oauth
121
111
  licenses: []
112
+ metadata: {}
122
113
  post_install_message:
123
114
  rdoc_options:
124
115
  - --inline-source
@@ -126,20 +117,18 @@ rdoc_options:
126
117
  require_paths:
127
118
  - lib
128
119
  required_ruby_version: !ruby/object:Gem::Requirement
129
- none: false
130
120
  requirements:
131
- - - ! '>='
121
+ - - '>='
132
122
  - !ruby/object:Gem::Version
133
123
  version: '0'
134
124
  required_rubygems_version: !ruby/object:Gem::Requirement
135
- none: false
136
125
  requirements:
137
- - - ! '>='
126
+ - - '>='
138
127
  - !ruby/object:Gem::Version
139
128
  version: '0'
140
129
  requirements: []
141
130
  rubyforge_project: twitter_oauth
142
- rubygems_version: 1.8.24
131
+ rubygems_version: 2.0.0
143
132
  signing_key:
144
133
  specification_version: 2
145
134
  summary: twitter_oauth is a Ruby client for the Twitter API using OAuth.