featherdust 0.0.2 → 0.0.3
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.
- data/History.txt +17 -3
- data/Manifest.txt +0 -2
- data/README.txt +6 -1
- data/lib/featherdust.rb +53 -31
- data/test/test_featherdust.rb +116 -243
- data/todo.txt +0 -13
- metadata +2 -5
- data/lib/particle.rb +0 -16
- data/test/test_particle.rb +0 -0
data/History.txt
CHANGED
@@ -1,6 +1,20 @@
|
|
1
|
-
===
|
1
|
+
=== 0.0.1 / 2008-12-17
|
2
2
|
|
3
|
-
*
|
3
|
+
* First release
|
4
4
|
|
5
|
-
*
|
5
|
+
* Initial release
|
6
6
|
|
7
|
+
|
8
|
+
=== 0.0.2 / 2008-12-18
|
9
|
+
|
10
|
+
* Updated release
|
11
|
+
|
12
|
+
* Cleaned up output functionality, and tests that pass are actually testing the gem, not just passing tests.
|
13
|
+
|
14
|
+
=== 0.0.3 / 2008-12-19
|
15
|
+
|
16
|
+
* Third release
|
17
|
+
|
18
|
+
* Added in link detection
|
19
|
+
* Properly structured tests
|
20
|
+
* Plain text version
|
data/Manifest.txt
CHANGED
data/README.txt
CHANGED
@@ -22,6 +22,11 @@ If you have questions (or suggestions), please feel free to shoot them off to mi
|
|
22
22
|
== SYNOPSIS:
|
23
23
|
|
24
24
|
my_statuses = Featherdust.new("panpainter", 5)
|
25
|
+
my_statuses.display_status
|
26
|
+
|
27
|
+
=== Plain Text
|
28
|
+
plain_statuses = Featherdust.new("panpainter",5,{:display => "plain"})
|
29
|
+
plain_statuses.display_status
|
25
30
|
|
26
31
|
== REQUIREMENTS:
|
27
32
|
|
@@ -30,7 +35,7 @@ If you have questions (or suggestions), please feel free to shoot them off to mi
|
|
30
35
|
|
31
36
|
== INSTALL:
|
32
37
|
|
33
|
-
*
|
38
|
+
* gem install featherdust
|
34
39
|
|
35
40
|
== LICENSE:
|
36
41
|
|
data/lib/featherdust.rb
CHANGED
@@ -3,31 +3,57 @@
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'nokogiri'
|
5
5
|
require 'net/http'
|
6
|
+
require 'time'
|
6
7
|
|
7
8
|
class Featherdust
|
8
|
-
VERSION = '0.0.
|
9
|
+
VERSION = '0.0.3'
|
9
10
|
|
10
11
|
attr_accessor :username, :num_posts, :raw_posts, :posts, :url
|
11
|
-
def initialize(
|
12
|
+
def initialize(*args)
|
13
|
+
|
14
|
+
args.each do |a|
|
15
|
+
if a.class == String
|
16
|
+
@username = a
|
17
|
+
elsif a.class == Hash
|
18
|
+
@plain_text = a[:display] if a[:display] = "plain"
|
19
|
+
elsif a.class == Fixnum
|
20
|
+
@num_posts = a
|
21
|
+
else
|
22
|
+
raise "Wrong variable type."
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
12
26
|
@username = username
|
13
27
|
@num_posts = num_posts
|
14
28
|
@raw_posts = Array.new
|
29
|
+
|
30
|
+
|
31
|
+
@url = Nokogiri::XML(Net::HTTP.get("twitter.com", "/statuses/user_timeline/#{@username}.xml?count=#{@num_posts}"))
|
15
32
|
end
|
16
|
-
|
17
|
-
def self.run command
|
18
|
-
username = ARGV.shift
|
19
|
-
number = ARGV.shift
|
20
33
|
|
21
|
-
|
22
|
-
|
23
|
-
|
34
|
+
def display_statuses
|
35
|
+
tweets = get_statuses
|
36
|
+
if @plain_text
|
37
|
+
@posts = ""
|
38
|
+
tweets.each do |tweet|
|
39
|
+
@posts += "* #{tweet[:text]} (on #{pretty_time(tweet[:created_at])}) [http://twitter.com/#{@username}/statuses/#{tweet[:id]}]\n"
|
40
|
+
end
|
41
|
+
else
|
42
|
+
@posts = "<ul>\n"
|
43
|
+
tweets.each do |tweet|
|
44
|
+
@posts += " <li>
|
45
|
+
<p class=\"twitter_status\">#{urlize(tweet[:text])}</p>
|
46
|
+
<span><a href=\"http://twitter.com/#{@username}/statuses/#{tweet[:id]}\" title=\"Status update on Twitter\"> on #{pretty_time(tweet[:created_at])}</a></span>
|
47
|
+
</li>\n"
|
48
|
+
end
|
49
|
+
@posts += "</ul>\n"
|
50
|
+
end
|
51
|
+
return @posts
|
24
52
|
end
|
25
53
|
|
26
54
|
def get_statuses
|
27
|
-
if is_twitter_up?
|
28
|
-
|
29
|
-
else
|
30
|
-
status_list = Nokogiri::XML(Net::HTTP.get("twitter.com", "/statuses/user_timeline/#{@username}.xml?count=#{@num_posts}"))
|
55
|
+
if is_twitter_up? == "true"
|
56
|
+
status_list = @url
|
31
57
|
status_list.xpath('/statuses/status').each do |statuses|
|
32
58
|
status_hash = {}
|
33
59
|
statuses.children.each do |status|
|
@@ -48,26 +74,22 @@ class Featherdust
|
|
48
74
|
end
|
49
75
|
return @raw_posts
|
50
76
|
end
|
51
|
-
|
52
|
-
def display_statuses
|
53
|
-
tweets = get_statuses
|
54
|
-
@posts = "<ul>"
|
55
|
-
tweets.each do |tweet|
|
56
|
-
# TODO: This is really ugly, and I think it can be written better.
|
57
|
-
@posts += "
|
58
|
-
<li>
|
59
|
-
<p class=\"twitter_status\">#{tweet[:text]}</p>
|
60
|
-
<span><a href=\"http://twitter.com/#{@username}/statuses/#{tweet[:id]}\" title=\"Status update on Twitter\"> on #{tweet[:created_at]}</a></span>
|
61
|
-
</li>"
|
62
|
-
end
|
63
|
-
@posts += "\n</ul>\n"
|
64
|
-
end
|
65
|
-
|
77
|
+
|
66
78
|
def is_twitter_up?
|
67
79
|
twitter_status = Nokogiri::XML(Net::HTTP.get("twitter.com","/help/test.xml"))
|
68
80
|
twitter_status.xpath("/ok").inner_text
|
69
81
|
end
|
70
|
-
|
71
|
-
end
|
72
82
|
|
73
|
-
|
83
|
+
def pretty_time(date)
|
84
|
+
human_date = Date.parse(date)
|
85
|
+
pretty_date = human_date.strftime("%A, %b %d")
|
86
|
+
human_time = Time.parse(date)
|
87
|
+
pretty_date += human_time.strftime(" at %I:%M %p")
|
88
|
+
end
|
89
|
+
|
90
|
+
def urlize(string)
|
91
|
+
words = string.split(" ")
|
92
|
+
urlized = words.map{ |word| word =~ /(ht|f)tp(s?)/ ? word = "<a href=\"#{word}\">#{word}</a>" : word = word }
|
93
|
+
urlized.join(" ")
|
94
|
+
end
|
95
|
+
end
|
data/test/test_featherdust.rb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
$: << 'lib'
|
10
10
|
|
11
11
|
require 'test/unit'
|
12
|
-
require 'featherdust
|
12
|
+
require 'featherdust'
|
13
13
|
|
14
14
|
require 'rubygems'
|
15
15
|
require 'nokogiri'
|
@@ -17,276 +17,149 @@ require 'nokogiri'
|
|
17
17
|
class TestFeatherdust < Test::Unit::TestCase
|
18
18
|
|
19
19
|
def setup
|
20
|
-
@
|
21
|
-
@
|
22
|
-
|
23
|
-
@
|
20
|
+
@cnn = Featherdust.new "cnn", 20
|
21
|
+
@cnn.url = Nokogiri::XML(File.open('./test/cnn.xml')) # don't want to rely on CNN not updating again, or the internet working for that matter.
|
22
|
+
@plain_cnn = Featherdust.new "cnn", 20, {:display => "plain" }
|
23
|
+
@plain_cnn.url = Nokogiri::XML(File.open('./test/cnn.xml')) # don't want to rely on CNN not updating again, or the internet working for that matter.
|
24
24
|
end
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
expected = "true"
|
30
|
-
assert_equal expected, actual
|
26
|
+
def test_that_url_is_working
|
27
|
+
@live_test = Featherdust.new "cnn"
|
28
|
+
assert @live_test.url
|
31
29
|
end
|
32
|
-
|
30
|
+
|
31
|
+
def test_get_statuses_actually_has_something
|
32
|
+
assert @cnn.raw_posts
|
33
|
+
end
|
34
|
+
|
33
35
|
def test_get_statuses
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
:in_reply_to_status_id=>"",
|
41
|
-
:in_reply_to_screen_name=>"",
|
42
|
-
:protected=>"false",
|
43
|
-
:in_reply_to_user_id=>"",
|
44
|
-
:created_at=>"Thu Dec 18 13:48:21 +0000 2008",
|
45
|
-
:name=>"CNN.com",
|
46
|
-
:user_id=>"759251",
|
47
|
-
:followers_count=>"14965",
|
48
|
-
:truncated=>"false",
|
49
|
-
:description=>
|
50
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
51
|
-
:text=>
|
52
|
-
"20 Iraqi Interior Ministry officers arrested http://tinyurl.com/4xghtt",
|
53
|
-
:favorited=>"false",
|
54
|
-
:id=>"1064896431",
|
55
|
-
:screen_name=>"cnn"},
|
56
|
-
{:location=>"",
|
57
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
58
|
-
:url=>"http://www.cnn.com",
|
59
|
-
:profile_image_url=>
|
60
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
61
|
-
:in_reply_to_status_id=>"",
|
62
|
-
:in_reply_to_screen_name=>"",
|
63
|
-
:protected=>"false",
|
64
|
-
:in_reply_to_user_id=>"",
|
65
|
-
:created_at=>"Thu Dec 18 10:49:17 +0000 2008",
|
66
|
-
:name=>"CNN.com",
|
67
|
-
:user_id=>"759251",
|
68
|
-
:followers_count=>"14955",
|
69
|
-
:truncated=>"false",
|
70
|
-
:description=>
|
71
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
72
|
-
:text=>"Bagosora guilty of Rwanda genocide http://tinyurl.com/3mw72t",
|
73
|
-
:favorited=>"false",
|
74
|
-
:id=>"1064690521",
|
75
|
-
:screen_name=>"cnn"},
|
76
|
-
{:location=>"",
|
77
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
78
|
-
:url=>"http://www.cnn.com",
|
79
|
-
:profile_image_url=>
|
80
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
81
|
-
:in_reply_to_status_id=>"",
|
82
|
-
:in_reply_to_screen_name=>"",
|
83
|
-
:protected=>"false",
|
84
|
-
:in_reply_to_user_id=>"",
|
85
|
-
:created_at=>"Thu Dec 18 09:48:46 +0000 2008",
|
86
|
-
:name=>"CNN.com",
|
87
|
-
:user_id=>"759251",
|
88
|
-
:followers_count=>"14954",
|
89
|
-
:truncated=>"false",
|
90
|
-
:description=>
|
91
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
92
|
-
:text=>"Obama's inaugural choice ignites outrage http://tinyurl.com/52ojol",
|
93
|
-
:favorited=>"false",
|
94
|
-
:id=>"1064634944",
|
95
|
-
:screen_name=>"cnn"},
|
96
|
-
{:location=>"",
|
97
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
98
|
-
:url=>"http://www.cnn.com",
|
99
|
-
:profile_image_url=>
|
100
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
101
|
-
:in_reply_to_status_id=>"",
|
102
|
-
:in_reply_to_screen_name=>"",
|
103
|
-
:protected=>"false",
|
104
|
-
:in_reply_to_user_id=>"",
|
105
|
-
:created_at=>"Thu Dec 18 09:48:38 +0000 2008",
|
106
|
-
:name=>"CNN.com",
|
107
|
-
:user_id=>"759251",
|
108
|
-
:followers_count=>"14954",
|
109
|
-
:truncated=>"false",
|
110
|
-
:description=>
|
111
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
112
|
-
:text=>
|
113
|
-
"Alec Baldwin on divorce, custody and Palin http://tinyurl.com/3e6u37",
|
114
|
-
:favorited=>"false",
|
115
|
-
:id=>"1064634845",
|
116
|
-
:screen_name=>"cnn"},
|
117
|
-
{:location=>"",
|
118
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
119
|
-
:url=>"http://www.cnn.com",
|
120
|
-
:profile_image_url=>
|
121
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
122
|
-
:in_reply_to_status_id=>"",
|
123
|
-
:in_reply_to_screen_name=>"",
|
124
|
-
:protected=>"false",
|
125
|
-
:in_reply_to_user_id=>"",
|
126
|
-
:created_at=>"Thu Dec 18 08:49:04 +0000 2008",
|
127
|
-
:name=>"CNN.com",
|
128
|
-
:user_id=>"759251",
|
129
|
-
:followers_count=>"14955",
|
130
|
-
:truncated=>"false",
|
131
|
-
:description=>
|
132
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
133
|
-
:text=>"Holiday health concerns may just be myths http://tinyurl.com/3zx4pd",
|
134
|
-
:favorited=>"false",
|
135
|
-
:id=>"1064580674",
|
136
|
-
:screen_name=>"cnn"},
|
137
|
-
{:location=>"",
|
138
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
139
|
-
:url=>"http://www.cnn.com",
|
140
|
-
:profile_image_url=>
|
141
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
142
|
-
:in_reply_to_status_id=>"",
|
143
|
-
:in_reply_to_screen_name=>"",
|
144
|
-
:protected=>"false",
|
145
|
-
:in_reply_to_user_id=>"",
|
146
|
-
:created_at=>"Thu Dec 18 07:48:08 +0000 2008",
|
147
|
-
:name=>"CNN.com",
|
148
|
-
:user_id=>"759251",
|
149
|
-
:followers_count=>"14954",
|
150
|
-
:truncated=>"false",
|
151
|
-
:description=>
|
152
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
153
|
-
:text=>
|
154
|
-
"Exxon Mobil to pay $6.1 million for air pollution http://tinyurl.com/48ohph",
|
155
|
-
:favorited=>"false",
|
156
|
-
:id=>"1064525536",
|
157
|
-
:screen_name=>"cnn"},
|
158
|
-
{:location=>"",
|
159
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
160
|
-
:url=>"http://www.cnn.com",
|
161
|
-
:profile_image_url=>
|
162
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
163
|
-
:in_reply_to_status_id=>"",
|
164
|
-
:in_reply_to_screen_name=>"",
|
165
|
-
:protected=>"false",
|
166
|
-
:in_reply_to_user_id=>"",
|
167
|
-
:created_at=>"Thu Dec 18 04:48:37 +0000 2008",
|
168
|
-
:name=>"CNN.com",
|
169
|
-
:user_id=>"759251",
|
170
|
-
:followers_count=>"14947",
|
171
|
-
:truncated=>"false",
|
172
|
-
:description=>
|
173
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
174
|
-
:text=>
|
175
|
-
"Rice talks successes, failures of past 8 years http://tinyurl.com/4uo83q",
|
176
|
-
:favorited=>"false",
|
177
|
-
:id=>"1064329837",
|
178
|
-
:screen_name=>"cnn"},
|
179
|
-
{:location=>"",
|
180
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
181
|
-
:url=>"http://www.cnn.com",
|
182
|
-
:profile_image_url=>
|
183
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
184
|
-
:in_reply_to_status_id=>"",
|
185
|
-
:in_reply_to_screen_name=>"",
|
186
|
-
:protected=>"false",
|
187
|
-
:in_reply_to_user_id=>"",
|
188
|
-
:created_at=>"Thu Dec 18 04:48:35 +0000 2008",
|
189
|
-
:name=>"CNN.com",
|
190
|
-
:user_id=>"759251",
|
191
|
-
:followers_count=>"14947",
|
192
|
-
:truncated=>"false",
|
193
|
-
:description=>
|
194
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
195
|
-
:text=>
|
196
|
-
"Credit card holders livid about 'rate-jacking' http://tinyurl.com/3jejsc",
|
197
|
-
:favorited=>"false",
|
198
|
-
:id=>"1064329783",
|
199
|
-
:screen_name=>"cnn"},
|
200
|
-
{:location=>"",
|
201
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
202
|
-
:url=>"http://www.cnn.com",
|
203
|
-
:profile_image_url=>
|
204
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
205
|
-
:in_reply_to_status_id=>"",
|
206
|
-
:in_reply_to_screen_name=>"",
|
207
|
-
:protected=>"false",
|
208
|
-
:in_reply_to_user_id=>"",
|
209
|
-
:created_at=>"Thu Dec 18 02:48:53 +0000 2008",
|
210
|
-
:name=>"CNN.com",
|
211
|
-
:user_id=>"759251",
|
212
|
-
:followers_count=>"14933",
|
213
|
-
:truncated=>"false",
|
214
|
-
:description=>
|
215
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
216
|
-
:text=>"Brown: Obama should be more open to press http://tinyurl.com/4avj8n",
|
217
|
-
:favorited=>"false",
|
218
|
-
:id=>"1064150989",
|
219
|
-
:screen_name=>"cnn"},
|
220
|
-
{:location=>"",
|
221
|
-
:source=>"<a href=\"http://twitterfeed.com\">twitterfeed</a>",
|
222
|
-
:url=>"http://www.cnn.com",
|
223
|
-
:profile_image_url=>
|
224
|
-
"http://s3.amazonaws.com/twitter_production/profile_images/67228129/icon.cnn_normal.png",
|
225
|
-
:in_reply_to_status_id=>"",
|
226
|
-
:in_reply_to_screen_name=>"",
|
227
|
-
:protected=>"false",
|
228
|
-
:in_reply_to_user_id=>"",
|
229
|
-
:created_at=>"Wed Dec 17 23:48:50 +0000 2008",
|
230
|
-
:name=>"CNN.com",
|
231
|
-
:user_id=>"759251",
|
232
|
-
:followers_count=>"14925",
|
233
|
-
:truncated=>"false",
|
234
|
-
:description=>
|
235
|
-
"Breaking News, U.S., World, Weather, Entertainment & Video News",
|
236
|
-
:text=>
|
237
|
-
"Walsh's legacy -- awareness of danger to kids http://tinyurl.com/495kwp",
|
238
|
-
:favorited=>"false",
|
239
|
-
:id=>"1063867194",
|
240
|
-
:screen_name=>"cnn"}]
|
36
|
+
assert @cnn.get_statuses
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_pretty_time
|
40
|
+
expected = "Tuesday, Dec 16 at 08:48 PM"
|
41
|
+
actual = @cnn.pretty_time("Tue Dec 16 04:48:13 +0000 2008")
|
241
42
|
assert_equal expected, actual
|
242
43
|
end
|
243
44
|
|
45
|
+
def test_urlize
|
46
|
+
expected = "You can use <a href=\"http://www.ruby-doc.org\">http://www.ruby-doc.org</a> to learn about Ruby."
|
47
|
+
actual = @cnn.urlize("You can use http://www.ruby-doc.org to learn about Ruby.")
|
48
|
+
assert_equal expected, actual
|
49
|
+
end
|
50
|
+
|
244
51
|
def test_display_statuses
|
245
|
-
|
246
|
-
|
52
|
+
actual = @cnn.display_statuses
|
53
|
+
expected = "<ul>
|
54
|
+
<li>
|
55
|
+
<p class=\"twitter_status\">Brown: Law lets a little boy down <a href=\"http://tinyurl.com/5qxmnj\">http://tinyurl.com/5qxmnj</a></p>
|
56
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1062085628\" title=\"Status update on Twitter\"> on Wednesday, Dec 17 at 07:48 PM</a></span>
|
57
|
+
</li>
|
58
|
+
<li>
|
59
|
+
<p class=\"twitter_status\">Expect cell phone logjam at inauguration <a href=\"http://tinyurl.com/5wetql\">http://tinyurl.com/5wetql</a></p>
|
60
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1061804619\" title=\"Status update on Twitter\"> on Wednesday, Dec 17 at 04:48 PM</a></span>
|
61
|
+
</li>
|
62
|
+
<li>
|
63
|
+
<p class=\"twitter_status\">Reid backs Caroline Kennedy for Senate <a href=\"http://tinyurl.com/6nhsj2\">http://tinyurl.com/6nhsj2</a></p>
|
64
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1061708271\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 03:48 PM</a></span>
|
65
|
+
</li>
|
66
|
+
<li>
|
67
|
+
<p class=\"twitter_status\">Diabetes found to raise cancer mortality risk <a href=\"http://tinyurl.com/6m738h\">http://tinyurl.com/6m738h</a></p>
|
68
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1061708121\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 03:48 PM</a></span>
|
69
|
+
</li>
|
247
70
|
<li>
|
248
|
-
<p class=\"twitter_status\">
|
249
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
71
|
+
<p class=\"twitter_status\">Detroit papers to end daily home delivery <a href=\"http://tinyurl.com/5eftgg\">http://tinyurl.com/5eftgg</a></p>
|
72
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1061386828\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 12:49 PM</a></span>
|
250
73
|
</li>
|
251
74
|
<li>
|
252
|
-
<p class=\"twitter_status\">
|
253
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
75
|
+
<p class=\"twitter_status\">'Treasure trove' of new species found <a href=\"http://tinyurl.com/6ey96r\">http://tinyurl.com/6ey96r</a></p>
|
76
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1061274894\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 11:49 AM</a></span>
|
254
77
|
</li>
|
255
78
|
<li>
|
256
|
-
<p class=\"twitter_status\">
|
257
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
79
|
+
<p class=\"twitter_status\">Bush talks bailout, Iraq, dodging shoes <a href=\"http://tinyurl.com/5we228\">http://tinyurl.com/5we228</a></p>
|
80
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1061274734\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 11:49 AM</a></span>
|
258
81
|
</li>
|
259
82
|
<li>
|
260
|
-
<p class=\"twitter_status\">
|
261
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
83
|
+
<p class=\"twitter_status\">Impeachment panel meets on Blagojevich <a href=\"http://tinyurl.com/5utxxv\">http://tinyurl.com/5utxxv</a></p>
|
84
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1061274627\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 11:49 AM</a></span>
|
262
85
|
</li>
|
263
86
|
<li>
|
264
|
-
<p class=\"twitter_status\">
|
265
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
87
|
+
<p class=\"twitter_status\">Suspect to be named in '81 Adam Walsh slaying <a href=\"http://tinyurl.com/6da9fa\">http://tinyurl.com/6da9fa</a></p>
|
88
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1061161605\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 10:48 AM</a></span>
|
266
89
|
</li>
|
267
90
|
<li>
|
268
|
-
<p class=\"twitter_status\">
|
269
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
91
|
+
<p class=\"twitter_status\">Iraqi doctor guilty of planning UK terror attacks <a href=\"http://tinyurl.com/5cvjk8\">http://tinyurl.com/5cvjk8</a></p>
|
92
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060699337\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 06:49 AM</a></span>
|
270
93
|
</li>
|
271
94
|
<li>
|
272
|
-
<p class=\"twitter_status\">
|
273
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
95
|
+
<p class=\"twitter_status\">Obama set to name more Cabinet picks <a href=\"http://tinyurl.com/5c2do7\">http://tinyurl.com/5c2do7</a></p>
|
96
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060699134\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 06:49 AM</a></span>
|
274
97
|
</li>
|
275
98
|
<li>
|
276
|
-
<p class=\"twitter_status\">
|
277
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
99
|
+
<p class=\"twitter_status\">Slain student called 911, but no one came in time <a href=\"http://tinyurl.com/5om6pd\">http://tinyurl.com/5om6pd</a></p>
|
100
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060698991\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 06:49 AM</a></span>
|
278
101
|
</li>
|
279
102
|
<li>
|
280
|
-
<p class=\"twitter_status\">
|
281
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
103
|
+
<p class=\"twitter_status\">Report: Dynamite defused in Paris store <a href=\"http://tinyurl.com/5md5oq\">http://tinyurl.com/5md5oq</a></p>
|
104
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060514802\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 04:48 AM</a></span>
|
282
105
|
</li>
|
283
106
|
<li>
|
284
|
-
<p class=\"twitter_status\">
|
285
|
-
<span><a href=\"http://twitter.com/cnn/statuses/
|
107
|
+
<p class=\"twitter_status\">Obamas should adopt shelter pup, poll says <a href=\"http://tinyurl.com/6j5tdn\">http://tinyurl.com/6j5tdn</a></p>
|
108
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060514656\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 04:48 AM</a></span>
|
109
|
+
</li>
|
110
|
+
<li>
|
111
|
+
<p class=\"twitter_status\">Commentary: Illinois voters, it's your fault <a href=\"http://tinyurl.com/5hw9bl\">http://tinyurl.com/5hw9bl</a></p>
|
112
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060514475\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 04:48 AM</a></span>
|
113
|
+
</li>
|
114
|
+
<li>
|
115
|
+
<p class=\"twitter_status\">Brother: Shoe thrower sought to humiliate Bush <a href=\"http://tinyurl.com/62gpzs\">http://tinyurl.com/62gpzs</a></p>
|
116
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060445840\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 03:48 AM</a></span>
|
117
|
+
</li>
|
118
|
+
<li>
|
119
|
+
<p class=\"twitter_status\">Arctic blast grips much of nation <a href=\"http://tinyurl.com/5dhdye\">http://tinyurl.com/5dhdye</a></p>
|
120
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060281163\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 12:49 AM</a></span>
|
121
|
+
</li>
|
122
|
+
<li>
|
123
|
+
<p class=\"twitter_status\">Brother: Shoe thrower wanted to humiliate Bush <a href=\"http://tinyurl.com/6agpas\">http://tinyurl.com/6agpas</a></p>
|
124
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060028576\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 08:48 PM</a></span>
|
125
|
+
</li>
|
126
|
+
<li>
|
127
|
+
<p class=\"twitter_status\">Marines face toy deficit as Christmas nears <a href=\"http://tinyurl.com/62tehr\">http://tinyurl.com/62tehr</a></p>
|
128
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1060028427\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 08:48 PM</a></span>
|
129
|
+
</li>
|
130
|
+
<li>
|
131
|
+
<p class=\"twitter_status\">Brown: Who's to blame when a con man hits? <a href=\"http://tinyurl.com/5u7aoj\">http://tinyurl.com/5u7aoj</a></p>
|
132
|
+
<span><a href=\"http://twitter.com/cnn/statuses/1059848165\" title=\"Status update on Twitter\"> on Tuesday, Dec 16 at 06:48 PM</a></span>
|
286
133
|
</li>
|
287
134
|
</ul>
|
288
135
|
"
|
289
|
-
|
290
|
-
|
291
|
-
|
136
|
+
assert_equal expected, actual
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_plain_statuses
|
140
|
+
actual = @plain_cnn.display_statuses
|
141
|
+
expected = "* Brown: Law lets a little boy down http://tinyurl.com/5qxmnj (on Wednesday, Dec 17 at 07:48 PM) [http://twitter.com/cnn/statuses/1062085628]
|
142
|
+
* Expect cell phone logjam at inauguration http://tinyurl.com/5wetql (on Wednesday, Dec 17 at 04:48 PM) [http://twitter.com/cnn/statuses/1061804619]
|
143
|
+
* Reid backs Caroline Kennedy for Senate http://tinyurl.com/6nhsj2 (on Tuesday, Dec 16 at 03:48 PM) [http://twitter.com/cnn/statuses/1061708271]
|
144
|
+
* Diabetes found to raise cancer mortality risk http://tinyurl.com/6m738h (on Tuesday, Dec 16 at 03:48 PM) [http://twitter.com/cnn/statuses/1061708121]
|
145
|
+
* Detroit papers to end daily home delivery http://tinyurl.com/5eftgg (on Tuesday, Dec 16 at 12:49 PM) [http://twitter.com/cnn/statuses/1061386828]
|
146
|
+
* 'Treasure trove' of new species found http://tinyurl.com/6ey96r (on Tuesday, Dec 16 at 11:49 AM) [http://twitter.com/cnn/statuses/1061274894]
|
147
|
+
* Bush talks bailout, Iraq, dodging shoes http://tinyurl.com/5we228 (on Tuesday, Dec 16 at 11:49 AM) [http://twitter.com/cnn/statuses/1061274734]
|
148
|
+
* Impeachment panel meets on Blagojevich http://tinyurl.com/5utxxv (on Tuesday, Dec 16 at 11:49 AM) [http://twitter.com/cnn/statuses/1061274627]
|
149
|
+
* Suspect to be named in '81 Adam Walsh slaying http://tinyurl.com/6da9fa (on Tuesday, Dec 16 at 10:48 AM) [http://twitter.com/cnn/statuses/1061161605]
|
150
|
+
* Iraqi doctor guilty of planning UK terror attacks http://tinyurl.com/5cvjk8 (on Tuesday, Dec 16 at 06:49 AM) [http://twitter.com/cnn/statuses/1060699337]
|
151
|
+
* Obama set to name more Cabinet picks http://tinyurl.com/5c2do7 (on Tuesday, Dec 16 at 06:49 AM) [http://twitter.com/cnn/statuses/1060699134]
|
152
|
+
* Slain student called 911, but no one came in time http://tinyurl.com/5om6pd (on Tuesday, Dec 16 at 06:49 AM) [http://twitter.com/cnn/statuses/1060698991]
|
153
|
+
* Report: Dynamite defused in Paris store http://tinyurl.com/5md5oq (on Tuesday, Dec 16 at 04:48 AM) [http://twitter.com/cnn/statuses/1060514802]
|
154
|
+
* Obamas should adopt shelter pup, poll says http://tinyurl.com/6j5tdn (on Tuesday, Dec 16 at 04:48 AM) [http://twitter.com/cnn/statuses/1060514656]
|
155
|
+
* Commentary: Illinois voters, it's your fault http://tinyurl.com/5hw9bl (on Tuesday, Dec 16 at 04:48 AM) [http://twitter.com/cnn/statuses/1060514475]
|
156
|
+
* Brother: Shoe thrower sought to humiliate Bush http://tinyurl.com/62gpzs (on Tuesday, Dec 16 at 03:48 AM) [http://twitter.com/cnn/statuses/1060445840]
|
157
|
+
* Arctic blast grips much of nation http://tinyurl.com/5dhdye (on Tuesday, Dec 16 at 12:49 AM) [http://twitter.com/cnn/statuses/1060281163]
|
158
|
+
* Brother: Shoe thrower wanted to humiliate Bush http://tinyurl.com/6agpas (on Tuesday, Dec 16 at 08:48 PM) [http://twitter.com/cnn/statuses/1060028576]
|
159
|
+
* Marines face toy deficit as Christmas nears http://tinyurl.com/62tehr (on Tuesday, Dec 16 at 08:48 PM) [http://twitter.com/cnn/statuses/1060028427]
|
160
|
+
* Brown: Who's to blame when a con man hits? http://tinyurl.com/5u7aoj (on Tuesday, Dec 16 at 06:48 PM) [http://twitter.com/cnn/statuses/1059848165]
|
161
|
+
"
|
162
|
+
assert_equal expected, actual
|
163
|
+
end
|
164
|
+
|
292
165
|
end
|
data/todo.txt
CHANGED
@@ -2,22 +2,9 @@ FEATHERDUST: A Twitter gem.
|
|
2
2
|
|
3
3
|
TODO:
|
4
4
|
|
5
|
-
Write Tests that fail!
|
6
|
-
Make the tests pass!
|
7
|
-
(Ok ... enough of being snarky.)
|
8
|
-
|
9
|
-
XML Parser
|
10
|
-
- take in a username
|
11
|
-
base output option
|
12
|
-
- limit output based on optional number of status updates (default is 10)
|
13
|
-
- HTML Unordered List
|
14
|
-
regex to detect/add links
|
15
|
-
take in options block
|
16
5
|
advanced output methods
|
17
6
|
- div vs list (esp. if requested updates number is 1)
|
18
7
|
- DL
|
19
8
|
- others?
|
20
|
-
headings
|
21
|
-
default styles?
|
22
9
|
examples
|
23
10
|
documentation
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: featherdust
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Tierney
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-12-
|
12
|
+
date: 2008-12-19 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -50,10 +50,8 @@ files:
|
|
50
50
|
- README.txt
|
51
51
|
- Rakefile
|
52
52
|
- lib/featherdust.rb
|
53
|
-
- lib/particle.rb
|
54
53
|
- test/cnn.xml
|
55
54
|
- test/test_featherdust.rb
|
56
|
-
- test/test_particle.rb
|
57
55
|
- todo.txt
|
58
56
|
has_rdoc: true
|
59
57
|
homepage: http://rubyforge.org/projects/uwruby
|
@@ -84,4 +82,3 @@ specification_version: 2
|
|
84
82
|
summary: Featherdust is a simple Twitter gem that grabs and parses data via the Twitter API
|
85
83
|
test_files:
|
86
84
|
- test/test_featherdust.rb
|
87
|
-
- test/test_particle.rb
|
data/lib/particle.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby -w
|
2
|
-
|
3
|
-
class Particle
|
4
|
-
|
5
|
-
ATTRIBUTES = [:created_at, :id, :text, :source, :truncated, :in_reply_to_status_id, :in_reply_to_user_id, :in_reply_to_screen_name, :favorited ]
|
6
|
-
|
7
|
-
ATTRIBUTES.each do |a|
|
8
|
-
attr_accessor a
|
9
|
-
end
|
10
|
-
|
11
|
-
def initialize(song_data)
|
12
|
-
ATTRIBUTES.each do |attr|
|
13
|
-
self.send("#{attr}=", (song_data[attr] || ""))
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
data/test/test_particle.rb
DELETED
File without changes
|