mikedamage-tweeb 0.3.0 → 0.4.0

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