twitter 4.0.0

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.
Files changed (210) hide show
  1. data/CHANGELOG.md +673 -0
  2. data/LICENSE.md +20 -0
  3. data/README.md +415 -0
  4. data/Rakefile +11 -0
  5. data/lib/twitter.rb +29 -0
  6. data/lib/twitter/action/favorite.rb +19 -0
  7. data/lib/twitter/action/follow.rb +31 -0
  8. data/lib/twitter/action/list_member_added.rb +41 -0
  9. data/lib/twitter/action/mention.rb +48 -0
  10. data/lib/twitter/action/reply.rb +27 -0
  11. data/lib/twitter/action/retweet.rb +27 -0
  12. data/lib/twitter/action/tweet.rb +22 -0
  13. data/lib/twitter/action_factory.rb +22 -0
  14. data/lib/twitter/api.rb +2442 -0
  15. data/lib/twitter/base.rb +119 -0
  16. data/lib/twitter/basic_user.rb +8 -0
  17. data/lib/twitter/client.rb +96 -0
  18. data/lib/twitter/configurable.rb +67 -0
  19. data/lib/twitter/configuration.rb +20 -0
  20. data/lib/twitter/core_ext/array.rb +7 -0
  21. data/lib/twitter/core_ext/enumerable.rb +11 -0
  22. data/lib/twitter/core_ext/hash.rb +100 -0
  23. data/lib/twitter/core_ext/kernel.rb +15 -0
  24. data/lib/twitter/core_ext/string.rb +10 -0
  25. data/lib/twitter/creatable.rb +20 -0
  26. data/lib/twitter/cursor.rb +87 -0
  27. data/lib/twitter/default.rb +101 -0
  28. data/lib/twitter/direct_message.rb +21 -0
  29. data/lib/twitter/entity.rb +7 -0
  30. data/lib/twitter/entity/hashtag.rb +9 -0
  31. data/lib/twitter/entity/url.rb +9 -0
  32. data/lib/twitter/entity/user_mention.rb +9 -0
  33. data/lib/twitter/error.rb +34 -0
  34. data/lib/twitter/error/bad_gateway.rb +11 -0
  35. data/lib/twitter/error/bad_request.rb +10 -0
  36. data/lib/twitter/error/client_error.rb +35 -0
  37. data/lib/twitter/error/decode_error.rb +9 -0
  38. data/lib/twitter/error/forbidden.rb +10 -0
  39. data/lib/twitter/error/gateway_timeout.rb +11 -0
  40. data/lib/twitter/error/identity_map_key_error.rb +9 -0
  41. data/lib/twitter/error/internal_server_error.rb +11 -0
  42. data/lib/twitter/error/not_acceptable.rb +10 -0
  43. data/lib/twitter/error/not_found.rb +10 -0
  44. data/lib/twitter/error/rate_limited.rb +11 -0
  45. data/lib/twitter/error/server_error.rb +28 -0
  46. data/lib/twitter/error/service_unavailable.rb +11 -0
  47. data/lib/twitter/error/unauthorized.rb +10 -0
  48. data/lib/twitter/factory.rb +21 -0
  49. data/lib/twitter/geo.rb +15 -0
  50. data/lib/twitter/geo/point.rb +22 -0
  51. data/lib/twitter/geo/polygon.rb +8 -0
  52. data/lib/twitter/geo_factory.rb +18 -0
  53. data/lib/twitter/identity.rb +50 -0
  54. data/lib/twitter/identity_map.rb +22 -0
  55. data/lib/twitter/language.rb +7 -0
  56. data/lib/twitter/list.rb +18 -0
  57. data/lib/twitter/media/photo.rb +22 -0
  58. data/lib/twitter/media_factory.rb +17 -0
  59. data/lib/twitter/metadata.rb +7 -0
  60. data/lib/twitter/oembed.rb +8 -0
  61. data/lib/twitter/place.rb +34 -0
  62. data/lib/twitter/rate_limit.rb +45 -0
  63. data/lib/twitter/relationship.rb +36 -0
  64. data/lib/twitter/request/multipart_with_file.rb +41 -0
  65. data/lib/twitter/response/parse_json.rb +25 -0
  66. data/lib/twitter/response/raise_error.rb +30 -0
  67. data/lib/twitter/saved_search.rb +9 -0
  68. data/lib/twitter/search_results.rb +48 -0
  69. data/lib/twitter/settings.rb +17 -0
  70. data/lib/twitter/size.rb +24 -0
  71. data/lib/twitter/source_user.rb +15 -0
  72. data/lib/twitter/suggestion.rb +22 -0
  73. data/lib/twitter/target_user.rb +8 -0
  74. data/lib/twitter/trend.rb +14 -0
  75. data/lib/twitter/tweet.rb +145 -0
  76. data/lib/twitter/user.rb +97 -0
  77. data/lib/twitter/version.rb +18 -0
  78. data/spec/fixtures/about_me.json +1 -0
  79. data/spec/fixtures/activity_summary.json +1 -0
  80. data/spec/fixtures/all.json +1 -0
  81. data/spec/fixtures/bad_gateway.json +1 -0
  82. data/spec/fixtures/bad_request.json +1 -0
  83. data/spec/fixtures/by_friends.json +1 -0
  84. data/spec/fixtures/category.json +1 -0
  85. data/spec/fixtures/configuration.json +1 -0
  86. data/spec/fixtures/contributees.json +1 -0
  87. data/spec/fixtures/contributors.json +1 -0
  88. data/spec/fixtures/direct_message.json +1 -0
  89. data/spec/fixtures/direct_messages.json +1 -0
  90. data/spec/fixtures/end_session.json +1 -0
  91. data/spec/fixtures/enhance_your_calm.text +11 -0
  92. data/spec/fixtures/favorites.json +1 -0
  93. data/spec/fixtures/following.json +1 -0
  94. data/spec/fixtures/forbidden.json +1 -0
  95. data/spec/fixtures/friendships.json +1 -0
  96. data/spec/fixtures/ids.json +1 -0
  97. data/spec/fixtures/ids_list.json +1 -0
  98. data/spec/fixtures/ids_list2.json +1 -0
  99. data/spec/fixtures/image_facets.json +1 -0
  100. data/spec/fixtures/internal_server_error.json +1 -0
  101. data/spec/fixtures/languages.json +1 -0
  102. data/spec/fixtures/list.json +1 -0
  103. data/spec/fixtures/lists.json +1 -0
  104. data/spec/fixtures/locations.json +1 -0
  105. data/spec/fixtures/matching_trends.json +1 -0
  106. data/spec/fixtures/me.jpeg +0 -0
  107. data/spec/fixtures/media_timeline.json +1 -0
  108. data/spec/fixtures/members.json +1 -0
  109. data/spec/fixtures/no_user_matches.json +1 -0
  110. data/spec/fixtures/not_acceptable.json +1 -0
  111. data/spec/fixtures/not_following.json +1 -0
  112. data/spec/fixtures/not_found.json +1 -0
  113. data/spec/fixtures/oembed.json +1 -0
  114. data/spec/fixtures/pbjt.gif +0 -0
  115. data/spec/fixtures/pengwynn.json +1 -0
  116. data/spec/fixtures/phoenix_search.phoenix +1 -0
  117. data/spec/fixtures/place.json +1 -0
  118. data/spec/fixtures/places.json +1 -0
  119. data/spec/fixtures/privacy.json +1 -0
  120. data/spec/fixtures/profile_image.text +24 -0
  121. data/spec/fixtures/rate_limit_status.json +1 -0
  122. data/spec/fixtures/recommendations.json +1 -0
  123. data/spec/fixtures/related_results.json +1 -0
  124. data/spec/fixtures/resolve.json +1 -0
  125. data/spec/fixtures/retweet.json +1 -0
  126. data/spec/fixtures/retweeted_status.json +1 -0
  127. data/spec/fixtures/retweeters_of.json +1 -0
  128. data/spec/fixtures/retweets.json +1 -0
  129. data/spec/fixtures/saved_search.json +1 -0
  130. data/spec/fixtures/saved_searches.json +1 -0
  131. data/spec/fixtures/search.json +1 -0
  132. data/spec/fixtures/search_malformed.json +1 -0
  133. data/spec/fixtures/service_unavailable.json +1 -0
  134. data/spec/fixtures/settings.json +1 -0
  135. data/spec/fixtures/sferik.json +1 -0
  136. data/spec/fixtures/status.json +1 -0
  137. data/spec/fixtures/status_with_media.json +104 -0
  138. data/spec/fixtures/statuses.json +1 -0
  139. data/spec/fixtures/suggestions.json +1 -0
  140. data/spec/fixtures/tos.json +1 -0
  141. data/spec/fixtures/totals.json +1 -0
  142. data/spec/fixtures/trends.json +1 -0
  143. data/spec/fixtures/trends_current.json +1 -0
  144. data/spec/fixtures/trends_daily.json +1 -0
  145. data/spec/fixtures/trends_weekly.json +1 -0
  146. data/spec/fixtures/unauthorized.json +1 -0
  147. data/spec/fixtures/user_search.json +1 -0
  148. data/spec/fixtures/user_timeline.json +1 -0
  149. data/spec/fixtures/users.json +1 -0
  150. data/spec/fixtures/users_list.json +1 -0
  151. data/spec/fixtures/video_facets.json +1 -0
  152. data/spec/fixtures/we_concept_bg2.png +0 -0
  153. data/spec/fixtures/wildcomet2.jpe +0 -0
  154. data/spec/helper.rb +53 -0
  155. data/spec/twitter/action/favorite_spec.rb +29 -0
  156. data/spec/twitter/action/follow_spec.rb +29 -0
  157. data/spec/twitter/action/list_member_added_spec.rb +41 -0
  158. data/spec/twitter/action/mention_spec.rb +52 -0
  159. data/spec/twitter/action/reply_spec.rb +41 -0
  160. data/spec/twitter/action/retweet_spec.rb +41 -0
  161. data/spec/twitter/action_factory_spec.rb +37 -0
  162. data/spec/twitter/action_spec.rb +16 -0
  163. data/spec/twitter/api/account_spec.rb +148 -0
  164. data/spec/twitter/api/activity_spec.rb +41 -0
  165. data/spec/twitter/api/blocks_spec.rb +167 -0
  166. data/spec/twitter/api/direct_messages_spec.rb +142 -0
  167. data/spec/twitter/api/friendships_spec.rb +567 -0
  168. data/spec/twitter/api/geo_spec.rb +100 -0
  169. data/spec/twitter/api/help_spec.rb +76 -0
  170. data/spec/twitter/api/lists_spec.rb +900 -0
  171. data/spec/twitter/api/report_spam_spec.rb +29 -0
  172. data/spec/twitter/api/saved_searches_spec.rb +100 -0
  173. data/spec/twitter/api/search_spec.rb +68 -0
  174. data/spec/twitter/api/statuses_spec.rb +559 -0
  175. data/spec/twitter/api/trends_spec.rb +80 -0
  176. data/spec/twitter/api/users_spec.rb +419 -0
  177. data/spec/twitter/base_spec.rb +113 -0
  178. data/spec/twitter/basic_user_spec.rb +23 -0
  179. data/spec/twitter/client_spec.rb +175 -0
  180. data/spec/twitter/configuration_spec.rb +17 -0
  181. data/spec/twitter/cursor_spec.rb +102 -0
  182. data/spec/twitter/direct_message_spec.rb +56 -0
  183. data/spec/twitter/error/client_error_spec.rb +40 -0
  184. data/spec/twitter/error/server_error_spec.rb +24 -0
  185. data/spec/twitter/error_spec.rb +20 -0
  186. data/spec/twitter/geo/point_spec.rb +41 -0
  187. data/spec/twitter/geo/polygon_spec.rb +29 -0
  188. data/spec/twitter/geo_factory_spec.rb +21 -0
  189. data/spec/twitter/geo_spec.rb +29 -0
  190. data/spec/twitter/identifiable_spec.rb +54 -0
  191. data/spec/twitter/list_spec.rb +45 -0
  192. data/spec/twitter/media/photo_spec.rb +35 -0
  193. data/spec/twitter/media_factory_spec.rb +17 -0
  194. data/spec/twitter/oembed_spec.rb +146 -0
  195. data/spec/twitter/place_spec.rb +75 -0
  196. data/spec/twitter/rate_limit_spec.rb +76 -0
  197. data/spec/twitter/relationship_spec.rb +35 -0
  198. data/spec/twitter/saved_search_spec.rb +34 -0
  199. data/spec/twitter/search_results_spec.rb +89 -0
  200. data/spec/twitter/settings_spec.rb +16 -0
  201. data/spec/twitter/size_spec.rb +38 -0
  202. data/spec/twitter/source_user_spec.rb +23 -0
  203. data/spec/twitter/suggestion_spec.rb +50 -0
  204. data/spec/twitter/target_user_spec.rb +23 -0
  205. data/spec/twitter/trend_spec.rb +38 -0
  206. data/spec/twitter/tweet_spec.rb +307 -0
  207. data/spec/twitter/user_spec.rb +127 -0
  208. data/spec/twitter_spec.rb +93 -0
  209. data/twitter.gemspec +30 -0
  210. metadata +584 -0
