mikedamage-tweeb 0.3.0 → 0.4.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 (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/tweeb_client.rb +25 -52
  3. metadata +14 -3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.4.0
@@ -1,6 +1,7 @@
1
1
  require "time"
2
2
  require "rubygems"
3
3
  require "httparty"
4
+ require "mash"
4
5
  require File.join(File.dirname(__FILE__), "tweeb_client_error.rb")
5
6
  require File.join(File.dirname(__FILE__), "tweeb_search.rb")
6
7
 
@@ -31,6 +32,7 @@ module Tweeb
31
32
  }.merge(options)
32
33
  self.class.basic_auth(@username, @password)
33
34
  @symbolizer = lambda {|hash| hash['user'].symbolize_keys; hash.symbolize_keys; return hash }
35
+ @masher = lambda {|hash| Mash.new(hash) }
34
36
  @rate_limit_total = 150
35
37
  @rate_limit_reset = nil
36
38
  @rate_limit_remaining = nil
@@ -55,9 +57,8 @@ module Tweeb
55
57
  end
56
58
  timeline = Array.new
57
59
  json.each do |tweet|
58
- tweet.symbolize_keys
59
- tweet[:user].symbolize_keys
60
- timeline << tweet
60
+ mash = @masher.call(tweet)
61
+ timeline << mash
61
62
  end
62
63
  timeline
63
64
  end
@@ -73,9 +74,8 @@ module Tweeb
73
74
  end
74
75
  timeline = Array.new
75
76
  json.each do |tweet|
76
- tweet.symbolize_keys
77
- tweet[:user].symbolize_keys
78
- timeline << tweet
77
+ mash = @masher.call(tweet)
78
+ timeline << mash
79
79
  end
80
80
  timeline
81
81
  end
@@ -91,9 +91,8 @@ module Tweeb
91
91
  end
92
92
  timeline = Array.new
93
93
  json.each do |tweet|
94
- tweet.symbolize_keys
95
- tweet[:user].symbolize_keys
96
- timeline << tweet
94
+ mash = @masher.call(tweet)
95
+ timeline << mash
97
96
  end
98
97
  timeline
99
98
  end
@@ -109,9 +108,8 @@ module Tweeb
109
108
  end
110
109
  timeline = Array.new
111
110
  json.each do |tweet|
112
- tweet.symbolize_keys
113
- tweet[:user].symbolize_keys
114
- timeline << tweet
111
+ mash = @masher.call(tweet)
112
+ timeline << mash
115
113
  end
116
114
  timeline
117
115
  end
@@ -125,16 +123,12 @@ module Tweeb
125
123
  else
126
124
  json = self.class.post("/statuses/update.json", :query => {:status => message})
127
125
  end
128
- json.symbolize_keys
129
- json[:user].symbolize_keys
130
- json
126
+ @masher.call(json)
131
127
  end
132
128
 
133
129
  def delete_status(id)
134
130
  json = self.class.delete("/statuses/destroy/#{id}.json")
135
- json.symbolize_keys
136
- json[:user].symbolize_keys
137
- json
131
+ @masher.call(json)
138
132
  end
139
133
 
140
134
  def search(query, options={})
@@ -152,9 +146,7 @@ module Tweeb
152
146
 
153
147
  def get_status(id)
154
148
  json = self.class.get("/statuses/show/#{id}.json")
155
- json.symbolize_keys
156
- json[:user].symbolize_keys
157
- json
149
+ @masher.call(json)
158
150
  end
159
151
 
160
152
  def friends(options={})
@@ -165,16 +157,15 @@ module Tweeb
165
157
  end
166
158
  timeline = Array.new
167
159
  json.each do |tweet|
168
- tweet.symbolize_keys
169
- tweet[:user].symbolize_keys
170
- timeline << tweet
160
+ mash = @masher.call(tweet)
161
+ timeline << mash
171
162
  end
172
163
  timeline
173
164
  end
174
165
 
175
166
  def show_user(id)
