stratify-twitter 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +4 -4
- data/lib/stratify-twitter/activity.rb +10 -2
- data/lib/stratify-twitter/collector.rb +8 -4
- data/lib/stratify-twitter/presenter.rb +6 -1
- data/lib/stratify-twitter/translation.rb +24 -0
- data/lib/stratify-twitter/version.rb +1 -1
- data/spec/stratify-twitter/activity_spec.rb +12 -0
- data/spec/stratify-twitter/integration_spec.rb +19 -10
- data/spec/stratify-twitter/presenter_spec.rb +26 -5
- data/vcr_cassettes/twitter.yml +161 -15
- metadata +3 -3
- data/lib/stratify-twitter/query.rb +0 -32
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
stratify-twitter (0.1.
|
4
|
+
stratify-twitter (0.1.1)
|
5
5
|
actionpack (~> 3.1.0.rc1)
|
6
6
|
railties (~> 3.1.0.rc1)
|
7
7
|
rinku (~> 1.0.0)
|
@@ -46,7 +46,7 @@ GEM
|
|
46
46
|
faraday_middleware (0.6.3)
|
47
47
|
faraday (~> 0.6.0)
|
48
48
|
hashie (1.0.0)
|
49
|
-
hike (1.
|
49
|
+
hike (1.1.0)
|
50
50
|
i18n (0.6.0)
|
51
51
|
mongo (1.3.1)
|
52
52
|
bson (>= 1.3.1)
|
@@ -72,7 +72,7 @@ GEM
|
|
72
72
|
rack-ssl (~> 1.3.2)
|
73
73
|
rake (>= 0.8.7)
|
74
74
|
thor (~> 0.14.6)
|
75
|
-
rake (0.9.
|
75
|
+
rake (0.9.2)
|
76
76
|
rash (0.3.0)
|
77
77
|
hashie (~> 1.0.0)
|
78
78
|
rinku (1.0.0)
|
@@ -103,7 +103,7 @@ GEM
|
|
103
103
|
multi_xml (~> 0.2.0)
|
104
104
|
rash (~> 0.3.0)
|
105
105
|
simple_oauth (~> 0.1.5)
|
106
|
-
tzinfo (0.3.
|
106
|
+
tzinfo (0.3.29)
|
107
107
|
vcr (1.10.0)
|
108
108
|
|
109
109
|
PLATFORMS
|
@@ -1,22 +1,30 @@
|
|
1
1
|
require 'stratify-twitter/presenter'
|
2
|
+
require 'stratify-twitter/translation'
|
2
3
|
|
3
4
|
module Stratify
|
4
5
|
module Twitter
|
5
6
|
class Activity < Stratify::Activity
|
7
|
+
extend Stratify::Twitter::Translation
|
8
|
+
|
6
9
|
field :status_id, :type => Integer
|
7
10
|
field :username
|
8
11
|
field :text
|
12
|
+
field :retweeted_status
|
9
13
|
|
10
14
|
natural_key :status_id
|
11
15
|
|
12
16
|
validates_presence_of :status_id, :username, :text
|
13
|
-
|
17
|
+
|
18
|
+
def retweet?
|
19
|
+
retweeted_status.present?
|
20
|
+
end
|
21
|
+
|
14
22
|
def permalink
|
15
23
|
"http://twitter.com/#{username}/status/#{status_id}"
|
16
24
|
end
|
17
25
|
|
18
26
|
def to_html
|
19
|
-
Stratify::Twitter::Presenter.new(self).
|
27
|
+
Stratify::Twitter::Presenter.new(self).to_html
|
20
28
|
end
|
21
29
|
end
|
22
30
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'twitter'
|
2
2
|
|
3
3
|
module Stratify
|
4
4
|
module Twitter
|
@@ -8,11 +8,15 @@ module Stratify
|
|
8
8
|
configuration_fields :username => {:type => :string}
|
9
9
|
|
10
10
|
def activities
|
11
|
-
|
11
|
+
activities_from_api.map do |activity_in_api_format|
|
12
|
+
Stratify::Twitter::Activity.from_api_hash(activity_in_api_format)
|
13
|
+
end
|
12
14
|
end
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
+
private
|
17
|
+
|
18
|
+
def activities_from_api
|
19
|
+
::Twitter.user_timeline(username, :include_rts => true)
|
16
20
|
end
|
17
21
|
end
|
18
22
|
end
|
@@ -11,7 +11,12 @@ module Stratify
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def text
|
14
|
-
|
14
|
+
return @activity.text unless @activity.retweet?
|
15
|
+
"RT @#{@activity.retweeted_status['username']} #{@activity.retweeted_status['text']}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_html
|
19
|
+
linkify_usernames(linkify_urls(text))
|
15
20
|
end
|
16
21
|
|
17
22
|
private
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Stratify
|
2
|
+
module Twitter
|
3
|
+
module Translation
|
4
|
+
def from_api_hash(api_hash)
|
5
|
+
activity = Stratify::Twitter::Activity.new
|
6
|
+
|
7
|
+
activity.status_id = api_hash.id
|
8
|
+
activity.username = api_hash.user.screen_name
|
9
|
+
activity.text = api_hash.text
|
10
|
+
activity.created_at = api_hash.created_at
|
11
|
+
|
12
|
+
if api_hash[:retweeted_status]
|
13
|
+
activity.retweeted_status = {
|
14
|
+
:status_id => api_hash[:retweeted_status].id,
|
15
|
+
:username => api_hash[:retweeted_status].user.screen_name,
|
16
|
+
:text => api_hash[:retweeted_status].text,
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
activity
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,6 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Stratify::Twitter::Activity do
|
4
|
+
describe "#retweet?" do
|
5
|
+
it "returns true when the tweet is a retweet" do
|
6
|
+
tweet = Stratify::Twitter::Activity.new(:retweeted_status => {:status_id => 123})
|
7
|
+
tweet.should be_retweet
|
8
|
+
end
|
9
|
+
|
10
|
+
it "returns false when the tweet is not a retweet" do
|
11
|
+
tweet = Stratify::Twitter::Activity.new(:retweeted_status => nil)
|
12
|
+
tweet.should_not be_retweet
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
4
16
|
describe "#permalink" do
|
5
17
|
it "returns the URL for this tweet on Twitter" do
|
6
18
|
tweet = Stratify::Twitter::Activity.new(:status_id => 20595784953102338, :username => "jasonrudolph")
|
@@ -3,22 +3,31 @@ require 'spec_helper'
|
|
3
3
|
describe "stratify-twitter" do
|
4
4
|
use_vcr_cassette "twitter"
|
5
5
|
|
6
|
-
it "collects and stores
|
6
|
+
it "collects and stores status updates from Twitter", :database => true do
|
7
7
|
collector = Stratify::Twitter::Collector.create!(:username => "jasonrudolph")
|
8
8
|
collector.run
|
9
9
|
|
10
10
|
Stratify::Twitter::Activity.where(
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
11
|
+
:created_at => Time.parse("2011-06-08T16:22:40Z"),
|
12
|
+
:status_id => 78497177902657536,
|
13
|
+
:username => "jasonrudolph",
|
14
|
+
:text => "Google finds it economically infeasible to support IE 6 & 7. You have less money than Google. Apply transitive law here. http://t.co/3lWZA2O",
|
15
|
+
:retweeted_status => nil
|
15
16
|
).should exist
|
17
|
+
end
|
18
|
+
|
19
|
+
it "collects and stores retweets from Twitter", :database => true do
|
20
|
+
collector = Stratify::Twitter::Collector.create!(:username => "jasonrudolph")
|
21
|
+
collector.run
|
16
22
|
|
17
|
-
Stratify::Twitter::Activity.where(
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
23
|
+
activity = Stratify::Twitter::Activity.where(
|
24
|
+
"created_at" => Time.parse("2011-06-21T02:10:44Z"),
|
25
|
+
"status_id" => 82993823143297024,
|
26
|
+
"username" => "jasonrudolph",
|
27
|
+
"text" => %Q{RT @timoreilly: Love it: @edd in email: "Programmers don't aspire to a BMW, they aspire to write a clojure program that other people won ...},
|
28
|
+
"retweeted_status.status_id" => 82942860218994688,
|
29
|
+
"retweeted_status.username" => "timoreilly",
|
30
|
+
"retweeted_status.text" => %Q{Love it: @edd in email: "Programmers don't aspire to a BMW, they aspire to write a clojure program that other people won't laugh at"},
|
22
31
|
).should exist
|
23
32
|
end
|
24
33
|
end
|
@@ -2,24 +2,45 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Stratify::Twitter::Presenter do
|
4
4
|
describe "#text" do
|
5
|
+
context "when the tweet is a retweet" do
|
6
|
+
it "prepends 'RT' and the original author's @username to the beginning of a tweet" do
|
7
|
+
activity = Stratify::Twitter::Activity.new(
|
8
|
+
:retweeted_status => {
|
9
|
+
"text" => "foo bar",
|
10
|
+
"username" => "wittydude"
|
11
|
+
}
|
12
|
+
)
|
13
|
+
presenter = Stratify::Twitter::Presenter.new(activity)
|
14
|
+
presenter.text.should == 'RT @wittydude foo bar'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "when the tweet is not a retweet" do
|
19
|
+
it "returns the tweet's text without any modifications" do
|
20
|
+
activity = Stratify::Twitter::Activity.new(:text => "foo bar")
|
21
|
+
presenter = Stratify::Twitter::Presenter.new(activity)
|
22
|
+
presenter.text.should == 'foo bar'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#to_html" do
|
5
28
|
it "wraps a Twitter @username with a link" do
|
6
29
|
activity = Stratify::Twitter::Activity.new(:text => "foo @jasonrudolph bar")
|
7
30
|
presenter = Stratify::Twitter::Presenter.new(activity)
|
8
|
-
presenter.
|
31
|
+
presenter.to_html.should == 'foo <a href="http://twitter.com/jasonrudolph">@jasonrudolph</a> bar'
|
9
32
|
end
|
10
33
|
|
11
34
|
it "wraps each Twitter @username with a link when a tweet contains multiple @usernames" do
|
12
35
|
activity = Stratify::Twitter::Activity.new(:text => "foo @jasonrudolph bar @thinkrelevance baz")
|
13
36
|
presenter = Stratify::Twitter::Presenter.new(activity)
|
14
|
-
presenter.
|
37
|
+
presenter.to_html.should == 'foo <a href="http://twitter.com/jasonrudolph">@jasonrudolph</a> bar <a href="http://twitter.com/thinkrelevance">@thinkrelevance</a> baz'
|
15
38
|
end
|
16
39
|
|
17
40
|
it "adds a link when a tweet contains a URL" do
|
18
41
|
activity = Stratify::Twitter::Activity.new(:text => "foo http://google.com bar")
|
19
42
|
presenter = Stratify::Twitter::Presenter.new(activity)
|
20
|
-
presenter.
|
43
|
+
presenter.to_html.should == 'foo <a href="http://google.com">http://google.com</a> bar'
|
21
44
|
end
|
22
45
|
end
|
23
46
|
end
|
24
|
-
|
25
|
-
|
data/vcr_cassettes/twitter.yml
CHANGED
@@ -2,40 +2,44 @@
|
|
2
2
|
- !ruby/struct:VCR::HTTPInteraction
|
3
3
|
request: !ruby/struct:VCR::Request
|
4
4
|
method: :get
|
5
|
-
uri: https://api.twitter.com:443/1/statuses/user_timeline.json?screen_name=jasonrudolph
|
5
|
+
uri: https://api.twitter.com:443/1/statuses/user_timeline.json?include_rts=true&screen_name=jasonrudolph
|
6
6
|
body:
|
7
7
|
headers:
|
8
8
|
accept:
|
9
9
|
- application/json
|
10
10
|
user-agent:
|
11
|
-
- Twitter Ruby Gem 1.
|
11
|
+
- Twitter Ruby Gem 1.5.0
|
12
|
+
accept-encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
14
|
response: !ruby/struct:VCR::Response
|
13
15
|
status: !ruby/struct:VCR::ResponseStatus
|
14
16
|
code: 200
|
15
17
|
message: OK
|
16
18
|
headers:
|
17
19
|
date:
|
18
|
-
-
|
20
|
+
- Sat, 02 Jul 2011 23:57:26 GMT
|
19
21
|
server:
|
20
22
|
- hi
|
21
23
|
status:
|
22
24
|
- 200 OK
|
23
25
|
x-transaction:
|
24
|
-
-
|
26
|
+
- 1309651046-78606-29628
|
25
27
|
x-ratelimit-limit:
|
26
28
|
- "150"
|
27
29
|
etag:
|
28
|
-
- "\"
|
30
|
+
- "\"2ed2bd074a816eb72eb0b8e1bb802272\"-gzip"
|
31
|
+
x-frame-options:
|
32
|
+
- SAMEORIGIN
|
29
33
|
last-modified:
|
30
|
-
-
|
34
|
+
- Sat, 02 Jul 2011 23:57:26 GMT
|
31
35
|
x-ratelimit-remaining:
|
32
|
-
- "
|
36
|
+
- "143"
|
33
37
|
x-runtime:
|
34
|
-
- "0.
|
38
|
+
- "0.05163"
|
39
|
+
x-transaction-mask:
|
40
|
+
- a6183ffa5f8ca943ff1b53b5644ef1144d1160fd
|
35
41
|
content-type:
|
36
42
|
- application/json; charset=utf-8
|
37
|
-
content-length:
|
38
|
-
- "26139"
|
39
43
|
pragma:
|
40
44
|
- no-cache
|
41
45
|
x-ratelimit-class:
|
@@ -46,13 +50,155 @@
|
|
46
50
|
- Tue, 31 Mar 1981 05:00:00 GMT
|
47
51
|
cache-control:
|
48
52
|
- no-cache, no-store, must-revalidate, pre-check=0, post-check=0
|
53
|
+
x-mid:
|
54
|
+
- 664f93b9dd0e62b436dea81ad854e7310d6f4c9c
|
49
55
|
x-ratelimit-reset:
|
50
|
-
- "
|
56
|
+
- "1309651839"
|
51
57
|
set-cookie:
|
52
|
-
- k=24.136.206.3.
|
53
|
-
- guest_id=
|
54
|
-
- _twitter_sess=
|
58
|
+
- k=24.136.206.3.1309651046043740; path=/; expires=Sat, 09-Jul-11 23:57:26 GMT; domain=.twitter.com
|
59
|
+
- guest_id=v1%3A130965104604816168; domain=.twitter.com; path=/; expires=Tue, 02 Jul 2013 11:57:26 GMT
|
60
|
+
- _twitter_sess=BAh7CDoPY3JlYXRlZF9hdGwrCKIOSe0wAToHaWQiJTRhNTE1OWU3NjRkZDgz%250AYzEyODk2Zjk5ZTJiZDc1NzMzIgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVy%250AOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA--a0082ed72f3eb78dd6573a5f7d9aae68a6287f10; domain=.twitter.com; path=/; HttpOnly
|
55
61
|
vary:
|
56
62
|
- Accept-Encoding
|
57
|
-
body: "[{\"in_reply_to_user_id_str\":null,\"text\":\"\\\"I'm afraid for the state of the nation. ... I wouldn't hire you to sweep my floors.\\\" @dhh tells it like it is. http:\\/\\/t.co\\/8Wk7j8C #hiring\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":null,\"source\":\"\\u003Ca href=\\\"http:\\/\\/itunes.apple.com\\/us\\/app\\/twitter\\/id409789998?mt=12\\\" rel=\\\"nofollow\\\"\\u003ETwitter for Mac\\u003C\\/a\\u003E\",\"id_str\":\"28832200464011265\",\"in_reply_to_user_id\":null,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":null,\"user\":{\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"friends_count\":71,\"description\":\"\",\"follow_request_sent\":false,\"following\":false,\"location\":\"Raleigh, NC\",\"statuses_count\":532,\"profile_link_color\":\"005ab4\",\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"show_all_inline_media\":false,\"verified\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"contributors_enabled\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"id\":14188383,\"is_translator\":false,\"lang\":\"en\",\"geo_enabled\":false,\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":28832200464011265,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":null,\"created_at\":\"Sat Jan 22 15:11:46 +0000 2011\"},{\"in_reply_to_user_id_str\":\"1476511\",\"text\":\"@shayfrendt I heard that such a thing was in the works. I suspect it will be sufficiently neutered for safe American consumption. :-\\/\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":27199444852146178,\"source\":\"\\u003Ca href=\\\"http:\\/\\/twitter.com\\/\\\" rel=\\\"nofollow\\\"\\u003ETwitter for iPhone\\u003C\\/a\\u003E\",\"id_str\":\"27206056148996097\",\"in_reply_to_user_id\":1476511,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":\"27199444852146178\",\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":27206056148996097,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"shayfrendt\",\"created_at\":\"Tue Jan 18 03:30:03 +0000 2011\"},{\"in_reply_to_user_id_str\":null,\"text\":\"http:\\/\\/candorville.com\\/2011\\/01\\/16\\/quotes-2\\/\\n\\nDon't be \\\"that guy.\\\" ;-)\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":null,\"source\":\"web\",\"id_str\":\"26662832850341888\",\"in_reply_to_user_id\":null,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":null,\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":true,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":26662832850341888,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":null,\"created_at\":\"Sun Jan 16 15:31:29 +0000 2011\"},{\"in_reply_to_user_id_str\":null,\"text\":\"PlainText + @dropbox + TextMate feels nice. http:\\/\\/t.co\\/U8KRP3c \\n\\nPlainText is missing 10% of @simplenoteapp's elegance, but I'll live.\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":null,\"source\":\"\\u003Ca href=\\\"http:\\/\\/itunes.apple.com\\/us\\/app\\/twitter\\/id409789998?mt=12\\\" rel=\\\"nofollow\\\"\\u003ETwitter for Mac\\u003C\\/a\\u003E\",\"id_str\":\"26654420448055296\",\"in_reply_to_user_id\":null,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":null,\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":26654420448055296,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":null,\"created_at\":\"Sun Jan 16 14:58:03 +0000 2011\"},{\"text\":\"Reference point for teams tasked with providing \\\"five nines\\\" - RT @gmail Gmail was available 99.984% of the time in 2010 http:\\/\\/goo.gl\\/nLdlf\",\"id_str\":\"26312110145282049\",\"place\":null,\"truncated\":false,\"in_reply_to_status_id\":null,\"favorited\":false,\"source\":\"web\",\"in_reply_to_status_id_str\":null,\"contributors\":null,\"in_reply_to_screen_name\":null,\"in_reply_to_user_id\":null,\"in_reply_to_user_id_str\":null,\"geo\":null,\"retweeted\":false,\"retweet_count\":0,\"user\":{\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"id_str\":\"14188383\",\"listed_count\":43,\"description\":\"\",\"following\":false,\"profile_use_background_image\":false,\"location\":\"Raleigh, NC\",\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"is_translator\":false,\"statuses_count\":531,\"favourites_count\":53,\"profile_text_color\":\"333333\",\"followers_count\":347,\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"protected\":false,\"follow_request_sent\":false,\"notifications\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"verified\":false,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_link_color\":\"005ab4\",\"screen_name\":\"jasonrudolph\"},\"id\":26312110145282049,\"coordinates\":null,\"created_at\":\"Sat Jan 15 16:17:50 +0000 2011\"},{\"in_reply_to_user_id_str\":\"194185273\",\"text\":\"@ErgoBibamus6512 #bandnamegame seems to be some weird derivative of Solitaire. Are you winning? ;-)\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":25597915607080960,\"source\":\"\\u003Ca href=\\\"http:\\/\\/twitter.com\\/\\\" rel=\\\"nofollow\\\"\\u003ETwitter for iPhone\\u003C\\/a\\u003E\",\"id_str\":\"25600708489252865\",\"in_reply_to_user_id\":194185273,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":\"25597915607080960\",\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":25600708489252865,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"ErgoBibamus6512\",\"created_at\":\"Thu Jan 13 17:10:59 +0000 2011\"},{\"in_reply_to_user_id_str\":\"83468155\",\"text\":\"@billysixstring First Git, and now Rails and MongoDB? Rock on!\\n\\nBy the way, what Mongo library are you using? I recommend mongoid.\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":25021694351515648,\"source\":\"\\u003Ca href=\\\"http:\\/\\/twitter.com\\/\\\" rel=\\\"nofollow\\\"\\u003ETwitter for iPhone\\u003C\\/a\\u003E\",\"id_str\":\"25156558581145600\",\"in_reply_to_user_id\":83468155,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":\"25021694351515648\",\"user\":{\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":true,\"location\":\"Raleigh, NC\",\"listed_count\":43,\"profile_link_color\":\"005ab4\",\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"contributors_enabled\":false,\"statuses_count\":532,\"geo_enabled\":false,\"profile_use_background_image\":false,\"followers_count\":347,\"is_translator\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"friends_count\":71,\"id\":14188383,\"show_all_inline_media\":false,\"follow_request_sent\":false,\"lang\":\"en\",\"verified\":false,\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":25156558581145600,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"billysixstring\",\"created_at\":\"Wed Jan 12 11:46:05 +0000 2011\"},{\"in_reply_to_user_id_str\":\"1566201\",\"text\":\"@zapnap RailsRumble app waiting to happen: Submit your Google Voice transcriptions. Compare transcriptions to reality. Laugh. Lather. Repeat\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":24972816671580160,\"source\":\"\\u003Ca href=\\\"http:\\/\\/twitter.com\\/\\\" rel=\\\"nofollow\\\"\\u003ETwitter for iPhone\\u003C\\/a\\u003E\",\"id_str\":\"24982275036811264\",\"in_reply_to_user_id\":1566201,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":\"24972816671580160\",\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":24982275036811264,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"zapnap\",\"created_at\":\"Wed Jan 12 00:13:33 +0000 2011\"},{\"in_reply_to_user_id_str\":\"11166162\",\"text\":\"@spicycode I've been seeing similar wonkiness yesterday and today.\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":24894332775436288,\"source\":\"\\u003Ca href=\\\"http:\\/\\/twitter.com\\/\\\" rel=\\\"nofollow\\\"\\u003ETwitter for iPhone\\u003C\\/a\\u003E\",\"id_str\":\"24900954553847808\",\"in_reply_to_user_id\":11166162,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":\"24894332775436288\",\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":24900954553847808,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"spicycode\",\"created_at\":\"Tue Jan 11 18:50:24 +0000 2011\"},{\"in_reply_to_user_id_str\":\"6141442\",\"text\":\"@rsanheim Methinks you have a few more weeks of anticipation before that shiny new unicorn is actually in your hands.\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":24600180359692288,\"source\":\"\\u003Ca href=\\\"http:\\/\\/twitter.com\\/\\\" rel=\\\"nofollow\\\"\\u003ETwitter for iPhone\\u003C\\/a\\u003E\",\"id_str\":\"24605159568965633\",\"in_reply_to_user_id\":6141442,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":\"24600180359692288\",\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":24605159568965633,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"rsanheim\",\"created_at\":\"Mon Jan 10 23:15:01 +0000 2011\"},{\"in_reply_to_user_id_str\":\"931471\",\"text\":\"@michellerudolph It's the hardest part of a human or of *you*? I'm not qualified to comment on the former; I shouldn't on the latter. ;-)\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":24534278922575872,\"source\":\"\\u003Ca href=\\\"http:\\/\\/itunes.apple.com\\/us\\/app\\/twitter\\/id409789998?mt=12\\\" rel=\\\"nofollow\\\"\\u003ETwitter for Mac\\u003C\\/a\\u003E\",\"id_str\":\"24573822304788480\",\"in_reply_to_user_id\":931471,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":\"24534278922575872\",\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":24573822304788480,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"michellerudolph\",\"created_at\":\"Mon Jan 10 21:10:30 +0000 2011\"},{\"in_reply_to_user_id_str\":\"74635622\",\"text\":\"@rotatedtoenails I'm well aware of the \\\"Secure Text Entry\\\" option. I've always had it disabled. NV still intermittently breaks TextExpander\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":22491620704260097,\"source\":\"\\u003Ca href=\\\"http:\\/\\/twitter.com\\/\\\" rel=\\\"nofollow\\\"\\u003ETwitter for iPhone\\u003C\\/a\\u003E\",\"id_str\":\"22494553978179584\",\"in_reply_to_user_id\":74635622,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":\"22491620704260097\",\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":22494553978179584,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"rotatedtoenails\",\"created_at\":\"Wed Jan 05 03:28:14 +0000 2011\"},{\"in_reply_to_user_id_str\":null,\"text\":\"Notational Velocity + Simplenote is elegant simplicity (http:\\/\\/is.gd\\/k7TXg). But NV keeps breaking TextExpander, so NV's gotta go. #sadpanda\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":null,\"source\":\"web\",\"id_str\":\"22485166844809216\",\"in_reply_to_user_id\":null,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":null,\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":null,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":null,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":null,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":22485166844809216,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":null,\"created_at\":\"Wed Jan 05 02:50:56 +0000 2011\"},{\"in_reply_to_user_id_str\":null,\"text\":\"\\\"Live as though it were the early days of a better nation.\\\" -- @doctorow\",\"retweeted\":false,\"retweet_count\":1,\"place\":null,\"in_reply_to_status_id\":null,\"source\":\"web\",\"id_str\":\"20595784953102338\",\"in_reply_to_user_id\":null,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":null,\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":20595784953102338,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":null,\"created_at\":\"Thu Dec 30 21:43:12 +0000 2010\"},{\"in_reply_to_user_id_str\":\"5676102\",\"text\":\"@shanselman Congrats on yet another great episode. The second half of 1.1.0 was *very* familiar. Thanks for sharing that conversation.\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":null,\"source\":\"web\",\"id_str\":\"20497377014054912\",\"in_reply_to_user_id\":5676102,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":null,\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":20497377014054912,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"shanselman\",\"created_at\":\"Thu Dec 30 15:12:10 +0000 2010\"},{\"in_reply_to_user_id_str\":\"226246919\",\"text\":\"A timely episode on disconnecting and the importance of being \\\"present\\\" with your loved ones.\\n\\n@thisdevslife 1.1.0 http:\\/\\/is.gd\\/jJr9O\",\"retweeted\":false,\"retweet_count\":0,\"place\":null,\"in_reply_to_status_id\":null,\"source\":\"web\",\"id_str\":\"20497095169409024\",\"in_reply_to_user_id\":226246919,\"truncated\":false,\"geo\":null,\"favorited\":false,\"in_reply_to_status_id_str\":null,\"user\":{\"friends_count\":71,\"profile_sidebar_fill_color\":\"e5e8e3\",\"url\":\"http:\\/\\/jasonrudolph.com\",\"follow_request_sent\":false,\"profile_background_tile\":false,\"time_zone\":\"Quito\",\"description\":\"\",\"following\":false,\"verified\":false,\"location\":\"Raleigh, NC\",\"profile_link_color\":\"005ab4\",\"show_all_inline_media\":false,\"geo_enabled\":false,\"profile_sidebar_border_color\":\"BDDCAD\",\"id_str\":\"14188383\",\"listed_count\":43,\"profile_use_background_image\":false,\"followers_count\":347,\"contributors_enabled\":false,\"profile_background_color\":\"ff6c1f\",\"protected\":false,\"notifications\":false,\"profile_background_image_url\":\"http:\\/\\/a3.twimg.com\\/a\\/1295051201\\/images\\/themes\\/theme9\\/bg.gif\",\"profile_image_url\":\"http:\\/\\/a2.twimg.com\\/profile_images\\/52658686\\/twitter_normal.png\",\"name\":\"Jason Rudolph\",\"is_translator\":false,\"statuses_count\":532,\"id\":14188383,\"lang\":\"en\",\"utc_offset\":-18000,\"favourites_count\":53,\"created_at\":\"Fri Mar 21 00:19:18 +0000 2008\",\"profile_text_color\":\"333333\",\"screen_name\":\"jasonrudolph\"},\"id\":20497095169409024,\"contributors\":null,\"coordinates\":null,\"in_reply_to_screen_name\":\"thisdevslife\",\"created_at\":\"Thu Dec 30 15:11:02 +0000 2010\"}]"
|
63
|
+
content-encoding:
|
64
|
+
- gzip
|
65
|
+
content-length:
|
66
|
+
- "6051"
|
67
|
+
body: !binary |
|
68
|
+
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
|
202
|
+
sB4ae+eb8afH3v//D83CeXjlywAA
|
203
|
+
|
58
204
|
http_version: "1.1"
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: stratify-twitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jason Rudolph
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-04 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: actionpack
|
@@ -135,7 +135,7 @@ files:
|
|
135
135
|
- lib/stratify-twitter/collector.rb
|
136
136
|
- lib/stratify-twitter/engine.rb
|
137
137
|
- lib/stratify-twitter/presenter.rb
|
138
|
-
- lib/stratify-twitter/
|
138
|
+
- lib/stratify-twitter/translation.rb
|
139
139
|
- lib/stratify-twitter/version.rb
|
140
140
|
- spec/mongoid.yml
|
141
141
|
- spec/spec_helper.rb
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'twitter'
|
2
|
-
|
3
|
-
module Stratify
|
4
|
-
module Twitter
|
5
|
-
class Query
|
6
|
-
attr_reader :username
|
7
|
-
|
8
|
-
def initialize(username)
|
9
|
-
@username = username
|
10
|
-
end
|
11
|
-
|
12
|
-
def activities
|
13
|
-
raw_activities.map {|raw_activity| build_activity_from_raw_data(raw_activity)}
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def raw_activities
|
19
|
-
::Twitter.user_timeline(username)
|
20
|
-
end
|
21
|
-
|
22
|
-
def build_activity_from_raw_data(raw_activity)
|
23
|
-
Stratify::Twitter::Activity.new({
|
24
|
-
:status_id => raw_activity.id,
|
25
|
-
:username => raw_activity.user.screen_name,
|
26
|
-
:text => raw_activity.text,
|
27
|
-
:created_at => raw_activity.created_at
|
28
|
-
})
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|