@@ -0,0 +1,93 @@
1
+ require 'helper'
2
+
3
+ describe Twitter do
4
+
5
+ after do
6
+ Twitter.reset!
7
+ end
8
+
9
+ context "when delegating to a client" do
10
+
11
+ before do
12
+ stub_get("/1.1/statuses/user_timeline.json").
13
+ with(:query => {:screen_name => "sferik"}).
14
+ to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
15
+ end
16
+
17
+ it "requests the correct resource" do
18
+ Twitter.user_timeline('sferik')
19
+ a_get("/1.1/statuses/user_timeline.json").
20
+ with(:query => {:screen_name => "sferik"}).
21
+ should have_been_made
22
+ end
23
+
24
+ it "returns the same results as a client" do
25
+ Twitter.user_timeline('sferik').should eq Twitter::Client.new.user_timeline('sferik')
26
+ end
27
+
28
+ end
29
+
30
+ describe '.respond_to?' do
31
+ it "delegates to Twitter::Client" do
32
+ Twitter.respond_to?(:user).should be_true
33
+ end
34
+ it "takes an optional argument" do
35
+ Twitter.respond_to?(:client, true).should be_true
36
+ end
37
+ end
38
+
39
+ describe ".client" do
40
+ it "returns a Twitter::Client" do
41
+ Twitter.client.should be_a Twitter::Client
42
+ end
43
+
44
+ context "when the options don't change" do
45
+ it "caches the client" do
46
+ Twitter.client.should eq Twitter.client
47
+ end
48
+ end
49
+ context "when the options change" do
50
+ it "busts the cache" do
51
+ client1 = Twitter.client
52
+ Twitter.configure do |config|
53
+ config.consumer_key = 'abc'
54
+ config.consumer_secret = '123'
55
+ end
56
+ client2 = Twitter.client
57
+ client1.should_not eq client2
58
+ end
59
+ end
60
+ end
61
+
62
+ describe ".configure" do
63
+ Twitter::Configurable.keys.each do |key|
64
+ it "sets the #{key.to_s.gsub('_', ' ')}" do
65
+ Twitter.configure do |config|
66
+ config.send("#{key}=", key)
67
+ end
68
+ Twitter.instance_variable_get(:"@#{key}").should eq key
69
+ end
70
+ end
71
+ end
72
+
73
+ describe ".credentials?" do
74
+ it "returns true if all credentials are present" do
75
+ Twitter.configure do |config|
76
+ config.consumer_key = 'CK'
77
+ config.consumer_secret = 'CS'
78
+ config.oauth_token = 'OT'
79
+ config.oauth_token_secret = 'OS'
80
+ end
81
+ Twitter.credentials?.should be_true
82
+ end
83
+ it "returns false if any credentials are missing" do
84
+ Twitter.configure do |config|
85
+ config.consumer_key = 'CK'
86
+ config.consumer_secret = 'CS'
87
+ config.oauth_token = 'OT'
88
+ end
89
+ Twitter.credentials?.should be_false
90
+ end
91
+ end
92
+
93
+ end
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+ require File.expand_path('../lib/twitter/version', __FILE__)
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.add_dependency 'faraday', '~> 0.8'
6
+ spec.add_dependency 'multi_json', '~> 1.3'
7
+ spec.add_dependency 'simple_oauth', '~> 0.1.6'
8
+ spec.add_development_dependency 'json'
9
+ spec.add_development_dependency 'maruku'
10
+ spec.add_development_dependency 'pry'
11
+ spec.add_development_dependency 'rake'
12
+ spec.add_development_dependency 'rspec'
13
+ spec.add_development_dependency 'simplecov'
14
+ spec.add_development_dependency 'timecop'
15
+ spec.add_development_dependency 'webmock'
16
+ spec.add_development_dependency 'yard'
17
+ spec.authors = ["John Nunemaker", "Wynn Netherland", "Erik Michaels-Ober", "Steve Richert"]
18
+ spec.description = %q{A Ruby interface to the Twitter API.}
19
+ spec.email = ['nunemaker@gmail.com', 'wynn.netherland@gmail.com', 'sferik@gmail.com', 'steve.richert@gmail.com']
20
+ spec.files = %w(CHANGELOG.md LICENSE.md README.md Rakefile twitter.gemspec)
21
+ spec.files += Dir.glob("lib/**/*.rb")
22
+ spec.files += Dir.glob("spec/**/*")
23
+ spec.homepage = 'https://github.com/sferik/twitter'
24
+ spec.name = 'twitter'
25
+ spec.require_paths = ['lib']
26
+ spec.required_rubygems_version = Gem::Requirement.new('>= 1.3.6')
27
+ spec.summary = spec.description
28
+ spec.test_files = Dir.glob("spec/**/*")
29
+ spec.version = Twitter::Version
30
+ end
metadata ADDED
@@ -0,0 +1,584 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: twitter
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - John Nunemaker
9
+ - Wynn Netherland
10
+ - Erik Michaels-Ober
11
+ - Steve Richert
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+ date: 2012-09-26 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: faraday
19
+ requirement: !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: '0.8'
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '0.8'
33
+ - !ruby/object:Gem::Dependency
34
+ name: multi_json
35
+ requirement: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ type: :runtime
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '1.3'
49
+ - !ruby/object:Gem::Dependency
50
+ name: simple_oauth
51
+ requirement: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: 0.1.6
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ~>
63
+ - !ruby/object:Gem::Version
64
+ version: 0.1.6
65
+ - !ruby/object:Gem::Dependency
66
+ name: json
67
+ requirement: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ type: :development
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: maruku
83
+ requirement: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: rake
115
+ requirement: !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ - !ruby/object:Gem::Dependency
130
+ name: rspec
131
+ requirement: !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ type: :development
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: simplecov
147
+ requirement: !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ none: false
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ - !ruby/object:Gem::Dependency
162
+ name: timecop
163
+ requirement: !ruby/object:Gem::Requirement
164
+ none: false
165
+ requirements:
166
+ - - ! '>='
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ type: :development
170
+ prerelease: false
171
+ version_requirements: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ - !ruby/object:Gem::Dependency
178
+ name: webmock
179
+ requirement: !ruby/object:Gem::Requirement
180
+ none: false
181
+ requirements:
182
+ - - ! '>='
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ type: :development
186
+ prerelease: false
187
+ version_requirements: !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ - !ruby/object:Gem::Dependency
194
+ name: yard
195
+ requirement: !ruby/object:Gem::Requirement
196
+ none: false
197
+ requirements:
198
+ - - ! '>='
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ none: false
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ description: A Ruby interface to the Twitter API.
210
+ email:
211
+ - nunemaker@gmail.com
212
+ - wynn.netherland@gmail.com
213
+ - sferik@gmail.com
214
+ - steve.richert@gmail.com
215
+ executables: []
216
+ extensions: []
217
+ extra_rdoc_files: []
218
+ files:
219
+ - CHANGELOG.md
220
+ - LICENSE.md
221
+ - README.md
222
+ - Rakefile
223
+ - twitter.gemspec
224
+ - lib/twitter/action/favorite.rb
225
+ - lib/twitter/action/follow.rb
226
+ - lib/twitter/action/list_member_added.rb
227
+ - lib/twitter/action/mention.rb
228
+ - lib/twitter/action/reply.rb
229
+ - lib/twitter/action/retweet.rb
230
+ - lib/twitter/action/tweet.rb
231
+ - lib/twitter/action_factory.rb
232
+ - lib/twitter/api.rb
233
+ - lib/twitter/base.rb
234
+ - lib/twitter/basic_user.rb
235
+ - lib/twitter/client.rb
236
+ - lib/twitter/configurable.rb
237
+ - lib/twitter/configuration.rb
238
+ - lib/twitter/core_ext/array.rb
239
+ - lib/twitter/core_ext/enumerable.rb
240
+ - lib/twitter/core_ext/hash.rb
241
+ - lib/twitter/core_ext/kernel.rb
242
+ - lib/twitter/core_ext/string.rb
243
+ - lib/twitter/creatable.rb
244
+ - lib/twitter/cursor.rb
245
+ - lib/twitter/default.rb
246
+ - lib/twitter/direct_message.rb
247
+ - lib/twitter/entity/hashtag.rb
248
+ - lib/twitter/entity/url.rb
249
+ - lib/twitter/entity/user_mention.rb
250
+ - lib/twitter/entity.rb
251
+ - lib/twitter/error/bad_gateway.rb
252
+ - lib/twitter/error/bad_request.rb
253
+ - lib/twitter/error/client_error.rb
254
+ - lib/twitter/error/decode_error.rb
255
+ - lib/twitter/error/forbidden.rb
256
+ - lib/twitter/error/gateway_timeout.rb
257
+ - lib/twitter/error/identity_map_key_error.rb
258
+ - lib/twitter/error/internal_server_error.rb
259
+ - lib/twitter/error/not_acceptable.rb
260
+ - lib/twitter/error/not_found.rb
261
+ - lib/twitter/error/rate_limited.rb
262
+ - lib/twitter/error/server_error.rb
263
+ - lib/twitter/error/service_unavailable.rb
264
+ - lib/twitter/error/unauthorized.rb
265
+ - lib/twitter/error.rb
266
+ - lib/twitter/factory.rb
267
+ - lib/twitter/geo/point.rb
268
+ - lib/twitter/geo/polygon.rb
269
+ - lib/twitter/geo.rb
270
+ - lib/twitter/geo_factory.rb
271
+ - lib/twitter/identity.rb
272
+ - lib/twitter/identity_map.rb
273
+ - lib/twitter/language.rb
274
+ - lib/twitter/list.rb
275
+ - lib/twitter/media/photo.rb
276
+ - lib/twitter/media_factory.rb
277
+ - lib/twitter/metadata.rb
278
+ - lib/twitter/oembed.rb
279
+ - lib/twitter/place.rb
280
+ - lib/twitter/rate_limit.rb
281
+ - lib/twitter/relationship.rb
282
+ - lib/twitter/request/multipart_with_file.rb
283
+ - lib/twitter/response/parse_json.rb
284
+ - lib/twitter/response/raise_error.rb
285
+ - lib/twitter/saved_search.rb
286
+ - lib/twitter/search_results.rb
287
+ - lib/twitter/settings.rb
288
+ - lib/twitter/size.rb
289
+ - lib/twitter/source_user.rb
290
+ - lib/twitter/suggestion.rb
291
+ - lib/twitter/target_user.rb
292
+ - lib/twitter/trend.rb
293
+ - lib/twitter/tweet.rb
294
+ - lib/twitter/user.rb
295
+ - lib/twitter/version.rb
296
+ - lib/twitter.rb
297
+ - spec/fixtures/about_me.json
298
+ - spec/fixtures/activity_summary.json
299
+ - spec/fixtures/all.json
300
+ - spec/fixtures/bad_gateway.json
301
+ - spec/fixtures/bad_request.json
302
+ - spec/fixtures/by_friends.json
303
+ - spec/fixtures/category.json
304
+ - spec/fixtures/configuration.json
305
+ - spec/fixtures/contributees.json
306
+ - spec/fixtures/contributors.json
307
+ - spec/fixtures/direct_message.json
308
+ - spec/fixtures/direct_messages.json
309
+ - spec/fixtures/end_session.json
310
+ - spec/fixtures/enhance_your_calm.text
311
+ - spec/fixtures/favorites.json
312
+ - spec/fixtures/following.json
313
+ - spec/fixtures/forbidden.json
314
+ - spec/fixtures/friendships.json
315
+ - spec/fixtures/ids.json
316
+ - spec/fixtures/ids_list.json
317
+ - spec/fixtures/ids_list2.json
318
+ - spec/fixtures/image_facets.json
319
+ - spec/fixtures/internal_server_error.json
320
+ - spec/fixtures/languages.json
321
+ - spec/fixtures/list.json
322
+ - spec/fixtures/lists.json
323
+ - spec/fixtures/locations.json
324
+ - spec/fixtures/matching_trends.json
325
+ - spec/fixtures/me.jpeg
326
+ - spec/fixtures/media_timeline.json
327
+ - spec/fixtures/members.json
328
+ - spec/fixtures/no_user_matches.json
329
+ - spec/fixtures/not_acceptable.json
330
+ - spec/fixtures/not_following.json
331
+ - spec/fixtures/not_found.json
332
+ - spec/fixtures/oembed.json
333
+ - spec/fixtures/pbjt.gif
334
+ - spec/fixtures/pengwynn.json
335
+ - spec/fixtures/phoenix_search.phoenix
336
+ - spec/fixtures/place.json
337
+ - spec/fixtures/places.json
338
+ - spec/fixtures/privacy.json
339
+ - spec/fixtures/profile_image.text
340
+ - spec/fixtures/rate_limit_status.json
341
+ - spec/fixtures/recommendations.json
342
+ - spec/fixtures/related_results.json
343
+ - spec/fixtures/resolve.json
344
+ - spec/fixtures/retweet.json
345
+ - spec/fixtures/retweeted_status.json
346
+ - spec/fixtures/retweeters_of.json
347
+ - spec/fixtures/retweets.json
348
+ - spec/fixtures/saved_search.json
349
+ - spec/fixtures/saved_searches.json
350
+ - spec/fixtures/search.json
351
+ - spec/fixtures/search_malformed.json
352
+ - spec/fixtures/service_unavailable.json
353
+ - spec/fixtures/settings.json
354
+ - spec/fixtures/sferik.json
355
+ - spec/fixtures/status.json
356
+ - spec/fixtures/status_with_media.json
357
+ - spec/fixtures/statuses.json
358
+ - spec/fixtures/suggestions.json
359
+ - spec/fixtures/tos.json
360
+ - spec/fixtures/totals.json
361
+ - spec/fixtures/trends.json
362
+ - spec/fixtures/trends_current.json
363
+ - spec/fixtures/trends_daily.json
364
+ - spec/fixtures/trends_weekly.json
365
+ - spec/fixtures/unauthorized.json
366
+ - spec/fixtures/user_search.json
367
+ - spec/fixtures/user_timeline.json
368
+ - spec/fixtures/users.json
369
+ - spec/fixtures/users_list.json
370
+ - spec/fixtures/video_facets.json
371
+ - spec/fixtures/we_concept_bg2.png
372
+ - spec/fixtures/wildcomet2.jpe
373
+ - spec/helper.rb
374
+ - spec/twitter/action/favorite_spec.rb
375
+ - spec/twitter/action/follow_spec.rb
376
+ - spec/twitter/action/list_member_added_spec.rb
377
+ - spec/twitter/action/mention_spec.rb
378
+ - spec/twitter/action/reply_spec.rb
379
+ - spec/twitter/action/retweet_spec.rb
380
+ - spec/twitter/action_factory_spec.rb
381
+ - spec/twitter/action_spec.rb
382
+ - spec/twitter/api/account_spec.rb
383
+ - spec/twitter/api/activity_spec.rb
384
+ - spec/twitter/api/blocks_spec.rb
385
+ - spec/twitter/api/direct_messages_spec.rb
386
+ - spec/twitter/api/friendships_spec.rb
387
+ - spec/twitter/api/geo_spec.rb
388
+ - spec/twitter/api/help_spec.rb
389
+ - spec/twitter/api/lists_spec.rb
390
+ - spec/twitter/api/report_spam_spec.rb
391
+ - spec/twitter/api/saved_searches_spec.rb
392
+ - spec/twitter/api/search_spec.rb
393
+ - spec/twitter/api/statuses_spec.rb
394
+ - spec/twitter/api/trends_spec.rb
395
+ - spec/twitter/api/users_spec.rb
396
+ - spec/twitter/base_spec.rb
397
+ - spec/twitter/basic_user_spec.rb
398
+ - spec/twitter/client_spec.rb
399
+ - spec/twitter/configuration_spec.rb
400
+ - spec/twitter/cursor_spec.rb
401
+ - spec/twitter/direct_message_spec.rb
402
+ - spec/twitter/error/client_error_spec.rb
403
+ - spec/twitter/error/server_error_spec.rb
404
+ - spec/twitter/error_spec.rb
405
+ - spec/twitter/geo/point_spec.rb
406
+ - spec/twitter/geo/polygon_spec.rb
407
+ - spec/twitter/geo_factory_spec.rb
408
+ - spec/twitter/geo_spec.rb
409
+ - spec/twitter/identifiable_spec.rb
410
+ - spec/twitter/list_spec.rb
411
+ - spec/twitter/media/photo_spec.rb
412
+ - spec/twitter/media_factory_spec.rb
413
+ - spec/twitter/oembed_spec.rb
414
+ - spec/twitter/place_spec.rb
415
+ - spec/twitter/rate_limit_spec.rb
416
+ - spec/twitter/relationship_spec.rb
417
+ - spec/twitter/saved_search_spec.rb
418
+ - spec/twitter/search_results_spec.rb
419
+ - spec/twitter/settings_spec.rb
420
+ - spec/twitter/size_spec.rb
421
+ - spec/twitter/source_user_spec.rb
422
+ - spec/twitter/suggestion_spec.rb
423
+ - spec/twitter/target_user_spec.rb
424
+ - spec/twitter/trend_spec.rb
425
+ - spec/twitter/tweet_spec.rb
426
+ - spec/twitter/user_spec.rb
427
+ - spec/twitter_spec.rb
428
+ homepage: https://github.com/sferik/twitter
429
+ licenses: []
430
+ post_install_message:
431
+ rdoc_options: []
432
+ require_paths:
433
+ - lib
434
+ required_ruby_version: !ruby/object:Gem::Requirement
435
+ none: false
436
+ requirements:
437
+ - - ! '>='
438
+ - !ruby/object:Gem::Version
439
+ version: '0'
440
+ required_rubygems_version: !ruby/object:Gem::Requirement
441
+ none: false
442
+ requirements:
443
+ - - ! '>='
444
+ - !ruby/object:Gem::Version
445
+ version: 1.3.6
446
+ requirements: []
447
+ rubyforge_project:
448
+ rubygems_version: 1.8.23
449
+ signing_key:
450
+ specification_version: 3
451
+ summary: A Ruby interface to the Twitter API.
452
+ test_files:
453
+ - spec/fixtures/about_me.json
454
+ - spec/fixtures/activity_summary.json
455
+ - spec/fixtures/all.json
456
+ - spec/fixtures/bad_gateway.json
457
+ - spec/fixtures/bad_request.json
458
+ - spec/fixtures/by_friends.json
459
+ - spec/fixtures/category.json
460
+ - spec/fixtures/configuration.json
461
+ - spec/fixtures/contributees.json
462
+ - spec/fixtures/contributors.json
463
+ - spec/fixtures/direct_message.json
464
+ - spec/fixtures/direct_messages.json
465
+ - spec/fixtures/end_session.json
466
+ - spec/fixtures/enhance_your_calm.text
467
+ - spec/fixtures/favorites.json
468
+ - spec/fixtures/following.json
469
+ - spec/fixtures/forbidden.json
470
+ - spec/fixtures/friendships.json
471
+ - spec/fixtures/ids.json
472
+ - spec/fixtures/ids_list.json
473
+ - spec/fixtures/ids_list2.json
474
+ - spec/fixtures/image_facets.json
475
+ - spec/fixtures/internal_server_error.json
476
+ - spec/fixtures/languages.json
477
+ - spec/fixtures/list.json
478
+ - spec/fixtures/lists.json
479
+ - spec/fixtures/locations.json
480
+ - spec/fixtures/matching_trends.json
481
+ - spec/fixtures/me.jpeg
482
+ - spec/fixtures/media_timeline.json
483
+ - spec/fixtures/members.json
484
+ - spec/fixtures/no_user_matches.json
485
+ - spec/fixtures/not_acceptable.json
486
+ - spec/fixtures/not_following.json
487
+ - spec/fixtures/not_found.json
488
+ - spec/fixtures/oembed.json
489
+ - spec/fixtures/pbjt.gif
490
+ - spec/fixtures/pengwynn.json
491
+ - spec/fixtures/phoenix_search.phoenix
492
+ - spec/fixtures/place.json
493
+ - spec/fixtures/places.json
494
+ - spec/fixtures/privacy.json
495
+ - spec/fixtures/profile_image.text
496
+ - spec/fixtures/rate_limit_status.json
497
+ - spec/fixtures/recommendations.json
498
+ - spec/fixtures/related_results.json
499
+ - spec/fixtures/resolve.json
500
+ - spec/fixtures/retweet.json
501
+ - spec/fixtures/retweeted_status.json
502
+ - spec/fixtures/retweeters_of.json
503
+ - spec/fixtures/retweets.json
504
+ - spec/fixtures/saved_search.json
505
+ - spec/fixtures/saved_searches.json
506
+ - spec/fixtures/search.json
507
+ - spec/fixtures/search_malformed.json
508
+ - spec/fixtures/service_unavailable.json
509
+ - spec/fixtures/settings.json
510
+ - spec/fixtures/sferik.json
511
+ - spec/fixtures/status.json
512
+ - spec/fixtures/status_with_media.json
513
+ - spec/fixtures/statuses.json
514
+ - spec/fixtures/suggestions.json
515
+ - spec/fixtures/tos.json
516
+ - spec/fixtures/totals.json
517
+ - spec/fixtures/trends.json
518
+ - spec/fixtures/trends_current.json
519
+ - spec/fixtures/trends_daily.json
520
+ - spec/fixtures/trends_weekly.json
521
+ - spec/fixtures/unauthorized.json
522
+ - spec/fixtures/user_search.json
523
+ - spec/fixtures/user_timeline.json
524
+ - spec/fixtures/users.json
525
+ - spec/fixtures/users_list.json
526
+ - spec/fixtures/video_facets.json
527
+ - spec/fixtures/we_concept_bg2.png
528
+ - spec/fixtures/wildcomet2.jpe
529
+ - spec/helper.rb
530
+ - spec/twitter/action/favorite_spec.rb
531
+ - spec/twitter/action/follow_spec.rb
532
+ - spec/twitter/action/list_member_added_spec.rb
533
+ - spec/twitter/action/mention_spec.rb
534
+ - spec/twitter/action/reply_spec.rb
535
+ - spec/twitter/action/retweet_spec.rb
536
+ - spec/twitter/action_factory_spec.rb
537
+ - spec/twitter/action_spec.rb
538
+ - spec/twitter/api/account_spec.rb
539
+ - spec/twitter/api/activity_spec.rb
540
+ - spec/twitter/api/blocks_spec.rb
541
+ - spec/twitter/api/direct_messages_spec.rb
542
+ - spec/twitter/api/friendships_spec.rb
543
+ - spec/twitter/api/geo_spec.rb
544
+ - spec/twitter/api/help_spec.rb
545
+ - spec/twitter/api/lists_spec.rb
546
+ - spec/twitter/api/report_spam_spec.rb
547
+ - spec/twitter/api/saved_searches_spec.rb
548
+ - spec/twitter/api/search_spec.rb
549
+ - spec/twitter/api/statuses_spec.rb
550
+ - spec/twitter/api/trends_spec.rb
551
+ - spec/twitter/api/users_spec.rb
552
+ - spec/twitter/base_spec.rb
553
+ - spec/twitter/basic_user_spec.rb
554
+ - spec/twitter/client_spec.rb
555
+ - spec/twitter/configuration_spec.rb
556
+ - spec/twitter/cursor_spec.rb
557
+ - spec/twitter/direct_message_spec.rb
558
+ - spec/twitter/error/client_error_spec.rb
559
+ - spec/twitter/error/server_error_spec.rb
560
+ - spec/twitter/error_spec.rb
561
+ - spec/twitter/geo/point_spec.rb
562
+ - spec/twitter/geo/polygon_spec.rb
563
+ - spec/twitter/geo_factory_spec.rb
564
+ - spec/twitter/geo_spec.rb
565
+ - spec/twitter/identifiable_spec.rb
566
+ - spec/twitter/list_spec.rb
567
+ - spec/twitter/media/photo_spec.rb
568
+ - spec/twitter/media_factory_spec.rb
569
+ - spec/twitter/oembed_spec.rb
570
+ - spec/twitter/place_spec.rb
571
+ - spec/twitter/rate_limit_spec.rb
572
+ - spec/twitter/relationship_spec.rb
573
+ - spec/twitter/saved_search_spec.rb
574
+ - spec/twitter/search_results_spec.rb
575
+ - spec/twitter/settings_spec.rb
576
+ - spec/twitter/size_spec.rb
577
+ - spec/twitter/source_user_spec.rb
578
+ - spec/twitter/suggestion_spec.rb
579
+ - spec/twitter/target_user_spec.rb
580
+ - spec/twitter/trend_spec.rb
581
+ - spec/twitter/tweet_spec.rb
582
+ - spec/twitter/user_spec.rb
583
+ - spec/twitter_spec.rb
584
+ has_rdoc: