twitter 5.12.0 → 5.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 69ccaef447a3e10493acddb98166dad97ec1990b
4
- data.tar.gz: ad5737355498861cb59dd1f2e71473ab49e8b410
3
+ metadata.gz: 5ac32438db7519853d565182ecedbd9e7415fe2e
4
+ data.tar.gz: 490c6967d1ad7cbc9242274dd81fbd3e053705b0
5
5
  SHA512:
6
- metadata.gz: a1a43cafd0ef568132eef7f2dc1be2f6417424ed8d82445310116c45addb104979f0914f3a95ac45cb05cf67bb5ce5ddd5abd68e1891765155f61ab168be446b
7
- data.tar.gz: 765dfdb2699c5e12a1181fe59cda9629d714fd71b0fd7ae89e579a5fe030f31472e71d9be1ab8b6cff4425f47fdc6a8e9e6c64b3bddf9add8e94f56cd63748d6
6
+ metadata.gz: a19f77b9d88cf2aa0a62e8c73a409e53a5d408905532ea1cfe962cbd51860a5197111595095fcd1aa7bf9dbc8f87528a104b81f4bfaa78df8a74e954f7adfc06
7
+ data.tar.gz: 55f3dab2b04e6685fe6cc3b831870680eac59637590d8d04543f85b2a4b8cdea8e37d14a45e66eda23827171b749bde6091e082ab7f2ca854da711d093bcd5c0
@@ -1,3 +1,13 @@
1
+ 5.13.0
2
+ ------
3
+ * [Deprecate `Twitter::REST::Client#get` and `Twitter::REST::Client#post`](https://github.com/sferik/twitter/commit/65773c7d741098490f4164fae9e4433365cd4292)
4
+ * [Rename `Twitter::REST::Client::URL_PREFIX` to `Twitter::REST::Client::BASE_URL`](https://github.com/sferik/twitter/commit/73e2b9be19acf1403f324e5be48a550d3756d822)
5
+ * [Extract `Twitter::Headers` class](https://github.com/sferik/twitter/commit/e0d4c36bade95253b98b3ee657af409bfeadbbb6)
6
+ * [Move `Twitter::Request` to `Twitter::REST::Request`](https://github.com/sferik/twitter/commit/a46d9f21067724c437d40c7cb9c609f6cd304df1)
7
+ * [Add `Twitter::REST::Request#rate_limit`](https://github.com/sferik/twitter/commit/0c9f9d6a15835a0260a5a56a8aaffdc3f3e39eed)
8
+ * [Rename `Twitter::REST::Utils` methods](https://github.com/sferik/twitter/commit/2b1cceca0d37a038d3afd0b5763f2308b3db1b2d)
9
+ * [Update default `User-Agent` to comply with Section 5.5.3 of RFC 7231](https://github.com/sferik/twitter/commit/e5eb8d451d8be2d2751e6dda132c65039e5c879c)
10
+
1
11
  5.12.0
2
12
  ------
3
13
  * [Rescue `Twitter::Error::NotFound` for safe `#favorite` and `#retweet`](https://github.com/sferik/twitter/commit/5e6223df20217fd6b0ac78b44b0defdb46d1e018)
@@ -85,7 +85,7 @@ module Twitter
85
85
  # @param key2 [Symbol]
86
86
  def define_attribute_method(key1, klass = nil, key2 = nil)
87
87
  define_method(key1) do ||
88
- if @attrs[key1].nil? || @attrs[key1].respond_to?(:empty?) && @attrs[key1].empty?
88
+ if attr_falsey_or_empty?(key1)
89
89
  NullObject.new
90
90
  else
91
91
  if klass.nil?
@@ -114,7 +114,7 @@ module Twitter
114
114
  # @param key2 [Symbol]
115
115
  def define_predicate_method(key1, key2 = key1)
116
116
  define_method(:"#{key1}?") do ||
117
- !@attrs[key2].nil? && @attrs[key2] != false && !(@attrs[key2].respond_to?(:empty?) && @attrs[key2].empty?)
117
+ !attr_falsey_or_empty?(key2)
118
118
  end
119
119
  memoize(:"#{key1}?")
120
120
  end
@@ -140,6 +140,10 @@ module Twitter
140
140
 
141
141
  private
142
142
 
143
+ def attr_falsey_or_empty?(key)
144
+ @attrs[key].nil? || @attrs[key] == false || @attrs[key].respond_to?(:empty?) && @attrs[key].empty?
145
+ end
146
+
143
147
  def attrs_for_object(key1, key2 = nil)
144
148
  if key2.nil?
145
149
  @attrs[key1]
@@ -1,5 +1,3 @@
1
- require 'addressable/uri'
2
- require 'simple_oauth'
3
1
  require 'twitter/error'
4
2
  require 'twitter/utils'
5
3
  require 'twitter/version'
@@ -23,7 +21,7 @@ module Twitter
23
21
  instance_variable_set("@#{key}", value)
24
22
  end
25
23
  yield(self) if block_given?
26
- validate_credential_type!
24
+ validate_credentials!
27
25
  end
28
26
 
29
27
  # @return [Boolean]
@@ -33,7 +31,7 @@ module Twitter
33
31
 
34
32
  # @return [String]
35
33
  def user_agent
36
- @user_agent ||= "Twitter Ruby Gem #{Twitter::Version}"
34
+ @user_agent ||= "TwitterRubyGem/#{Twitter::Version}"
37
35
  end
38
36
 
39
37
  # @return [Hash]
@@ -59,16 +57,11 @@ module Twitter
59
57
  #
60
58
  # @raise [Twitter::Error::ConfigurationError] Error is raised when
61
59
  # supplied twitter credentials are not a String or Boolean.
62
- def validate_credential_type!
60
+ def validate_credentials!
63
61
  credentials.each do |credential, value|
64
62
  next if value.nil? || value == true || value == false || value.is_a?(String)
65
- fail(Twitter::Error::ConfigurationError.new("Invalid #{credential} specified: #{value.inspect} must be a string."))
63
+ fail(Twitter::Error::ConfigurationError.new("Invalid #{credential} specified: #{value.inspect} must be a String."))
66
64
  end
67
65
  end
68
-
69
- def oauth_auth_header(method, uri, params = {})
70
- uri = Addressable::URI.parse(uri)
71
- SimpleOAuth::Header.new(method, uri, params, credentials)
72
- end
73
66
  end
74
67
  end
@@ -1,4 +1,5 @@
1
1
  require 'twitter/enumerable'
2
+ require 'twitter/rest/request'
2
3
  require 'twitter/utils'
3
4
 
4
5
  module Twitter
@@ -13,12 +14,11 @@ module Twitter
13
14
 
14
15
  # Initializes a new Cursor
15
16
  #
16
- # @param attrs [Hash]
17
17
  # @param key [String, Symbol] The key to fetch the data from the response
18
18
  # @param klass [Class] The class to instantiate objects in the response
19
- # @param request [Twitter::Request]
19
+ # @param request [Twitter::REST::Request]
20
20
  # @return [Twitter::Cursor]
21
- def initialize(attrs, key, klass, request)
21
+ def initialize(key, klass, request)
22
22
  @key = key.to_sym
23
23
  @klass = klass
24
24
  @client = request.client
@@ -26,7 +26,7 @@ module Twitter
26
26
  @path = request.path
27
27
  @options = request.options
28
28
  @collection = []
29
- self.attrs = attrs
29
+ self.attrs = request.perform
30
30
  end
31
31
 
32
32
  private
@@ -44,7 +44,7 @@ module Twitter
44
44
 
45
45
  # @return [Hash]
46
46
  def fetch_next_page
47
- response = @client.send(@request_method, @path, @options.merge(:cursor => next_cursor)).body
47
+ response = Twitter::REST::Request.new(@client, @request_method, @path, @options.merge(:cursor => next_cursor)).perform
48
48
  self.attrs = response
49
49
  end
50
50
 
@@ -0,0 +1,62 @@
1
+ require 'addressable/uri'
2
+ require 'base64'
3
+ require 'simple_oauth'
4
+
5
+ module Twitter
6
+ class Headers
7
+ def initialize(client, request_method, url, options = {})
8
+ @client = client
9
+ @request_method = request_method.to_sym
10
+ @uri = Addressable::URI.parse(url)
11
+ @options = options
12
+ @signature_options = @request_method == :post && @options.values.any? { |value| value.respond_to?(:to_io) } ? {} : @options
13
+ end
14
+
15
+ def oauth_auth_header
16
+ SimpleOAuth::Header.new(@request_method, @uri, @signature_options, @client.credentials)
17
+ end
18
+
19
+ def request_headers
20
+ bearer_token_request = @options.delete(:bearer_token_request)
21
+ headers = {}
22
+ if bearer_token_request
23
+ headers[:accept] = '*/*'
24
+ headers[:authorization] = bearer_token_credentials_auth_header
25
+ headers[:content_type] = 'application/x-www-form-urlencoded; charset=UTF-8'
26
+ else
27
+ headers[:authorization] = auth_header
28
+ end
29
+ headers
30
+ end
31
+
32
+ private
33
+
34
+ def auth_header
35
+ if @client.user_token?
36
+ oauth_auth_header.to_s
37
+ else
38
+ @client.bearer_token = @client.token unless @client.bearer_token?
39
+ bearer_auth_header
40
+ end
41
+ end
42
+
43
+ def bearer_auth_header
44
+ bearer_token = @client.bearer_token
45
+ token = bearer_token.is_a?(Twitter::Token) && bearer_token.bearer? ? bearer_token.access_token : bearer_token
46
+ "Bearer #{token}"
47
+ end
48
+
49
+ # Generates authentication header for a bearer token request
50
+ #
51
+ # @return [String]
52
+ def bearer_token_credentials_auth_header
53
+ basic_auth_token = strict_encode64("#{@client.consumer_key}:#{@client.consumer_secret}")
54
+ "Basic #{basic_auth_token}"
55
+ end
56
+
57
+ # Base64.strict_encode64 is not available on Ruby 1.8.7
58
+ def strict_encode64(str)
59
+ Base64.encode64(str).gsub("\n", '')
60
+ end
61
+ end
62
+ end
@@ -9,6 +9,11 @@ module Twitter
9
9
  config.define_implicit_conversions
10
10
  config.predicates_return false
11
11
 
12
+ # TODO: Add when support for Ruby 1.8.7 is dropped
13
+ # def !
14
+ # true
15
+ # end
16
+
12
17
  def instance_of?(klass)
13
18
  fail(TypeError.new('class or module required')) unless klass.is_a?(Class)
14
19
  self.class == klass
@@ -18,6 +18,8 @@ require 'twitter/rest/users'
18
18
 
19
19
  module Twitter
20
20
  module REST
21
+ # @note All methods have been separated into modules and follow the same grouping used in {http://dev.twitter.com/doc the Twitter API Documentation}.
22
+ # @see https://dev.twitter.com/overview/general/things-every-developer-should-know
21
23
  module API
22
24
  include Twitter::REST::DirectMessages
23
25
  include Twitter::REST::Favorites
@@ -1,31 +1,26 @@
1
- require 'base64'
2
1
  require 'faraday'
3
2
  require 'faraday/request/multipart'
4
- require 'json'
5
- require 'timeout'
6
3
  require 'twitter/client'
7
- require 'twitter/error'
8
4
  require 'twitter/rest/api'
5
+ require 'twitter/rest/request'
9
6
  require 'twitter/rest/request/multipart_with_file'
10
7
  require 'twitter/rest/response/parse_json'
11
8
  require 'twitter/rest/response/raise_error'
9
+ require 'twitter/rest/utils'
12
10
 
13
11
  module Twitter
14
12
  module REST
15
- # Wrapper for the Twitter REST API
16
- #
17
- # @note All methods have been separated into modules and follow the same grouping used in {http://dev.twitter.com/doc the Twitter API Documentation}.
18
- # @see http://dev.twitter.com/pages/every_developer
19
13
  class Client < Twitter::Client
20
14
  include Twitter::REST::API
15
+ BASE_URL = 'https://api.twitter.com'
16
+ URL_PREFIX = BASE_URL
17
+ ENDPOINT = BASE_URL
21
18
  attr_accessor :bearer_token
22
- URL_PREFIX = 'https://api.twitter.com'
23
- ENDPOINT = URL_PREFIX
24
19
 
25
20
  # @param connection_options [Hash]
26
21
  # @return [Hash]
27
22
  def connection_options=(connection_options)
28
- warn "#{Kernel.caller.first}: [DEPRECATION] Twitter::REST::Client#connection_options= is deprecated and will be removed in version 6.0.0."
23
+ warn "#{Kernel.caller.first}: [DEPRECATION] #{self.class.name}##{__method__} is deprecated and will be removed."
29
24
  @connection_options = connection_options
30
25
  end
31
26
 
@@ -48,7 +43,7 @@ module Twitter
48
43
  # @params middleware [Faraday::RackBuilder]
49
44
  # @return [Faraday::RackBuilder]
50
45
  def middleware=(middleware)
51
- warn "#{Kernel.caller.first}: [DEPRECATION] Twitter::REST::Client#middleware= is deprecated and will be removed in version 6.0.0."
46
+ warn "#{Kernel.caller.first}: [DEPRECATION] #{self.class.name}##{__method__} is deprecated and will be removed."
52
47
  @middleware = middleware
53
48
  end
54
49
 
@@ -74,15 +69,15 @@ module Twitter
74
69
  end
75
70
 
76
71
  # Perform an HTTP GET request
77
- def get(path, params = {})
78
- headers = request_headers(:get, URL_PREFIX + path, params)
79
- request(:get, path, params, headers)
72
+ def get(path, options = {})
73
+ warn "#{Kernel.caller.first}: [DEPRECATION] #{self.class.name}##{__method__} is deprecated. Use Twitter::REST::Request#perform instead."
74
+ perform_get(path, options)
80
75
  end
81
76
 
82
77
  # Perform an HTTP POST request
83
- def post(path, params = {})
84
- headers = params.values.any? { |value| value.respond_to?(:to_io) } ? request_headers(:post, URL_PREFIX + path, params, {}) : request_headers(:post, URL_PREFIX + path, params)
85
- request(:post, path, params, headers)
78
+ def post(path, options = {})
79
+ warn "#{Kernel.caller.first}: [DEPRECATION] #{self.class.name}##{__method__} is deprecated. Use Twitter::REST::Request#perform instead."
80
+ perform_post(path, options)
86
81
  end
87
82
 
88
83
  # @return [Boolean]
@@ -95,61 +90,11 @@ module Twitter
95
90
  super || bearer_token?
96
91
  end
97
92
 
98
- private
99
-
100
93
  # Returns a Faraday::Connection object
101
94
  #
102
95
  # @return [Faraday::Connection]
103
96
  def connection
104
- @connection ||= Faraday.new(URL_PREFIX, connection_options)
105
- end
106
-
107
- def request(method, path, params = {}, headers = {})
108
- connection.send(method.to_sym, path, params) { |request| request.headers.update(headers) }.env
109
- rescue Faraday::Error::TimeoutError, Timeout::Error => error
110
- raise(Twitter::Error::RequestTimeout.new(error))
111
- rescue Faraday::Error::ClientError, JSON::ParserError => error
112
- raise(Twitter::Error.new(error))
113
- end
114
-
115
- def request_headers(method, url, params = {}, signature_params = params)
116
- bearer_token_request = params.delete(:bearer_token_request)
117
- headers = {}
118
- if bearer_token_request
119
- headers[:accept] = '*/*'
120
- headers[:authorization] = bearer_token_credentials_auth_header
121
- headers[:content_type] = 'application/x-www-form-urlencoded; charset=UTF-8'
122
- else
123
- headers[:authorization] = auth_header(method, url, params, signature_params)
124
- end
125
- headers
126
- end
127
-
128
- def auth_header(method, url, params = {}, signature_params = params)
129
- if !user_token?
130
- @bearer_token = token unless bearer_token?
131
- bearer_auth_header
132
- else
133
- oauth_auth_header(method, url, signature_params).to_s
134
- end
135
- end
136
-
137
- # Generates authentication header for a bearer token request
138
- #
139
- # @return [String]
140
- def bearer_token_credentials_auth_header
141
- basic_auth_token = strict_encode64("#{@consumer_key}:#{@consumer_secret}")
142
- "Basic #{basic_auth_token}"
143
- end
144
-
145
- def bearer_auth_header
146
- token = bearer_token.is_a?(Twitter::Token) && bearer_token.bearer? ? bearer_token.access_token : bearer_token
147
- "Bearer #{token}"
148
- end
149
-
150
- # Base64.strict_encode64 is not available on Ruby 1.8.7
151
- def strict_encode64(str)
152
- Base64.encode64(str).gsub("\n", '')
97
+ @connection ||= Faraday.new(BASE_URL, connection_options)
153
98
  end
154
99
  end
155
100
  end
@@ -1,6 +1,5 @@
1
1
  require 'twitter/arguments'
2
2
  require 'twitter/direct_message'
3
- require 'twitter/request'
4
3
  require 'twitter/rest/utils'
5
4
  require 'twitter/user'
6
5
  require 'twitter/utils'
@@ -25,7 +24,7 @@ module Twitter
25
24
  # @option options [Integer] :count Specifies the number of records to retrieve. Must be less than or equal to 200.
26
25
  # @option options [Integer] :page Specifies the page of results to retrieve.
27
26
  def direct_messages_received(options = {})
28
- perform_with_objects(:get, '/1.1/direct_messages.json', options, Twitter::DirectMessage)
27
+ perform_get_with_objects('/1.1/direct_messages.json', options, Twitter::DirectMessage)
29
28
  end
30
29
 
31
30
  # Returns the 20 most recent direct messages sent by the authenticating user
@@ -42,7 +41,7 @@ module Twitter
42
41
  # @option options [Integer] :count Specifies the number of records to retrieve. Must be less than or equal to 200.
43
42
  # @option options [Integer] :page Specifies the page of results to retrieve.
44
43
  def direct_messages_sent(options = {})
45
- perform_with_objects(:get, '/1.1/direct_messages/sent.json', options, Twitter::DirectMessage)
44
+ perform_get_with_objects('/1.1/direct_messages/sent.json', options, Twitter::DirectMessage)
46
45
  end
47
46
 
48
47
  # Returns a direct message
@@ -57,7 +56,7 @@ module Twitter
57
56
  # @param options [Hash] A customizable set of options.
58
57
  def direct_message(id, options = {})
59
58
  options[:id] = id
60
- perform_with_object(:get, '/1.1/direct_messages/show.json', options, Twitter::DirectMessage)
59
+ perform_get_with_object('/1.1/direct_messages/show.json', options, Twitter::DirectMessage)
61
60
  end
62
61
 
63
62
  # @note This method requires an access token with RWD (read, write & direct message) permissions. Consult The Application Permission Model for more information.
@@ -127,7 +126,7 @@ module Twitter
127
126
  def create_direct_message(user, text, options = {})
128
127
  merge_user!(options, user)
129
128
  options[:text] = text
130
- perform_with_object(:post, '/1.1/direct_messages/new.json', options, Twitter::DirectMessage)
129
+ perform_post_with_object('/1.1/direct_messages/new.json', options, Twitter::DirectMessage)
131
130
  end
132
131
  alias_method :d, :create_direct_message
133
132
  alias_method :m, :create_direct_message
@@ -1,6 +1,5 @@
1
1
  require 'twitter/arguments'
2
2
  require 'twitter/error'
3
- require 'twitter/request'
4
3
  require 'twitter/rest/utils'
5
4
  require 'twitter/tweet'
6
5
  require 'twitter/user'
@@ -33,7 +32,7 @@ module Twitter
33
32
  def favorites(*args)
34
33
  arguments = Twitter::Arguments.new(args)
35
34
  merge_user!(arguments.options, arguments.pop) if arguments.last
36
- perform_with_objects(:get, '/1.1/favorites/list.json', arguments.options, Twitter::Tweet)
35
+ perform_get_with_objects('/1.1/favorites/list.json', arguments.options, Twitter::Tweet)
37
36
  end
38
37
 
39
38
  # Un-favorites the specified Tweets as the authenticating user
@@ -70,7 +69,7 @@ module Twitter
70
69
  arguments = Twitter::Arguments.new(args)
71
70
  pmap(arguments) do |tweet|
72
71
  begin
73
- perform_with_object(:post, '/1.1/favorites/create.json', arguments.options.merge(:id => extract_id(tweet)), Twitter::Tweet)
72
+ perform_post_with_object('/1.1/favorites/create.json', arguments.options.merge(:id => extract_id(tweet)), Twitter::Tweet)
74
73
  rescue Twitter::Error::AlreadyFavorited, Twitter::Error::NotFound
75
74
  next
76
75
  end
@@ -97,7 +96,7 @@ module Twitter
97
96
  def favorite!(*args)
98
97
  arguments = Twitter::Arguments.new(args)
99
98
  pmap(arguments) do |tweet|
100
- perform_with_object(:post, '/1.1/favorites/create.json', arguments.options.merge(:id => extract_id(tweet)), Twitter::Tweet)
99
+ perform_post_with_object('/1.1/favorites/create.json', arguments.options.merge(:id => extract_id(tweet)), Twitter::Tweet)
101
100
  end
102
101
  end
103
102
  alias_method :create_favorite!, :favorite!
@@ -1,7 +1,7 @@
1
1
  require 'twitter/arguments'
2
2
  require 'twitter/cursor'
3
3
  require 'twitter/relationship'
4
- require 'twitter/request'
4
+ require 'twitter/rest/request'
5
5
  require 'twitter/rest/utils'
6
6
  require 'twitter/user'
7
7
  require 'twitter/utils'
@@ -27,7 +27,7 @@ module Twitter
27
27
  # @param user [Integer, String, Twitter::User] A Twitter user ID, screen name, URI, or object.
28
28
  # @param options [Hash] A customizable set of options.
29
29
  def friend_ids(*args)
30
- cursor_from_response_with_user(:ids, nil, :get, '/1.1/friends/ids.json', args)
30
+ cursor_from_response_with_user(:ids, nil, '/1.1/friends/ids.json', args)
31
31
  end
32
32
 
33
33
  # @see https://dev.twitter.com/docs/api/1.1/get/followers/ids
@@ -45,7 +45,7 @@ module Twitter
45
45
  # @param user [Integer, String, Twitter::User] A Twitter user ID, screen name, URI, or object.
46
46
  # @param options [Hash] A customizable set of options.
47
47
  def follower_ids(*args)
48
- cursor_from_response_with_user(:ids, nil, :get, '/1.1/followers/ids.json', args)
48
+ cursor_from_response_with_user(:ids, nil, '/1.1/followers/ids.json', args)
49
49
  end
50
50
 
51
51
  # Returns the relationship of the authenticating user to the comma separated list of up to 100 screen_names or user_ids provided. Values for connections can be: following, following_requested, followed_by, none.
@@ -63,7 +63,7 @@ module Twitter
63
63
  def friendships(*args)
64
64
  arguments = Twitter::Arguments.new(args)
65
65
  merge_users!(arguments.options, arguments)
66
- perform_with_objects(:get, '/1.1/friendships/lookup.json', arguments.options, Twitter::User)
66
+ perform_get_with_objects('/1.1/friendships/lookup.json', arguments.options, Twitter::User)
67
67
  end
68
68
 
69
69
  # Returns an array of numeric IDs for every user who has a pending request to follow the authenticating user
@@ -75,7 +75,7 @@ module Twitter
75
75
  # @return [Twitter::Cursor]
76
76
  # @param options [Hash] A customizable set of options.
77
77
  def friendships_incoming(options = {})
78
- perform_with_cursor(:get, '/1.1/friendships/incoming.json', options, :ids)
78
+ perform_get_with_cursor('/1.1/friendships/incoming.json', options, :ids)
79
79
  end
80
80
 
81
81
  # Returns an array of numeric IDs for every protected user for whom the authenticating user has a pending follow request
@@ -87,7 +87,7 @@ module Twitter
87
87
  # @return [Twitter::Cursor]
88
88
  # @param options [Hash] A customizable set of options.
89
89
  def friendships_outgoing(options = {})
90
- perform_with_cursor(:get, '/1.1/friendships/outgoing.json', options, :ids)
90
+ perform_get_with_cursor('/1.1/friendships/outgoing.json', options, :ids)
91
91
  end
92
92
 
93
93
  # Allows the authenticating user to follow the specified users, unless they are already followed
@@ -132,7 +132,7 @@ module Twitter
132
132
  def follow!(*args)
133
133
  arguments = Twitter::Arguments.new(args)
134
134
  pmap(arguments) do |user|
135
- perform_with_object(:post, '/1.1/friendships/create.json', merge_user(arguments.options, user), Twitter::User)
135
+ perform_post_with_object('/1.1/friendships/create.json', merge_user(arguments.options, user), Twitter::User)
136
136
  end.compact
137
137
  end
138
138
  alias_method :create_friendship!, :follow!
@@ -169,7 +169,7 @@ module Twitter
169
169
  # @option options [Boolean] :retweets Enable/disable retweets from the target user.
170
170
  def friendship_update(user, options = {})
171
171
  merge_user!(options, user)
172
- perform_with_object(:post, '/1.1/friendships/update.json', options, Twitter::Relationship)
172
+ perform_post_with_object('/1.1/friendships/update.json', options, Twitter::Relationship)
173
173
  end
174
174
 
175
175
  # Returns detailed information about the relationship between two users
@@ -187,7 +187,7 @@ module Twitter
187
187
  options[:source_id] = options.delete(:source_user_id) unless options[:source_user_id].nil?
188
188
  merge_user!(options, target, 'target')
189
189
  options[:target_id] = options.delete(:target_user_id) unless options[:target_user_id].nil?
190
- perform_with_object(:get, '/1.1/friendships/show.json', options, Twitter::Relationship)
190
+ perform_get_with_object('/1.1/friendships/show.json', options, Twitter::Relationship)
191
191
  end
192
192
  alias_method :friendship_show, :friendship
193
193
  alias_method :relationship, :friendship
@@ -227,7 +227,7 @@ module Twitter
227
227
  # @option options [Boolean, String, Integer] :skip_status Do not include contributee's Tweets when set to true, 't' or 1.
228
228
  # @option options [Boolean, String, Integer] :include_user_entities The user entities node will be disincluded when set to false.
229
229
  def followers(*args)
230
- cursor_from_response_with_user(:users, Twitter::User, :get, '/1.1/followers/list.json', args)
230
+ cursor_from_response_with_user(:users, Twitter::User, '/1.1/followers/list.json', args)
231
231
  end
232
232
 
233
233
  # Returns a cursored collection of user objects for every user the specified user is following (otherwise known as their "friends").
@@ -251,7 +251,7 @@ module Twitter
251
251
  # @option options [Boolean, String, Integer] :skip_status Do not include contributee's Tweets when set to true, 't' or 1.
252
252
  # @option options [Boolean, String, Integer] :include_user_entities The user entities node will be disincluded when set to false.
253
253
  def friends(*args)
254
- cursor_from_response_with_user(:users, Twitter::User, :get, '/1.1/friends/list.json', args)
254
+ cursor_from_response_with_user(:users, Twitter::User, '/1.1/friends/list.json', args)
255
255
  end
256
256
  alias_method :following, :friends
257
257
 
@@ -263,7 +263,7 @@ module Twitter
263
263
  # @return [Array<Integer>]
264
264
  # @param options [Hash] A customizable set of options.
265
265
  def no_retweet_ids(options = {})
266
- get('/1.1/friendships/no_retweets/ids.json', options).body.collect(&:to_i)
266
+ perform_get('/1.1/friendships/no_retweets/ids.json', options).collect(&:to_i)
267
267
  end
268
268
  alias_method :no_retweets_ids, :no_retweet_ids
269
269
  end