twitter 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: