tuiter 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,36 +1,49 @@
1
+ == v0.0.4
2
+ * Adding remove friendship method
3
+
4
+ == v0.0.3
5
+ * Resolving a simple conflict and adding get_followers_ids method
6
+ * alterando gemspec
7
+ * adding get_friends call to api
8
+ * Autotest configuration file
9
+ * Adding followers ids retrieval method
10
+ * Testing client on try update message and result http response status error
11
+ * Added RCOV rake task
12
+ * Tests for rate_limit and shoulda macro should_load_attribute_on_initialize
13
+
1
14
  == v0.0.2
2
- * Added github profile path on AUTHORS
3
- * Bumping version, including direct message files
4
- * Updating AUTHORS. Giving credit where is due
5
- * Adding DirectMessage data structure and listing method. Bumping tiny version one up
6
- * Fixing the installation instructions on the README file
7
- * Refactoring client tests to use fakeweb and less expectations
8
- * Tests for StatusBasic and Status
9
- * Tests for User, UserBasic and UserExtended - 100% tests coverage
10
- * Added rake tasks to execute rcov
11
- * Adding some json fixtures for testing
12
- * Fixing a false cognate on README
13
- * Added initial tests
14
- * Namespace done right
15
- * Fixed requires definitely
16
- * Fixed requires again
17
- * Fixed requires
18
- * Updating README
19
- * Updating tuiter.gemspec
20
- * Adding a rake task to publish tuiter on Rubyforge
21
- * Added http proxy support to all operations
22
- * Added check RUBY_PLATFORM because JRuby does not support native extensions
23
- * Rakefile and gemspec updated, it should work fine now
24
- * Trying to fix the gemspec
25
- * Small fix on tuiter gemspec
26
- * Adding the gemspec to allow Github to generate and publish a tuiter gem
27
- * Adding the most simple and obvious example ever
28
- * The most simple and basic example that could ever be
29
- * Updating .gitignore
30
- * Adding a README, just for kicks
31
- * Moving the requires out of the client
32
- * Cleaning up some stuff, organizing things, the plumbing
33
- * Adding authors, license and changelog files
15
+ * Added github profile path on AUTHORS
16
+ * Bumping version, including direct message files
17
+ * Updating AUTHORS. Giving credit where is due
18
+ * Adding DirectMessage data structure and listing method. Bumping tiny version one up
19
+ * Fixing the installation instructions on the README file
20
+ * Refactoring client tests to use fakeweb and less expectations
21
+ * Tests for StatusBasic and Status
22
+ * Tests for User, UserBasic and UserExtended - 100% tests coverage
23
+ * Added rake tasks to execute rcov
24
+ * Adding some json fixtures for testing
25
+ * Fixing a false cognate on README
26
+ * Added initial tests
27
+ * Namespace done right
28
+ * Fixed requires definitely
29
+ * Fixed requires again
30
+ * Fixed requires
31
+ * Updating README
32
+ * Updating tuiter.gemspec
33
+ * Adding a rake task to publish tuiter on Rubyforge
34
+ * Added http proxy support to all operations
35
+ * Added check RUBY_PLATFORM because JRuby does not support native extensions
36
+ * Rakefile and gemspec updated, it should work fine now
37
+ * Trying to fix the gemspec
38
+ * Small fix on tuiter gemspec
39
+ * Adding the gemspec to allow Github to generate and publish a tuiter gem
40
+ * Adding the most simple and obvious example ever
41
+ * The most simple and basic example that could ever be
42
+ * Updating .gitignore
43
+ * Adding a README, just for kicks
44
+ * Moving the requires out of the client
45
+ * Cleaning up some stuff, organizing things, the plumbing
46
+ * Adding authors, license and changelog files
34
47
 
35
48
  == v0.0.1
36
49
  * Extracting tuiter from tuitersfera
