twitter-jruby 0.9.5.2010050701

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 (88) hide show
  1. data/History +282 -0
  2. data/License +20 -0
  3. data/Notes +33 -0
  4. data/README.rdoc +27 -0
  5. data/Rakefile +39 -0
  6. data/VERSION.yml +5 -0
  7. data/examples/connect.rb +30 -0
  8. data/examples/friendship_existance.rb +13 -0
  9. data/examples/helpers/config_store.rb +38 -0
  10. data/examples/httpauth.rb +11 -0
  11. data/examples/ids.rb +13 -0
  12. data/examples/lists.rb +11 -0
  13. data/examples/oauth.rb +27 -0
  14. data/examples/search.rb +15 -0
  15. data/examples/timeline.rb +19 -0
  16. data/examples/tumblr.rb +9 -0
  17. data/examples/unauthorized.rb +16 -0
  18. data/examples/update.rb +11 -0
  19. data/examples/user.rb +5 -0
  20. data/lib/twitter.rb +146 -0
  21. data/lib/twitter/base.rb +390 -0
  22. data/lib/twitter/httpauth.rb +39 -0
  23. data/lib/twitter/local_trends.rb +15 -0
  24. data/lib/twitter/oauth.rb +58 -0
  25. data/lib/twitter/request.rb +71 -0
  26. data/lib/twitter/search.rb +159 -0
  27. data/lib/twitter/trends.rb +41 -0
  28. data/test/fixtures/blocking.json +1632 -0
  29. data/test/fixtures/firehose.json +1 -0
  30. data/test/fixtures/follower_ids.json +1 -0
  31. data/test/fixtures/followers.json +1 -0
  32. data/test/fixtures/friend_ids.json +1 -0
  33. data/test/fixtures/friends_timeline.json +1 -0
  34. data/test/fixtures/friendship.json +1 -0
  35. data/test/fixtures/friendship_exists.json +1 -0
  36. data/test/fixtures/home_timeline.json +1 -0
  37. data/test/fixtures/ids.json +1 -0
  38. data/test/fixtures/list.json +1 -0
  39. data/test/fixtures/list_statuses.json +1 -0
  40. data/test/fixtures/list_statuses_1_1.json +1 -0
  41. data/test/fixtures/list_statuses_2_1.json +1 -0
  42. data/test/fixtures/list_subscriptions.json +1 -0
  43. data/test/fixtures/list_users.json +1 -0
  44. data/test/fixtures/lists.json +1 -0
  45. data/test/fixtures/memberships.json +1 -0
  46. data/test/fixtures/mentions.json +1 -0
  47. data/test/fixtures/not_found.json +1 -0
  48. data/test/fixtures/people_search.json +39 -0
  49. data/test/fixtures/rate_limit_exceeded.json +1 -0
  50. data/test/fixtures/report_spam.json +41 -0
  51. data/test/fixtures/retweet.json +1 -0
  52. data/test/fixtures/retweeted_by_me.json +1 -0
  53. data/test/fixtures/retweeted_to_me.json +1 -0
  54. data/test/fixtures/retweeters_of_tweet.json +166 -0
  55. data/test/fixtures/retweets.json +1 -0
  56. data/test/fixtures/retweets_of_me.json +1 -0
  57. data/test/fixtures/sample-image.png +0 -0
  58. data/test/fixtures/saved_search.json +7 -0
  59. data/test/fixtures/saved_searches.json +16 -0
  60. data/test/fixtures/search.json +1 -0
  61. data/test/fixtures/search_from_jnunemaker.json +1 -0
  62. data/test/fixtures/status.json +1 -0
  63. data/test/fixtures/status_show.json +1 -0
  64. data/test/fixtures/trends_available.json +253 -0
  65. data/test/fixtures/trends_current.json +1 -0
  66. data/test/fixtures/trends_current_exclude.json +1 -0
  67. data/test/fixtures/trends_daily.json +1925 -0
  68. data/test/fixtures/trends_daily_date.json +1 -0
  69. data/test/fixtures/trends_daily_exclude.json +1 -0
  70. data/test/fixtures/trends_location.json +57 -0
  71. data/test/fixtures/trends_weekly.json +1 -0
  72. data/test/fixtures/trends_weekly_date.json +1 -0
  73. data/test/fixtures/trends_weekly_exclude.json +1 -0
  74. data/test/fixtures/unauthorized.json +1 -0
  75. data/test/fixtures/update_profile_background_image.json +1 -0
  76. data/test/fixtures/update_profile_image.json +1 -0
  77. data/test/fixtures/user.json +1 -0
  78. data/test/fixtures/user_timeline.json +710 -0
  79. data/test/fixtures/users.json +1 -0
  80. data/test/test_helper.rb +46 -0
  81. data/test/twitter/base_test.rb +426 -0
  82. data/test/twitter/httpauth_test.rb +76 -0
  83. data/test/twitter/oauth_test.rb +108 -0
  84. data/test/twitter/request_test.rb +217 -0
  85. data/test/twitter/search_test.rb +208 -0
  86. data/test/twitter/trends_test.rb +112 -0
  87. data/test/twitter_test.rb +106 -0
  88. metadata +280 -0