176
167
  json = self.class.get("/users/show/#{id}.json")
177
- json.symbolize_keys
168
+ @masher.call(json)
178
169
  end
179
170
 
180
171
  def direct_message_inbox(options={})
@@ -188,10 +179,8 @@ module Tweeb
188
179
  end
189
180
  timeline = Array.new
190
181
  json.each do |tweet|
191
- tweet.symbolize_keys
192
- tweet[:sender].symbolize_keys
193
- tweet[:recipient].symbolize_keys
194
- timeline << tweet
182
+ mash = @masher.call(tweet)
183
+ timeline << mash
195
184
  end
196
185
  timeline
197
186
  end
@@ -206,43 +195,31 @@ module Tweeb
206
195
  json = self.class.get("/direct_messages/sent.json", :query => options)
207
196
  end
208
197
  json.each do |tweet|
209
- tweet.symbolize_keys
210
- tweet[:sender].symbolize_keys
211
- tweet[:recipient].symbolize_keys
212
- timeline << tweet
198
+ mash = @masher.call(tweet)
199
+ timeline << mash
213
200
  end
214
201
  timeline
215
202
  end
216
203
 
217
204
  def direct_message(recipient, message)
218
205
  json = self.class.post("/direct_messages/new.json", :query => {:user => recipient, :text => message})
219
- json.symbolize_keys
220
- json[:sender].symbolize_keys
221
- json[:recipient].symbolize_keys
222
- json
206
+ @masher.call(json)
223
207
  end
224
208
 
225
209
  def delete_direct_message(id)
226
210
  json = self.class.delete("/direct_messages/destroy.json", :query => {:id => id})
227
- json.symbolize_keys
228
- json[:sender].symbolize_keys
229
- json[:recipient].symbolize_keys
230
- json
211
+ @masher.call(json)
231
212
  end
232
213
 
233
214
  def befriend(user, options={:follow => true})
234
215
  json = self.class.post("/friendships/create.json", :query => {:id => user}.merge(options))
235
- json.symbolize_keys
236
- json[:status].symbolize_keys
237
- json
216
+ @masher.call(json)
238
217
  end
239
218
  alias_method :follow, :befriend
240
219
 
241
220
  def unfriend(user)
242
221
  json = self.class.delete("/friendships/destroy.json", :query => {:id => user})
243
- json.symbolize_keys
244
- json[:status].symbolize_keys
245
- json
222
+ @masher.call(json)
246
223
  end
247
224
  alias_method :unfollow, :unfriend
248
225
 
@@ -263,11 +240,7 @@ module Tweeb
263
240
  end
264
241
 
265
242
  json = self.class.get("/friendships/show.json", :query => query)
266
- json.symbolize_keys
267
- relationship = json[:relationship].symbolize_keys
268
- relationship[:source].symbolize_keys
269
- relationship[:target].symbolize_keys
270
- relationship
243
+ @masher.call(json)
271
244
  end
272
245
 
273
246
  def friendship_exists?(target, source=nil)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mikedamage-tweeb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Green
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-15 00:00:00 -07:00
12
+ date: 2009-08-14 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,6 +22,16 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 0.4.3
24
24
  version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: mash
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.0.3
34
+ version:
25
35
  description:
26
36
  email: mike.is.green@gmail.com
27
37
  executables: []
@@ -51,6 +61,7 @@ files:
51
61
  - spec/tweeb_stream_spec.rb
52
62
  has_rdoc: false
53
63
  homepage: http://github.com/mikedamage/tweeb
64
+ licenses:
54
65
  post_install_message:
55
66
  rdoc_options:
56
67
  - --charset=UTF-8
@@ -71,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
82
  requirements: []
72
83
 
73
84
  rubyforge_project:
74
- rubygems_version: 1.2.0
85
+ rubygems_version: 1.3.5
75
86
  signing_key:
76
87
  specification_version: 3
77
88
  summary: Tweeb is a really simple, bare bones Twitter library made possible by HTTParty