data/lib/tuiter.log CHANGED
@@ -69,3 +69,48 @@ I, [2009-04-04T11:27:33.356890 #877] INFO -- : [Tuiter:877] Sat Apr 04 11:27:33
69
69
  I, [2009-04-05T20:41:37.553400 #2715] INFO -- : [Tuiter:2715] Sun Apr 05 20:41:37 -0300 2009 : initialize()
70
70
  I, [2009-04-05T20:41:44.512426 #2715] INFO -- : [Tuiter:2715] Sun Apr 05 20:41:44 -0300 2009 : request() query: http://twitter.com/followers/ids/el_cocho.json
71
71
  I, [2009-04-05T20:41:44.995093 #2715] INFO -- : [Tuiter:2715] Sun Apr 05 20:41:44 -0300 2009 : request() debug: http status is 200 OK
72
+ I, [2009-04-14T17:29:43.673209 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:29:43 -0300 2009 : initialize()
73
+ I, [2009-04-14T17:30:14.177041 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:30:14 -0300 2009 : initialize()
74
+ I, [2009-04-14T17:30:49.449220 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:30:49 -0300 2009 : request() query: http://twitter.com/friendships/exists.json?user_a=jacktorrance&user_b=el_cocho
75
+ I, [2009-04-14T17:30:50.093362 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:30:50 -0300 2009 : request() debug: http status is 200 OK
76
+ I, [2009-04-14T17:30:55.416097 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:30:55 -0300 2009 : request() query: http://twitter.com/friendships/exists.json?user_a=jacktorran&user_b=el_cocho
77
+ I, [2009-04-14T17:30:57.054399 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:30:57 -0300 2009 : request() http error: 403 Forbidden in /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:278:in `open_http'
78
+ I, [2009-04-14T17:30:58.953377 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:30:58 -0300 2009 : request() query: http://twitter.com/friendships/exists.json?user_a=jacktorrance&user_b=el_cocho
79
+ I, [2009-04-14T17:30:59.436056 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:30:59 -0300 2009 : request() debug: http status is 200 OK
80
+ I, [2009-04-14T17:31:11.345039 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:31:11 -0300 2009 : request() query: http://twitter.com/friendships/exists.json?user_a=jacktorrance&user_b=el_cocho
81
+ I, [2009-04-14T17:31:13.529470 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:31:13 -0300 2009 : request() debug: http status is 200 OK
82
+ I, [2009-04-14T17:31:22.881538 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:31:22 -0300 2009 : request() query: http://twitter.com/friendships/exists.json?user_a=el_cocho&user_b=jacktorrance
83
+ I, [2009-04-14T17:31:23.414882 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:31:23 -0300 2009 : request() debug: http status is 200 OK
84
+ I, [2009-04-14T17:33:57.281787 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:33:57 -0300 2009 : friendship_new() following: 8405350
85
+ I, [2009-04-14T17:35:44.743006 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:35:44 -0300 2009 : friendship_new() following: el_cocho
86
+ I, [2009-04-14T17:35:45.739301 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:35:45 -0300 2009 : friendship_new() success: OK
87
+ I, [2009-04-14T17:37:58.969786 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:37:58 -0300 2009 : update() sending: una loucuja es una loucuja
88
+ I, [2009-04-14T17:38:00.575303 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:38:00 -0300 2009 : update() success: OK
89
+ I, [2009-04-14T17:38:25.434711 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:38:25 -0300 2009 : update() sending: txelci 4 x liverpoul 4
90
+ I, [2009-04-14T17:38:26.858112 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:38:26 -0300 2009 : update() success: OK
91
+ I, [2009-04-14T17:40:24.503832 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:40:24 -0300 2009 : friendship_new() following: jacktorrance
92
+ I, [2009-04-14T17:40:25.489296 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:40:25 -0300 2009 : friendship_new() success: OK
93
+ I, [2009-04-14T17:41:05.943669 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:05 -0300 2009 : update() sending: all work and no play makes jack a dull bot
94
+ I, [2009-04-14T17:41:07.368539 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:07 -0300 2009 : update() success: OK
95
+ I, [2009-04-14T17:41:07.368652 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:07 -0300 2009 : update() sending: all work and no play makes jack a dull bot
96
+ I, [2009-04-14T17:41:08.125190 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:08 -0300 2009 : update() success: OK
97
+ I, [2009-04-14T17:41:08.125270 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:08 -0300 2009 : update() sending: all work and no play makes jack a dull bot
98
+ I, [2009-04-14T17:41:08.842099 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:08 -0300 2009 : update() success: OK
99
+ I, [2009-04-14T17:41:08.842202 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:08 -0300 2009 : update() sending: all work and no play makes jack a dull bot
100
+ I, [2009-04-14T17:41:09.840732 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:09 -0300 2009 : update() success: OK
101
+ I, [2009-04-14T17:41:09.840915 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:09 -0300 2009 : update() sending: all work and no play makes jack a dull bot
102
+ I, [2009-04-14T17:41:10.827714 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:10 -0300 2009 : update() success: OK
103
+ I, [2009-04-14T17:41:10.827843 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:10 -0300 2009 : update() sending: all work and no play makes jack a dull bot
104
+ I, [2009-04-14T17:41:11.520762 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:11 -0300 2009 : update() success: OK
105
+ I, [2009-04-14T17:41:11.520945 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:11 -0300 2009 : update() sending: all work and no play makes jack a dull bot
106
+ I, [2009-04-14T17:41:12.803576 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:12 -0300 2009 : update() success: OK
107
+ I, [2009-04-14T17:41:12.803678 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:12 -0300 2009 : update() sending: all work and no play makes jack a dull bot
108
+ I, [2009-04-14T17:41:13.521870 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:13 -0300 2009 : update() success: OK
109
+ I, [2009-04-14T17:41:13.521949 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:13 -0300 2009 : update() sending: all work and no play makes jack a dull bot
110
+ I, [2009-04-14T17:41:15.314131 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:15 -0300 2009 : update() success: OK
111
+ I, [2009-04-14T17:41:15.314258 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:15 -0300 2009 : update() sending: all work and no play makes jack a dull bot
112
+ I, [2009-04-14T17:41:16.017922 #42602] INFO -- : [Tuiter:42602] Tue Apr 14 17:41:16 -0300 2009 : update() success: OK
113
+ I, [2009-04-14T17:43:06.041230 #43489] INFO -- : [Tuiter:43489] Tue Apr 14 17:43:06 -0300 2009 : initialize()
114
+ I, [2009-04-14T20:56:00.218333 #56199] INFO -- : [Tuiter:56199] Tue Apr 14 20:56:00 -0300 2009 : initialize()
115
+ I, [2009-04-14T20:57:05.965585 #56199] INFO -- : [Tuiter:56199] Tue Apr 14 20:57:05 -0300 2009 : friendship_new() following: el_cocho
116
+ I, [2009-04-14T20:57:06.640700 #56199] INFO -- : [Tuiter:56199] Tue Apr 14 20:57:06 -0300 2009 : remove_friendship() success: OK
data/lib/tuiter/client.rb CHANGED
@@ -74,6 +74,22 @@ module Tuiter
74
74
  res.error!
75
75
  end
76
76
  end
77
+
78
+ def remove_friendship(user, follow = nil)
79
+ log("friendship_new() following: #{user}")
80
+ url = URI.parse("http://twitter.com/friendships/destroy/#{user}.json")
81
+ req = Net::HTTP::Post.new(url.path)
82
+ req.basic_auth @username, @password
83
+ res = new_http_for(url).start {|http| http.request(req) }
84
+ case res
85
+ when Net::HTTPSuccess, Net::HTTPRedirection
86
+ log("remove_friendship() success: OK")
87
+ return res # OK
88
+ else
89
+ log("remove_friendship() error: #{res.error!}")
90
+ res.error!
91
+ end
92
+ end
77
93
 
78
94
  def verify_credentials?
79
95
  if res = request("http://twitter.com/account/verify_credentials.json")
@@ -109,6 +125,25 @@ module Tuiter
109
125
  return nil
110
126
  end
111
127
  end
128
+
129
+ def get_friends(options = {})
130
+ if options[:id]
131
+ query = "http://twitter.com/statuses/friends/#{options[:id]}.json"
132
+ else
133
+ query = "http://twitter.com/statuses/friends.json"
134
+ end
135
+ if options[:page]
136
+ params = "?page=#{options[:page]}"
137
+ else
138
+ params = ""
139
+ end
140
+ if res = request(query+params)
141
+ data = JSON.parse(res)
142
+ return data.map { |d| User.new(d) }
143
+ else
144
+ return nil
145
+ end
146
+ end
112
147
 
113
148
  def get_replies(options = {})
114
149
  query = "http://twitter.com/statuses/replies.json"
@@ -7,7 +7,7 @@ unless defined? Tuiter::VERSION
7
7
  module VERSION
8
8
  MAJOR = 0
9
9
  MINOR = 0
10
- TINY = 3
10
+ TINY = 4
11
11
 
12
12
  STRING = [MAJOR, MINOR, TINY].join('.')
13
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tuiter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manoel Lemos
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-04-05 00:00:00 -03:00
13
+ date: 2009-04-14 00:00:00 -03:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -39,16 +39,13 @@ files:
39
39
  - README.rdoc
40
40
  - lib/tuiter
41
41
  - lib/tuiter/client.rb
42
- - lib/tuiter/client.rb~
43
42
  - lib/tuiter/data
44
43
  - lib/tuiter/data/direct_message.rb
45
- - lib/tuiter/data/direct_message.rb~
46
44
  - lib/tuiter/data/rate_limit.rb
47
45
  - lib/tuiter/data/status.rb
48
46
  - lib/tuiter/data/user.rb
49
47
  - lib/tuiter/end_points.rb
50
48
  - lib/tuiter/version.rb
51
- - lib/tuiter/version.rb~
52
49
  - lib/tuiter.log
53
50
  - lib/tuiter.rb
54
51
  - examples/basic_example.rb
@@ -1,244 +0,0 @@
1
- module Tuiter
2
-
3
- class Client
4
- attr_accessor :username, :password
5
-
6
- def initialize(options = {})
7
- @pid = Process.pid
8
- @logger = options[:logger] || Logger.new('tuiter.log')
9
- @username = options[:username]
10
- @password = options[:password]
11
- @use_proxy = setup_a_proxy?
12
- log("initialize()")
13
- end
14
-
15
- def update(status, in_reply_to_status_id = nil)
16
- log("update() sending: #{status}")
17
- url = URI.parse('http://twitter.com/statuses/update.json')
18
- req = Net::HTTP::Post.new(url.path)
19
- req.basic_auth @username, @password
20
- req.set_form_data({'status'=>status, 'in_reply_to_status_id'=>in_reply_to_status_id })
21
- res = new_http_for(url).start {|http| http.request(req) }
22
- case res
23
- when Net::HTTPSuccess, Net::HTTPRedirection
24
- log("update() success: OK")
25
- return res # OK
26
- else
27
- log("update() error: #{res.to_s}")
28
- res.error!
29
- end
30
- end
31
-
32
- def direct_new(user, text)
33
- log("direct_new() sending: #{text} to #{user}")
34
- url = URI.parse('http://twitter.com/direct_messages/new.json')
35
- req = Net::HTTP::Post.new(url.path)
36
- req.basic_auth @username, @password
37
- req.set_form_data({'user'=>user, 'text'=>text })
38
- res = new_http_for(url).start {|http| http.request(req) }
39
- case res
40
- when Net::HTTPSuccess, Net::HTTPRedirection
41
- log("direct_new() success: OK")
42
- return res # OK
43
- else
44
- log("direct_new() error: #{res.error!}")
45
- res.error!
46
- end
47
- end
48
-
49
- def direct_list(options = {})
50
- url = 'http://twitter.com/direct_messages.json'
51
- params = parse_options(options) || ""
52
-
53
- if res = request(url+params)
54
- data = JSON.parse(res)
55
- return data.map { |d| DirectMessage.new(d) }
56
- else
57
- return nil
58
- end
59
- end
60
-
61
- def friendship_new(user, follow = nil)
62
- log("friendship_new() following: #{user}")
63
- url = URI.parse("http://twitter.com/friendships/create/#{user}.json")
64
- req = Net::HTTP::Post.new(url.path)
65
- req.basic_auth @username, @password
66
- req.set_form_data({'follow'=>"true"}) if follow
67
- res = new_http_for(url).start {|http| http.request(req) }
68
- case res
69
- when Net::HTTPSuccess, Net::HTTPRedirection
70
- log("friendship_new() success: OK")
71
- return res # OK
72
- else
73
- log("friendship_new() error: #{res.error!}")
74
- res.error!
75
- end
76
- end
77
-
78
- def verify_credentials?
79
- if res = request("http://twitter.com/account/verify_credentials.json")
80
- return UserExtended.new(JSON.parse(res))
81
- else
82
- return nil
83
- end
84
- end
85
-
86
- def get_followers(options = {})
87
- if options[:id]
88
- query = "http://twitter.com/statuses/followers/#{options[:id]}.json"
89
- else
90
- query = "http://twitter.com/statuses/followers.json"
91
- end
92
- if options[:page]
93
- params = "?page=#{options[:page]}"
94
- else
95
- params = ""
96
- end
97
- if res = request(query+params)
98
- data = JSON.parse(res)
99
- return data.map { |d| User.new(d) }
100
- else
101
- return nil
102
- end
103
- end
104
-
105
- def get_replies(options = {})
106
- query = "http://twitter.com/statuses/replies.json"
107
- if options[:since]
108
- params = "?since=#{options[:since]}"
109
- elsif options[:since_id]
110
- params = "?since_id=#{options[:since_id]}"
111
- else
112
- params = ""
113
- end
114
- if options[:page]
115
- if params == ""
116
- params = "?page=#{options[:page]}"
117
- else
118
- params = params + "&" + "page=#{options[:page]}"
119
- end
120
- end
121
- if res = request(query+params)
122
- data = JSON.parse(res)
123
- return data.map { |d| Status.new(d) }
124
- else
125
- return nil
126
- end
127
- end
128
-
129
- def get_client
130
- if res = request("http://twitter.com/users/show/#{@username}.json")
131
- return UserExtended.new(JSON.parse(res))
132
- else
133
- return nil
134
- end
135
- end
136
-
137
- def get_user(id)
138
- if res = request("http://twitter.com/users/show/#{id}.json")
139
- return UserExtended.new(JSON.parse(res))
140
- else
141
- return nil
142
- end
143
- end
144
-
145
- def get_status(id)
146
- if res = request("http://twitter.com/statuses/show/#{id}.json")
147
- return Status.new(JSON.parse(res))
148
- else
149
- return nil
150
- end
151
- end
152
-
153
- def rate_limit
154
- if res = request("http://twitter.com/account/rate_limit_status.json")
155
- return RateLimit.new(JSON.parse(res))
156
- else
157
- return nil
158
- end
159
- end
160
-
161
- def follows_me?(id)
162
- if res = request("http://twitter.com/friendships/exists.json?user_a=#{id}&user_b=#{@username}")
163
- return true if res == "true"
164
- return false
165
- else
166
- return nil
167
- end
168
- end
169
-
170
- private
171
-
172
- def request(url)
173
- http = nil
174
- status = Timeout::timeout(10) do
175
- log("request() query: #{url}")
176
- http = open(url, :http_basic_authentication=>[@username, @password])
177
- log("request() debug: http status is #{http.status.join(' ')}")
178
- if http.status == ["200", "OK"]
179
- res = http.read
180
- return res
181
- end
182
- return nil
183
- end
184
- rescue Timeout::Error
185
- log("request() error: timeout error")
186
- return nil
187
- rescue OpenURI::HTTPError => e
188
- log("request() http error: #{e.message} in #{e.backtrace.first.to_s}")
189
- return nil
190
- rescue Exception => e
191
- log("request() error: #{e.message} in #{e.backtrace.first.to_s}")
192
- return nil
193
- end
194
-
195
- def parse_options(options)
196
- if options[:since]
197
- params = "?since=#{options[:since]}"
198
- elsif options[:since_id]
199
- params = "?since_id=#{options[:since_id]}"
200
- else
201
- params = ""
202
- end
203
-
204
- if options[:page]
205
- if params == ""
206
- params = "?page=#{options[:page]}"
207
- else
208
- params = params + "&" + "page=#{options[:page]}"
209
- end
210
- end
211
-
212
- return params
213
- end
214
-
215
- def setup_a_proxy?
216
- http_proxy = ENV['http_proxy'] || ENV['HTTP_PROXY'] || nil
217
-
218
- if http_proxy
219
- proxy = URI.parse(http_proxy)
220
-
221
- @proxy_host = proxy.host
222
- @proxy_port = proxy.port
223
- @proxy_user, @proxy_pass = proxy.userinfo.split(/:/) if proxy.userinfo
224
- end
225
-
226
- http_proxy != nil
227
- end
228
-
229
- def new_http_for(url)
230
- if @use_proxy
231
- http = Net::HTTP.new(url.host, url.port, @proxy_host, @proxy_port, @proxy_user, @proxy_pass)
232
- else
233
- http = Net::HTTP.new(url.host, url.port)
234
- end
235
- end
236
-
237
- def log(message)
238
- @logger.info "[Tuiter:#{@pid}] #{Time.now.to_s} : #{message}"
239
- end
240
-
241
- end
242
-
243
- end
244
-
@@ -1,44 +0,0 @@
1
- module Tuiter
2
-
3
- class DirectMessageBasic
4
- attr_accessor :id
5
- attr_accessor :text
6
- attr_accessor :created_at
7
- attr_accessor :sender_id
8
- attr_accessor :sender_screen_name
9
- attr_accessor :recipient_id
10
- attr_accessor :recipient_screen_name
11
-
12
- def initialize(data = nil)
13
- unless data.nil?
14
- @id = data['id']
15
- @text = data['text']
16
- @created_at = (data['created_at'] ? DateTime.parse(data['created_at']) : DateTime.now)
17
- @sender_id = data['sender_id']
18
- @sender_screen_name = data['sender_screen_name']
19
- @recipient_id = data['recipient_id']
20
- @recipient_screen_name = data['recipient_screen_name']
21
- else
22
- @created_at = DateTime.now
23
- end
24
- end
25
-
26
- end
27
-
28
-
29
- class DirectMessage < DirectMessageBasic
30
- attr_accessor :sender
31
- attr_accessor :recipient
32
-
33
- def initialize(data = nil)
34
- unless data.nil?
35
- super(data)
36
- @sender = UserBasic.new(data['sender'])
37
- @recipient = UserBasic.new(data['recipient'])
38
- end
39
- end
40
-
41
- end
42
-
43
- end
44
-
@@ -1,16 +0,0 @@
1
- #
2
- # Tuiter, Copyright (c) 2009 Manoel Lemos & WebCo Internet
3
- #
4
-
5
- unless defined? Tuiter::VERSION
6
- module Tuiter
7
- module VERSION
8
- MAJOR = 0
9
- MINOR = 0
10
- TINY = 2
11
-
12
- STRING = [MAJOR, MINOR, TINY].join('.')
13
- end
14
- end
15
- end
16
-