data/History ADDED
@@ -0,0 +1,282 @@
1
+ 0.9.5 - April, 21, 2010
2
+ * Saved searches (@zmoazeni)
3
+ * Patch to handle nil in .each in Search.fetch (@sferik)
4
+ * Added report_spam - Christopher Bailey
5
+ * Tests for friendship_exists? (@sferik)
6
+ * YAJL for JSON (@sferik)
7
+ * Cursors for lists (@moazeni)
8
+ 0.9.4 - March 30, 2010
9
+ * Rolled back search api endpoint to get around rate limiting issues
10
+ 0.9.3 - March 23, 2010
11
+ * Applied patch from @raykrueger for Ruby 1.8.6 compatibility
12
+ 0.9.2 - March 24, 2010
13
+ * More patches from @sferik for better authentication error handling and tests
14
+ 0.9.1 - March 23, 2010
15
+ * More patches from @sferik for bug fixes, removed rubygems dependencies, and more
16
+ 0.9.0 - March 20, 2010
17
+ * Added support for new retweeted_by and retweeted_by ids methods
18
+ * Added support for popular/recent search
19
+ * Patch from @sferik for API versioning and bulk user import
20
+ * Patch from @abozanich for search exclusions
21
+ 0.8.6 - March 11, 2010
22
+ * Patch from @dewski for httparty version
23
+ 0.8.5 - February 21, 2010
24
+ * Patch from @cyu to add fetch_next_page to search
25
+ 0.8.4 - February 11, 2010
26
+ * Added membership query options // thanks ming yeow ng
27
+ * Added support for a phrase search (instead of a group of words) from @zagari
28
+ * Added support for trends/available and trends/location
29
+ 0.8.3 - January 29, 2010
30
+ * Added patch for unauthenticated list timelines from @spastorino
31
+ 0.8.2 - January 21, 2010
32
+ * Added patch for update_profile_image from @taazza
33
+ 0.8.1 - January 12, 2010
34
+ * Added unauthenticated timeline method just for @mtodd
35
+ 0.8.0 - December 18, 2009
36
+ * Made API endpoint configurable to use services like Tumblr
37
+ 0.7.11 - December 16, 2009
38
+ * Added support for list timeline paging (patch from Chen)
39
+ 0.7.10 - December 12, 2009
40
+ * Added support for blocks/blocking
41
+ 0.7.9 - December 1, 2009
42
+ * Applied patch from ivey for retweets support
43
+ 0.7.8 - November 30, 2009
44
+ * Applied patch from ivey to use cursor with list_members
45
+ 0.7.7 - November 29, 2009
46
+ * Fixed bug when removing list members using OAuth
47
+ * Merged patch from kevn for update_profile_background
48
+ * Bumped OAuth dependency to 0.3.6
49
+ * Merged patch from rizwanreza for blocked_ids
50
+ * Merged patch from Josh Schairbaum for since_date and until_date search methods
51
+ 0.7.6 - November 25, 2009
52
+ * Patch from coderifous for home_timeline support
53
+ 0.7.5 - November 17, 2009
54
+ * Patch from hassox to swap Mash for Hashie to avoid conflicts
55
+ 0.7.4 - November 16, 2009
56
+ * Support for user search
57
+ 0.7.3 - November 5, 2009
58
+ * Support for list_subscriptions from christospappas
59
+ 0.7.2 - November 5, 2009
60
+ * Support for friendship_show from dcrec1
61
+ 0.7.1 - November 4, 2009
62
+ * Dependency changes
63
+ 0.7.0 - October 31, 2009
64
+ * Twitter lists! - based on draft API
65
+ 0.6.14 - August 16, 2009
66
+ * Lowered the oauth requirement to 0.3.4 as people are complaining about 0.3.5
67
+
68
+ 0.6.13 - July 27, 2009
69
+ * 1 minor update
70
+ * Set oauth version to >= 0.3.5 so I don't have to release new gem for each oauth update, which seems to be frequent of late
71
+
72
+ 0.6.12 - June 26, 2009
73
+ * 2 minor additions
74
+ * fixed fakeweb test issue (obie fernandez)
75
+ * added user agent option to searches
76
+
77
+ 0.6.11 - May 18, 2009
78
+ * 1 minor addition
79
+ * Added the ability to sign in with twitter instead of authorizing
80
+
81
+ 0.6.10 - May 18, 2009
82
+ * 1 cool addition
83
+ * Added full support for trends - current, daily and weekly (even allowing excluding of hashtags and for specific dates)
84
+
85
+ 0.6.9 - May 17, 2009
86
+ * 1 minor tweak
87
+ * Bumped oauth dependency version to 0.3.4.
88
+
89
+ 0.6.8 - April 23, 2009
90
+ * 1 dependency fix
91
+ * forgot to update rakefile rendering previous 0.6.7 release useless. crap!
92
+
93
+ 0.6.7 - April 23, 2009
94
+ * 1 minor fix
95
+ * Bumped httparty version to 0.4.3 which allows response.message and fixes errors that the lack of response.message was causing to the twitter gem
96
+
97
+ 0.6.6 - April 16, 2009
98
+ * 1 minor enhancement
99
+ * added ability to pass query parameters to user method
100
+ * httpauth can now accept :ssl option to use https instead of http
101
+ * Added Twitter.status method for no auth calls to fetch status
102
+ * Added Twitter.friend_ids method for no auth calls to fetch status
103
+ * Added Twitter.follower_ids method for no auth calls to fetch status
104
+
105
+ 0.6.5 - April 15, 2009
106
+ * 1 bug fix
107
+ * fixed that friend_ids and follower_ids were bombing from trying to mash them. Added :mash option to Twitter::Request so I can specifically not mash certain responses from twitter
108
+
109
+ 0.6.4 - April 14, 2009
110
+ * 1 minor tweak
111
+ * More explicit about dependency versions in gemspec and when requiring.
112
+
113
+ 0.6.3 - April 14, 2009
114
+ * 1 minor addition
115
+ * Added Twitter.user method to get user's information without authenticating
116
+
117
+ 0.6.2 - April 14, 2009
118
+ * 1 minor addition
119
+ * added max to search so you can set the max id that should be used
120
+
121
+ 0.6.1 - April 12, 2009
122
+ * 1 minor fix
123
+ * Had two friend_ids functions. Renamed one of them to follower_ids.
124
+
125
+ 0.6.0 - April 11, 2009
126
+ * 1 feature addition
127
+ * Added http authentication back in. You can now use oauth or http auth as your client.
128
+
129
+ 0.5.3 - April 10, 2009
130
+ * 1 minor fix
131
+ * Twitter API assumed follow true whether true or false. Now only sending follow along to request if follow is true for calls to friendship_create.
132
+
133
+ 0.5.2 - April 8, 2009
134
+ * 4 minor fixes
135
+ * added mash as an install dependency, forgot it initially
136
+ * fixed that search wasn't taking into account a bunch of options duh!
137
+ * fixed some missing vars and stuff in exception raising
138
+ * added development dependencies to rake file to make that more explicit (technomancy)
139
+ * lame workaround for Mash#hash that allows using return objects in sets and such (technomancy)
140
+
141
+ 0.5.1 - April 5, 2009
142
+ * 1 minor change
143
+ * Added data error hash returned from twitter to a few of the exceptions to help with debugging
144
+ * Fixed friendship_exists?. Was throwing mash stringify keys error because it was returning true or false instead of hash or array.
145
+
146
+ 0.5.0 - April 3, 2009
147
+ * 1 major rewrite for OAuth
148
+ * Backwards compatibility thrown to the wind
149
+ * Proxy no longer supported (someone please add it back in, I never use proxies)
150
+ * Identica support killed with an axe (nothing against them but I don't use it)
151
+ * CLI shot to death (will be reborn at a later date using oauth and its own gem)
152
+
153
+ 0.4.3 - February 21, 2009
154
+ * 1 minor enhancement
155
+ * verify_credentials now returns a Twitter::User rather than an hpricot doc
156
+
157
+ 0.4.2 - February 10, 2009
158
+ * 1 minor enhancement
159
+ * Adding the Social Graph API methods (Josh Owens)
160
+
161
+ 0.4.1 - January 1, 2009
162
+ * 4 minor enhancements and 2 bug fixes:
163
+ * Added better exception handling (Billy Gray)
164
+ * Added page to search (Michael Ivey)
165
+ * Adding an option to display tweets on CLI in reverse order (oldest first). (Cameron Booth)
166
+ * Added in_reply_to_status_id option for replying to statuses (anthonycrumley)
167
+ * Fixed a bug where the @config was improperly set (K. Adam Christensen)
168
+ * Fix verify_credentials to include a format (breaks in laconica). (dustin)
169
+
170
+ 0.4.0 - December 23, 2008
171
+ * 3 major changes
172
+ * Removed active support as dependency
173
+ * Removed CLI dependencies from install dependency list
174
+ (they are now only installed by you manually)
175
+ * Switched to echoe for gem managment
176
+
177
+ 0.3.7 - August 26, 2008
178
+ * Fixed source param not getting through
179
+
180
+ 0.3.6 - August 11, 2008
181
+ * Fixed a few more methods that required post.
182
+ * Refactored the remaining methods that were not using #request to use it.
183
+
184
+ 0.3.5 - August 4, 2008
185
+ * Removed sqlite-ruby 1.2.2 as a dependency due to install issues on linux
186
+
187
+ 0.3.4 - August 3, 2008
188
+ * Added search support
189
+
190
+ 0.3.3 - August 3, 2008
191
+ * Now has option for host when initializing to support identi.ca (Dustin Sallings)
192
+ * Twitter changed a bunch of methods to POST only so I updated those to now work
193
+
194
+ 0.3.2 - July 26, 2008
195
+ * added the CLI gems as dependencies for now until I separate out the CLI from the API wrapper
196
+ * cleaner CLI errors for no active account or no accounts at all
197
+ * remove sets a new active account if there are none
198
+ * added username and password optional arguments to add
199
+ * added import attempt on install and on anything that uses #current_account helper
200
+
201
+ 0.3.1 - July 23, 2008
202
+ * added open to CLI twitter open jnunemaker would open default browser to http://twitter.com/jnunemaker
203
+ * added -f to timeline and replies which ignores the since_id and shows all results
204
+ * added clear_config to remove all cached since id's and such
205
+ * Majorly pimped the output of timelines and replies.
206
+
207
+ 0.3.0 - July 22, 2008
208
+ * complete rewrite of CLI. Now supports multiple accounts and changing between them.
209
+ * added source, truncated, in_reply_to_status_id, in_reply_to_user_id, and favorited to Twitter::Status
210
+ * added protected to Twitter::User
211
+ * d CLI method now takes standard input like post
212
+ * Rewrote several methods that had since parameter to now use a hash instead. This makes it more flexible as API updates.
213
+ * Rewrote the methods that took lite or since as an argument to instead take a hash.
214
+ * added Twitter::Base#friendship_exists?
215
+ * added Twitter::Base#update_location
216
+ * added Twitter::Base#update_delivery_device
217
+ * added Twitter::Base#favorites
218
+ * added Twitter::Base#create_favorite
219
+ * added Twitter::Base#destroy_favorite
220
+ * added Twitter::Base#block
221
+ * added Twitter::Base#unblock
222
+
223
+ BACKWORDS COMPATIBILITY BREAK:
224
+ Any method that you have using lite or since as an argument
225
+ will no longer work with this version. Simply change to a
226
+ hash and you'll be fine. For example:
227
+
228
+ friends(true) would now be friends(:lite => true)
229
+
230
+ 0.2.7 - June 29, 2008
231
+ * added #rate_limit_status (Daniel Morrison)
232
+ * added source parameter option to Base#post
233
+ * added twittergem as source when posting from command line
234
+ * Twitter::RateExceeded raised when you hit your limit (Jim O'Leary)
235
+ * Twitter::Unavailable raised when twitter returns 503
236
+ * Twitter::CantConnect is now more descriptive as to what is the problem when it is raised during a request
237
+ * quoting your message when using twitter post on the command line is now optional (Benoit Caccinolo)
238
+ * aliased post to p on command line so it's shorter (Benoit Caccinolo)
239
+ * unescaped html and added some color in command line view (Miles Z. Sterrett)
240
+ * added gemspec (technoweenie, Miles Z. Sterrett)
241
+ * Fixed stack trace error on first command line operation (Matt Rose)
242
+ 0.2.6 - April 2, 2008
243
+ * found a more simple way of doing stdin without any extra gem dependencies
244
+ 0.2.5 - April 2, 2008
245
+ * Command line interface can now use stdin for posting (ideas and example code from Jeremy Friesen)
246
+ $ twitter post 'test without stdin' # => twitters: test without stdin
247
+ $ echo 'test with stdin' | twitter post 'and an argv[1]' # => twitters: test with stdin and an argv[1]
248
+ $ echo 'test with stdin without any argv[1]' | twitter post # => twitters: test with stdin without any argv[1]
249
+ 0.2.4 - Mar 31, 2008
250
+ * Added lite option to friends and followers, which doesn't include the user's current status (Daniel Morrison)
251
+ * Updated since option to use HTTP header, and added the option on timeline() and replies(). (Daniel Morrison)
252
+ 0.2.3 - Jan 16, 2008
253
+ * added d to command line interface twitter d jnunemaker 'hola' (Humbucker)
254
+ * added progress dots when posting for confirmation when twitter is running slow (Hendy Irawan)
255
+ 0.2.2 - added leave and follow which are new twitter api methods for turning notifications on and off
256
+ 0.2.0 - Aug 4, 2007
257
+ * added sent_messages
258
+ * alias direct_messages to received_messages
259
+ * added create_friendship
260
+ * added destroy_friendship
261
+ * added featured to retrieve the featured twitter users
262
+ * added replies
263
+ * added destroy to destroy a status by id
264
+ * added status to find a status by id
265
+ * added active support as an extra dependency
266
+ * implemented d method to send direct messages (jnewland)
267
+ * fixed since argument in direct_messages method (jnewland)
268
+ 0.1.1 - May 20, 2007
269
+ * hpricot 0.5+ now supported; just a bug fix (Ryan Waldron is the man!)
270
+ 0.1.0 - March 31, 2007
271
+ * added d method for creating direct messages (waiting for it to work as documented)
272
+ * added featured method for getting featured users statuses (waiting for it to work as documented)
273
+ * added direct_messages method
274
+ * added friends_for method
275
+ * added a few tests
276
+ * removed relative_created_at as it is deprecated
277
+ * separated out the call method into call, request and parse methods
278
+ 0.0.5 - just a bit of code cleanup
279
+ 0.0.4 - added :location, :description, :url, :profile_image_url to user class (Alex Payne)
280
+ 0.0.3 - added a bit more informative message when things go wrong
281
+ 0.0.2 - added the command line options i forgot to add (friend and follower); improved some docs
282
+ 0.0.1 - initial release
data/License ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 John Nunemaker
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Notes ADDED
@@ -0,0 +1,33 @@
1
+ *****************************************************************
2
+ * From Twitter API Docs, so I don't have to keep going to them. *
3
+ *****************************************************************
4
+
5
+ http://apiwiki.twitter.com/REST+API+Documentation
6
+
7
+ 200 OK: everything went awesome.
8
+ 304 Not Modified: there was no new data to return.
9
+ 400 Bad Request: your request is invalid, and we'll return an error message that tells you why. This is the status code returned if you've exceeded the rate limit (see below).
10
+ 401 Not Authorized: either you need to provide authentication credentials, or the credentials provided aren't valid.
11
+ 403 Forbidden: we understand your request, but are refusing to fulfill it. An accompanying error message should explain why.
12
+ 404 Not Found: either you're requesting an invalid URI or the resource in question doesn't exist (ex: no such user).
13
+ 500 Internal Server Error: we did something wrong. Please post to the group about it and the Twitter team will investigate.
14
+ 502 Bad Gateway: returned if Twitter is down or being upgraded.
15
+ 503 Service Unavailable: the Twitter servers are up, but are overloaded with requests. Try again later.
16
+
17
+ **********
18
+ * Errors *
19
+ **********
20
+
21
+ <?xml version="1.0" encoding="UTF-8"?>
22
+ <hash>
23
+ <request>/direct_messages/destroy/456.xml</request>
24
+ <error>No direct message with that ID found.</error>
25
+ </hash>
26
+
27
+ **********************
28
+ * Rate Limit Headers *
29
+ **********************
30
+
31
+ X-RateLimit-Limit the current limit in effect
32
+ X-RateLimit-Remaining the number of hits remaining before you are rate limited
33
+ X-RateLimit-Reset the time the current rate limiting period ends (in epoch time, number of seconds since 1970-01-01 00:00:00)
data/README.rdoc ADDED
@@ -0,0 +1,27 @@
1
+ = twitter-jruby
2
+
3
+ The ruby twitter gem for JRuby. Based on twitter gem.
4
+
5
+ The gem heard round the world and famous on the streets. Haha. This gem *works with both oauth and http auth*, if you care.
6
+
7
+ For now this is just an API wrapper. The command line interface is temporarily dead until I have time to make it work with oauth. At that point, I'll make it a new gem twitter-cli or something and it will depend on this gem to work. That will keep the separation of the api wrapper and cli and fix a lot of dependency issues.
8
+
9
+ == examples
10
+
11
+ twitter gem:
12
+ See the examples directory.
13
+
14
+ http://github.com/jnunemaker/twitter/tree/master/examples
15
+
16
+ == docs
17
+
18
+ twitter gem:
19
+ http://rdoc.info/projects/jnunemaker/twitter
20
+
21
+ == Copyright
22
+
23
+ twitter gem:
24
+ Copyright (c) 2009 John Nunemaker. See LICENSE for details.
25
+
26
+ twitter-jruby:
27
+ Koichi Fujikawa
data/Rakefile ADDED
@@ -0,0 +1,39 @@
1
+ require "rake"
2
+ require "jeweler"
3
+
4
+ Jeweler::Tasks.new do |gem|
5
+ gem.name = "twitter-jruby"
6
+ gem.summary = %Q{wrapper for the twitter api on JRuby}
7
+ gem.email = "fujibee@gmail.com"
8
+ gem.homepage = "http://github.com/fujibee/twitter-jruby"
9
+ gem.authors = ["John Nunemaker", "Wynn Netherland", "Koichi Fujikawa"]
10
+ gem.files = FileList["[A-Z]*", "{examples,lib,test}/**/*"]
11
+
12
+ gem.add_dependency("oauth", ">= 0.3.5")
13
+ gem.add_dependency("hashie", "~> 0.2.0")
14
+ gem.add_dependency("httparty", "~> 0.5.0")
15
+ gem.add_dependency("json-jruby")
16
+
17
+ gem.add_development_dependency("shoulda", "~> 2.10.0")
18
+ gem.add_development_dependency("jnunemaker-matchy", "~> 0.4.0")
19
+ gem.add_development_dependency("mocha", "~> 0.9.0")
20
+ gem.add_development_dependency("fakeweb", "~> 1.2.0")
21
+ end
22
+
23
+ Jeweler::GemcutterTasks.new
24
+
25
+ require "rake/testtask"
26
+ Rake::TestTask.new(:test) do |test|
27
+ test.libs << "test"
28
+ test.ruby_opts << "-rubygems"
29
+ test.pattern = "test/**/*_test.rb"
30
+ test.verbose = true
31
+ end
32
+
33
+ task :default => :test
34
+ task :test => :check_dependencies
35
+
36
+ desc "Upload website files to rubyforge"
37
+ task :website do
38
+ sh %{rsync -av website/ jnunemaker@rubyforge.org:/var/www/gforge-projects/twitter}
39
+ end
data/VERSION.yml ADDED
@@ -0,0 +1,5 @@
1
+ ---
2
+ :minor: 9
3
+ :patch: 5
4
+ :build: 2010050701
5
+ :major: 0
@@ -0,0 +1,30 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'twitter')
2
+ require File.join(File.dirname(__FILE__), 'helpers', 'config_store')
3
+ require 'pp'
4
+
5
+ config = ConfigStore.new("#{ENV['HOME']}/.twitter")
6
+ oauth = Twitter::OAuth.new(config['token'], config['secret'])
7
+
8
+ if config['atoken'] && config['asecret']
9
+ oauth.authorize_from_access(config['atoken'], config['asecret'])
10
+ twitter = Twitter::Base.new(oauth)
11
+ pp twitter.friends_timeline
12
+
13
+ elsif config['rtoken'] && config['rsecret']
14
+ oauth.authorize_from_request(config['rtoken'], config['rsecret'], 'PIN')
15
+ twitter = Twitter::Base.new(oauth)
16
+ pp twitter.friends_timeline
17
+
18
+ config.update({
19
+ 'atoken' => oauth.access_token.token,
20
+ 'asecret' => oauth.access_token.secret,
21
+ }).delete('rtoken', 'rsecret')
22
+ else
23
+ config.update({
24
+ 'rtoken' => oauth.request_token.token,
25
+ 'rsecret' => oauth.request_token.secret,
26
+ })
27
+
28
+ # authorize in browser
29
+ %x(open #{oauth.request_token.authorize_url})
30
+ end
@@ -0,0 +1,13 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'twitter')
2
+ require File.join(File.dirname(__FILE__), 'helpers', 'config_store')
3
+ require 'pp'
4
+
5
+ config = ConfigStore.new("#{ENV['HOME']}/.twitter")
6
+
7
+ oauth = Twitter::OAuth.new(config['token'], config['secret'])
8
+ oauth.authorize_from_access(config['atoken'], config['asecret'])
9
+
10
+ client = Twitter::Base.new(oauth)
11
+
12
+ puts client.friendship_exists?('jnunemaker', 'orderedlist')
13
+ puts client.friendship_exists?('jnunemaker', 'biz')