rdaneel 0.2.2 → 0.2.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/Rakefile +25 -7
- data/VERSION +1 -1
- data/features/get_without_cache.feature +37 -1
- data/lib/rdaneel.rb +17 -13
- data/spec/optional/concurrent_load_spec.rb +104 -0
- data/spec/optional/fixtures/tl_gd_urls.txt +146 -0
- data/spec/optional/fixtures/twitlonger_com_urls.txt +147 -0
- data/spec/{streamed_content_spec.rb → optional/streamed_content_spec.rb} +1 -1
- metadata +11 -7
data/Rakefile
CHANGED
@@ -10,7 +10,7 @@ begin
|
|
10
10
|
gem.email = ["edgargonzalez@gmail.com", "anibalrojas@gmail.com"]
|
11
11
|
gem.homepage = "http://github.com/hasmanydevelopers/RDaneel"
|
12
12
|
gem.authors = ["Edgar Gonzalez", "Anibal Rojas"]
|
13
|
-
gem.add_dependency("em-http-request", ">= 0.2.
|
13
|
+
gem.add_dependency("em-http-request", ">= 0.2.12")
|
14
14
|
gem.add_dependency('robot_rules', '>= 0.9.3')
|
15
15
|
gem.add_development_dependency "rspec", ">= 1.2.9"
|
16
16
|
gem.add_development_dependency "cucumber", ">= 0.8.5"
|
@@ -23,25 +23,43 @@ rescue LoadError
|
|
23
23
|
end
|
24
24
|
|
25
25
|
require 'cucumber/rake/task'
|
26
|
-
|
26
|
+
|
27
|
+
desc "Run Cucumber features with RCov"
|
28
|
+
Cucumber::Rake::Task.new(:features_rcov) do |t|
|
27
29
|
t.cucumber_opts = "--format pretty" # Any valid command line option can go here.
|
28
30
|
t.rcov = true
|
29
31
|
t.rcov_opts = %w{--exclude gems\/,spec\/,features\/ --aggregate coverage.data}
|
30
32
|
end
|
31
33
|
|
34
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
35
|
+
t.cucumber_opts = "--format pretty" # Any valid command line option can go here.
|
36
|
+
end
|
37
|
+
|
38
|
+
|
32
39
|
require 'spec/rake/spectask'
|
33
|
-
Spec::Rake::SpecTask.new(:
|
40
|
+
Spec::Rake::SpecTask.new(:spec_rcov) do |spec|
|
34
41
|
spec.libs << 'lib' << 'spec'
|
35
|
-
spec.spec_files = FileList['spec
|
42
|
+
spec.spec_files = FileList['spec/*_spec.rb']
|
36
43
|
spec.rcov = true
|
37
44
|
spec.rcov_opts = %w{--exclude gems\/,spec\/,features\/ --aggregate coverage.data}
|
38
45
|
end
|
39
46
|
|
40
|
-
|
47
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
48
|
+
spec.libs << 'lib' << 'spec'
|
49
|
+
spec.spec_files = FileList['spec/*_spec.rb']
|
50
|
+
end
|
51
|
+
|
52
|
+
desc "Run optional specs (internet access)"
|
53
|
+
Spec::Rake::SpecTask.new(:spec_optional) do |spec|
|
54
|
+
spec.libs << 'lib' << 'spec'
|
55
|
+
spec.spec_files = FileList['spec/optional/*_spec.rb']
|
56
|
+
end
|
57
|
+
|
58
|
+
desc "Run both specs and features with RCov"
|
41
59
|
task :all_tests do |t|
|
42
60
|
rm "coverage.data" if File.exist?("coverage.data")
|
43
|
-
Rake::Task['
|
44
|
-
Rake::Task[
|
61
|
+
Rake::Task['spec_rcov'].invoke
|
62
|
+
Rake::Task['features_rcov'].invoke
|
45
63
|
end
|
46
64
|
|
47
65
|
task :features => :check_dependencies
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
@@ -139,7 +139,7 @@ Feature: get a url without using cache
|
|
139
139
|
| 200 | /robots.txt |
|
140
140
|
| 302 | /redirect_me |
|
141
141
|
|
142
|
-
Scenario: the url to fetch is redirected to unreacheable
|
142
|
+
Scenario: the url to fetch is redirected to unreacheable port
|
143
143
|
Given a robots.txt that allows RDaneel
|
144
144
|
And a HelloWorld url
|
145
145
|
And a "/redirect_me" url that redirects 301 to "http://127.0.0.1:3211/unreacheable" url
|
@@ -153,3 +153,39 @@ Feature: get a url without using cache
|
|
153
153
|
| 200 | /robots.txt |
|
154
154
|
| 301 | /redirect_me |
|
155
155
|
|
156
|
+
Scenario: the url to fetch is redirected to unreacheable host
|
157
|
+
Given a robots.txt that allows RDaneel
|
158
|
+
And a HelloWorld url
|
159
|
+
And a "/redirect_me" url that redirects 301 to "http://wrongserver/unreacheable" url
|
160
|
+
When I get the "/redirect_me" url following a maximum of 3 redirects
|
161
|
+
Then I should get a "unable to resolve server address" error
|
162
|
+
And I should get 1 redirects
|
163
|
+
And The redirects sequence should be:
|
164
|
+
| http://127.0.0.1:3210/redirect_me |
|
165
|
+
And The requests sequence should be:
|
166
|
+
| status | path |
|
167
|
+
| 200 | /robots.txt |
|
168
|
+
| 301 | /redirect_me |
|
169
|
+
|
170
|
+
Scenario: the robots.txt for the url to fetch is redirected to unreacheable host:port
|
171
|
+
Given a "/robots.txt" url that redirects 301 to "http://127.0.0.1:3211/unreacheable" url
|
172
|
+
And a HelloWorld url
|
173
|
+
When I get the "/hello_world" url following a maximum of 3 redirects
|
174
|
+
Then I should get the content for HelloWorld url
|
175
|
+
And I should get 0 redirects
|
176
|
+
And The requests sequence should be:
|
177
|
+
| status | path |
|
178
|
+
| 301 | /robots.txt |
|
179
|
+
| 200 | /hello_world |
|
180
|
+
|
181
|
+
Scenario: the robots.txt for the url to fetch is redirected to unreacheable host
|
182
|
+
Given a "/robots.txt" url that redirects 301 to "http://wrongserver/unreacheable" url
|
183
|
+
And a HelloWorld url
|
184
|
+
When I get the "/hello_world" url following a maximum of 3 redirects
|
185
|
+
Then I should get the content for HelloWorld url
|
186
|
+
And I should get 0 redirects
|
187
|
+
And The requests sequence should be:
|
188
|
+
| status | path |
|
189
|
+
| 301 | /robots.txt |
|
190
|
+
| 200 | /hello_world |
|
191
|
+
|
data/lib/rdaneel.rb
CHANGED
@@ -210,19 +210,23 @@ class RDaneel
|
|
210
210
|
def verbose(message, client = nil, *args)
|
211
211
|
return unless @verbose
|
212
212
|
message.each { |l| hashed_puts('*', l) }
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
213
|
+
if client
|
214
|
+
args.each do |a|
|
215
|
+
case a
|
216
|
+
when :status
|
217
|
+
if client.response_header.status == 0
|
218
|
+
hashed_puts('< Status:', '0 (timeout)')
|
219
|
+
else
|
220
|
+
hashed_puts('< Status:', client.response_header.status)
|
221
|
+
end
|
222
|
+
when :request # this is a options hash
|
223
|
+
if client.options
|
224
|
+
headers = client.options[:head]
|
225
|
+
headers.each { |k,v| hashed_puts('>', "#{k}: #{v}") } if headers
|
226
|
+
end
|
227
|
+
when :response # this is an array
|
228
|
+
client.response_header.each { |r| hashed_puts('<', "#{r[0]}: #{r[1]}") }
|
229
|
+
end
|
226
230
|
end
|
227
231
|
end
|
228
232
|
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe "RDaneel when access a lot of urls in parallel for twitlonger.com" do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@user_agent = 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Ubuntu/10.04 Chromium/7.0.513.0 Chrome/7.0.513.0 Safari/534.7'
|
7
|
+
@http_accept = 'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8'
|
8
|
+
end
|
9
|
+
|
10
|
+
after(:each) do
|
11
|
+
RDaneel.robots_cache = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "and urls are not redirected" do
|
15
|
+
|
16
|
+
before(:each) do
|
17
|
+
@urls_file = File.expand_path(File.dirname(__FILE__) + '/fixtures/twitlonger_com_urls.txt')
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should get the content for each url" do
|
21
|
+
RDaneel.robots_cache = {}
|
22
|
+
RDaneel.robots_cache["http://www.twitlonger.com/robots.txt"] = ""
|
23
|
+
successes = 0
|
24
|
+
failures = 0
|
25
|
+
urls_in_queue = 0
|
26
|
+
total_urls = 0
|
27
|
+
EM.run do
|
28
|
+
File.open(@urls_file).each do |url|
|
29
|
+
unless url.nil? || url.strip.empty?
|
30
|
+
r = RDaneel.new(url)
|
31
|
+
r.callback do
|
32
|
+
successes += 1
|
33
|
+
urls_in_queue -= 1
|
34
|
+
EM.stop if urls_in_queue == 0
|
35
|
+
end
|
36
|
+
r.errback do
|
37
|
+
failures += 1
|
38
|
+
urls_in_queue -= 1
|
39
|
+
EM.stop if urls_in_queue == 0
|
40
|
+
end
|
41
|
+
r.get(:redirects => 10, :timeout => 20,
|
42
|
+
:head => {
|
43
|
+
'user-agent' => @user_agent,
|
44
|
+
'http_accept' => @http_accept
|
45
|
+
}
|
46
|
+
)
|
47
|
+
urls_in_queue += 1
|
48
|
+
total_urls += 1
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
successes.should == total_urls
|
53
|
+
failures.should == 0
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "and urls are redirected" do
|
59
|
+
|
60
|
+
before(:each) do
|
61
|
+
@urls_file = File.expand_path(File.dirname(__FILE__) + '/fixtures/tl_gd_urls.txt')
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should get the content for each url" do
|
65
|
+
RDaneel.robots_cache = {}
|
66
|
+
RDaneel.robots_cache["http://www.twitlonger.com/robots.txt"] = ""
|
67
|
+
RDaneel.robots_cache["http://tl.gd/robots.txt"] = ""
|
68
|
+
successes = 0
|
69
|
+
failures = 0
|
70
|
+
urls_in_queue = 0
|
71
|
+
total_urls = 0
|
72
|
+
EM.run do
|
73
|
+
File.open(@urls_file).each do |url|
|
74
|
+
unless url.nil? || url.strip.empty?
|
75
|
+
r = RDaneel.new(url)
|
76
|
+
r.callback do
|
77
|
+
successes += 1
|
78
|
+
urls_in_queue -= 1
|
79
|
+
EM.stop if urls_in_queue == 0
|
80
|
+
end
|
81
|
+
r.errback do
|
82
|
+
failures += 1
|
83
|
+
urls_in_queue -= 1
|
84
|
+
EM.stop if urls_in_queue == 0
|
85
|
+
end
|
86
|
+
r.get(:redirects => 10, :timeout => 20,
|
87
|
+
:head => {
|
88
|
+
'user-agent' => @user_agent,
|
89
|
+
'http_accept' => @http_accept
|
90
|
+
}
|
91
|
+
)
|
92
|
+
urls_in_queue += 1
|
93
|
+
total_urls += 1
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
successes.should == total_urls
|
98
|
+
failures.should == 0
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
@@ -0,0 +1,146 @@
|
|
1
|
+
http://tl.gd/3fgffg
|
2
|
+
http://tl.gd/3fgffj
|
3
|
+
http://tl.gd/3f9hua
|
4
|
+
http://tl.gd/3fgfgn
|
5
|
+
http://tl.gd/3fgfgv
|
6
|
+
http://tl.gd/3fgfh9
|
7
|
+
http://tl.gd/3fgfh7
|
8
|
+
http://tl.gd/3fgfh3
|
9
|
+
http://tl.gd/3fgfh6
|
10
|
+
http://tl.gd/3fgffi
|
11
|
+
http://tl.gd/3fgfg7
|
12
|
+
http://tl.gd/3fgfhr
|
13
|
+
http://tl.gd/3fgfhq
|
14
|
+
http://tl.gd/3fgfhu
|
15
|
+
http://tl.gd/3fgfhm
|
16
|
+
http://tl.gd/3fgfga
|
17
|
+
http://tl.gd/3fgfi8
|
18
|
+
http://tl.gd/3fgfi3
|
19
|
+
http://tl.gd/3fgfie
|
20
|
+
http://tl.gd/3fgfib
|
21
|
+
http://tl.gd/3ffsvd
|
22
|
+
http://tl.gd/3fgfj3
|
23
|
+
http://tl.gd/3fgfj7
|
24
|
+
http://tl.gd/3fgfit
|
25
|
+
http://tl.gd/3fgfjc
|
26
|
+
http://tl.gd/3fgfja
|
27
|
+
http://tl.gd/3fgfln
|
28
|
+
http://tl.gd/3fgfll
|
29
|
+
http://tl.gd/3fgflv
|
30
|
+
http://tl.gd/3fgfm3
|
31
|
+
http://tl.gd/3fgflo
|
32
|
+
http://tl.gd/3fgfm4
|
33
|
+
http://tl.gd/3fgfmd
|
34
|
+
http://tl.gd/3bkn3t
|
35
|
+
http://tl.gd/3fgfmk
|
36
|
+
http://tl.gd/3fgfn0
|
37
|
+
http://tl.gd/3ffsuj
|
38
|
+
http://tl.gd/3fgfng
|
39
|
+
http://tl.gd/3fgfnh
|
40
|
+
http://tl.gd/3fgfnm
|
41
|
+
http://tl.gd/3fgfnj
|
42
|
+
http://tl.gd/3fgfnt
|
43
|
+
http://tl.gd/3fgfnu
|
44
|
+
http://tl.gd/3fgfnn
|
45
|
+
http://tl.gd/3fgfo1
|
46
|
+
http://tl.gd/3fgfo4
|
47
|
+
http://tl.gd/3fgfo3
|
48
|
+
http://tl.gd/3fgfof
|
49
|
+
http://tl.gd/3fgfok
|
50
|
+
http://tl.gd/3fgfom
|
51
|
+
http://tl.gd/3fgfor
|
52
|
+
http://tl.gd/3fgfop
|
53
|
+
http://tl.gd/3fgfpd
|
54
|
+
http://tl.gd/3fgfph
|
55
|
+
http://tl.gd/3fgfpg
|
56
|
+
http://tl.gd/3fgfp5
|
57
|
+
http://tl.gd/3fgfp8
|
58
|
+
http://tl.gd/3fgfjj
|
59
|
+
http://tl.gd/3fgfp7
|
60
|
+
http://tl.gd/3fgfr0
|
61
|
+
http://tl.gd/3fgfri
|
62
|
+
http://tl.gd/3fgfs6
|
63
|
+
http://tl.gd/3ff20b
|
64
|
+
http://tl.gd/3ffimm
|
65
|
+
http://tl.gd/3ff2ok
|
66
|
+
http://tl.gd/3fgfrs
|
67
|
+
http://tl.gd/3fgfs3
|
68
|
+
http://tl.gd/3fgfs2
|
69
|
+
http://tl.gd/3fgfsc
|
70
|
+
http://tl.gd/3fgfso
|
71
|
+
http://tl.gd/3fgfsn
|
72
|
+
http://tl.gd/3fgfst
|
73
|
+
http://tl.gd/3fgfta
|
74
|
+
http://tl.gd/3fgfte
|
75
|
+
http://tl.gd/3fgfrl
|
76
|
+
http://tl.gd/3fgftg
|
77
|
+
http://tl.gd/3fgfu8
|
78
|
+
http://tl.gd/3ffm98
|
79
|
+
http://tl.gd/3fgg08
|
80
|
+
http://tl.gd/3fgg0k
|
81
|
+
http://tl.gd/3fgg0e
|
82
|
+
http://tl.gd/3fgg06
|
83
|
+
http://tl.gd/3fa67d
|
84
|
+
http://tl.gd/3fgg0b
|
85
|
+
http://tl.gd/3fgg0q
|
86
|
+
http://tl.gd/3fgg0i
|
87
|
+
http://tl.gd/3fgg12
|
88
|
+
http://tl.gd/3fgfj0
|
89
|
+
http://tl.gd/3fgg1d
|
90
|
+
http://tl.gd/3fgg18
|
91
|
+
http://tl.gd/3fgg1g
|
92
|
+
http://tl.gd/3fgg20
|
93
|
+
http://tl.gd/3fgg1p
|
94
|
+
http://tl.gd/3fgg1t
|
95
|
+
http://tl.gd/3fgg24
|
96
|
+
http://tl.gd/3fgg25
|
97
|
+
http://tl.gd/3fgg2b
|
98
|
+
http://tl.gd/3fgg2a
|
99
|
+
http://tl.gd/3fgg2g
|
100
|
+
http://tl.gd/3fgg2f
|
101
|
+
http://tl.gd/3fgg1v
|
102
|
+
http://tl.gd/3fgg2l
|
103
|
+
http://tl.gd/3fgg2s
|
104
|
+
http://tl.gd/3fgg2u
|
105
|
+
http://tl.gd/3fgg3b
|
106
|
+
http://tl.gd/3fgg34
|
107
|
+
http://tl.gd/3fgg5j
|
108
|
+
http://tl.gd/3fgg59
|
109
|
+
http://tl.gd/3fgg5b
|
110
|
+
http://tl.gd/3fgg5c
|
111
|
+
http://tl.gd/3fgg5m
|
112
|
+
http://tl.gd/3fgg61
|
113
|
+
http://tl.gd/3fgg5r
|
114
|
+
http://tl.gd/3fgg67
|
115
|
+
http://tl.gd/3fgg6e
|
116
|
+
http://tl.gd/3fgg69
|
117
|
+
http://tl.gd/3fgg64
|
118
|
+
http://tl.gd/3fgg6q
|
119
|
+
http://tl.gd/3fgg73
|
120
|
+
http://tl.gd/3fgem2
|
121
|
+
http://tl.gd/3fgg74
|
122
|
+
http://tl.gd/3fgg7d
|
123
|
+
http://tl.gd/3fgg79
|
124
|
+
http://tl.gd/3fgg7e
|
125
|
+
http://tl.gd/3fgg7a
|
126
|
+
http://tl.gd/3fgg78
|
127
|
+
http://tl.gd/3fgg76
|
128
|
+
http://tl.gd/3fgg77
|
129
|
+
http://tl.gd/3fgg6f
|
130
|
+
http://tl.gd/3fgg7g
|
131
|
+
http://tl.gd/3fgg7c
|
132
|
+
http://tl.gd/3668o7
|
133
|
+
http://tl.gd/3fgg8i
|
134
|
+
http://tl.gd/3fgg8d
|
135
|
+
http://tl.gd/3fgcrq
|
136
|
+
http://tl.gd/3fgg8m
|
137
|
+
http://tl.gd/3fgg8e
|
138
|
+
http://tl.gd/3fggbv
|
139
|
+
http://tl.gd/3fggc0
|
140
|
+
http://tl.gd/3fggbs
|
141
|
+
http://tl.gd/3fggbp
|
142
|
+
http://tl.gd/3fgga0
|
143
|
+
http://tl.gd/3fggc3
|
144
|
+
http://tl.gd/3fggc1
|
145
|
+
http://tl.gd/3fggbt
|
146
|
+
http://tl.gd/3fgggk
|
@@ -0,0 +1,147 @@
|
|
1
|
+
http://www.twitlonger.com/show/3fgffg
|
2
|
+
http://www.twitlonger.com/show/3fgffj
|
3
|
+
http://www.twitlonger.com/show/3f9hua
|
4
|
+
http://www.twitlonger.com/show/3fgfgn
|
5
|
+
http://www.twitlonger.com/show/3fgfgv
|
6
|
+
http://www.twitlonger.com/show/3fgfh9
|
7
|
+
http://www.twitlonger.com/show/3fgfh7
|
8
|
+
http://www.twitlonger.com/show/3fgfh3
|
9
|
+
http://www.twitlonger.com/show/3fgfh6
|
10
|
+
http://www.twitlonger.com/show/3fgffi
|
11
|
+
http://www.twitlonger.com/show/3fgfg7
|
12
|
+
http://www.twitlonger.com/show/3fgfhr
|
13
|
+
http://www.twitlonger.com/show/3fgfhq
|
14
|
+
http://www.twitlonger.com/show/3fgfhu
|
15
|
+
http://www.twitlonger.com/show/3fgfhm
|
16
|
+
http://www.twitlonger.com/show/3fgfga
|
17
|
+
http://www.twitlonger.com/show/3fgfi8
|
18
|
+
http://www.twitlonger.com/show/3fgfi3
|
19
|
+
http://www.twitlonger.com/show/3fgfie
|
20
|
+
http://www.twitlonger.com/show/3fgfib
|
21
|
+
http://www.twitlonger.com/show/3ffsvd
|
22
|
+
http://www.twitlonger.com/show/3fgfj3
|
23
|
+
http://www.twitlonger.com/show/3fgfj7
|
24
|
+
http://www.twitlonger.com/show/3fgfit
|
25
|
+
http://www.twitlonger.com/show/3fgfjc
|
26
|
+
http://www.twitlonger.com/show/3fgfja
|
27
|
+
http://www.twitlonger.com/show/3fgfln
|
28
|
+
http://www.twitlonger.com/show/3fgfll
|
29
|
+
http://www.twitlonger.com/show/3fgflv
|
30
|
+
http://www.twitlonger.com/show/3fgfm3
|
31
|
+
http://www.twitlonger.com/show/3fgflo
|
32
|
+
http://www.twitlonger.com/show/3fgfm4
|
33
|
+
http://www.twitlonger.com/show/3fgfmd
|
34
|
+
http://www.twitlonger.com/show/3bkn3t
|
35
|
+
http://www.twitlonger.com/show/3fgfmk
|
36
|
+
http://www.twitlonger.com/show/3fgfn0
|
37
|
+
http://www.twitlonger.com/show/3ffsuj
|
38
|
+
http://www.twitlonger.com/show/3fgfng
|
39
|
+
http://www.twitlonger.com/show/3fgfnh
|
40
|
+
http://www.twitlonger.com/show/3fgfnm
|
41
|
+
http://www.twitlonger.com/show/3fgfnj
|
42
|
+
http://www.twitlonger.com/show/3fgfnt
|
43
|
+
http://www.twitlonger.com/show/3fgfnu
|
44
|
+
http://www.twitlonger.com/show/3fgfnn
|
45
|
+
http://www.twitlonger.com/show/3fgfo1
|
46
|
+
http://www.twitlonger.com/show/3fgfo4
|
47
|
+
http://www.twitlonger.com/show/3fgfo3
|
48
|
+
http://www.twitlonger.com/show/3fgfof
|
49
|
+
http://www.twitlonger.com/show/3fgfok
|
50
|
+
http://www.twitlonger.com/show/3fgfom
|
51
|
+
http://www.twitlonger.com/show/3fgfor
|
52
|
+
http://www.twitlonger.com/show/3fgfop
|
53
|
+
http://www.twitlonger.com/show/3fgfpd
|
54
|
+
http://www.twitlonger.com/show/3fgfph
|
55
|
+
http://www.twitlonger.com/show/3fgfpg
|
56
|
+
http://www.twitlonger.com/show/3fgfp5
|
57
|
+
http://www.twitlonger.com/show/3fgfp8
|
58
|
+
http://www.twitlonger.com/show/3fgfjj
|
59
|
+
http://www.twitlonger.com/show/3fgfp7
|
60
|
+
http://www.twitlonger.com/show/3fgfr0
|
61
|
+
http://www.twitlonger.com/show/3fgfri
|
62
|
+
http://www.twitlonger.com/show/3fgfs6
|
63
|
+
http://www.twitlonger.com/show/3ff20b
|
64
|
+
http://www.twitlonger.com/show/3ffimm
|
65
|
+
http://www.twitlonger.com/show/3ff2ok
|
66
|
+
http://www.twitlonger.com/show/3fgfrs
|
67
|
+
http://www.twitlonger.com/show/3fgfs3
|
68
|
+
http://www.twitlonger.com/show/3fgfs2
|
69
|
+
http://www.twitlonger.com/show/3fgfsc
|
70
|
+
http://www.twitlonger.com/show/3fgfso
|
71
|
+
http://www.twitlonger.com/show/3fgfsn
|
72
|
+
http://www.twitlonger.com/show/3fgfst
|
73
|
+
http://www.twitlonger.com/show/3fgfta
|
74
|
+
http://www.twitlonger.com/show/3fgfte
|
75
|
+
http://www.twitlonger.com/show/3fgfrl
|
76
|
+
http://www.twitlonger.com/show/3fgftg
|
77
|
+
http://www.twitlonger.com/show/3fgfu8
|
78
|
+
http://www.twitlonger.com/show/3ffm98
|
79
|
+
http://www.twitlonger.com/show/3fgg08
|
80
|
+
http://www.twitlonger.com/show/3fgg0k
|
81
|
+
http://www.twitlonger.com/show/3fgg0e
|
82
|
+
http://www.twitlonger.com/show/3fgg06
|
83
|
+
http://www.twitlonger.com/show/3fa67d
|
84
|
+
http://www.twitlonger.com/show/3fgg0b
|
85
|
+
http://www.twitlonger.com/show/3fgg0q
|
86
|
+
http://www.twitlonger.com/show/3fgg0i
|
87
|
+
http://www.twitlonger.com/show/3fgg12
|
88
|
+
http://www.twitlonger.com/show/3fgfj0
|
89
|
+
http://www.twitlonger.com/show/3fgg1d
|
90
|
+
http://www.twitlonger.com/show/3fgg18
|
91
|
+
http://www.twitlonger.com/show/3fgg1g
|
92
|
+
http://www.twitlonger.com/show/3fgg20
|
93
|
+
http://www.twitlonger.com/show/3fgg1p
|
94
|
+
http://www.twitlonger.com/show/3fgg1t
|
95
|
+
http://www.twitlonger.com/show/3fgg24
|
96
|
+
http://www.twitlonger.com/show/3fgg25
|
97
|
+
http://www.twitlonger.com/show/3fgg2b
|
98
|
+
http://www.twitlonger.com/show/3fgg2a
|
99
|
+
http://www.twitlonger.com/show/3fgg2g
|
100
|
+
http://www.twitlonger.com/show/3fgg2f
|
101
|
+
http://www.twitlonger.com/show/3fgg1v
|
102
|
+
http://www.twitlonger.com/show/3fgg2l
|
103
|
+
http://www.twitlonger.com/show/3fgg2s
|
104
|
+
http://www.twitlonger.com/show/3fgg2u
|
105
|
+
http://www.twitlonger.com/show/3fgg3b
|
106
|
+
http://www.twitlonger.com/show/3fgg34
|
107
|
+
http://www.twitlonger.com/show/3fgg5j
|
108
|
+
http://www.twitlonger.com/show/3fgg59
|
109
|
+
http://www.twitlonger.com/show/3fgg5b
|
110
|
+
http://www.twitlonger.com/show/3fgg5c
|
111
|
+
http://www.twitlonger.com/show/3fgg5m
|
112
|
+
http://www.twitlonger.com/show/3fgg61
|
113
|
+
http://www.twitlonger.com/show/3fgg5r
|
114
|
+
http://www.twitlonger.com/show/3fgg67
|
115
|
+
http://www.twitlonger.com/show/3fgg6e
|
116
|
+
http://www.twitlonger.com/show/3fgg69
|
117
|
+
http://www.twitlonger.com/show/3fgg64
|
118
|
+
http://www.twitlonger.com/show/3fgg6q
|
119
|
+
http://www.twitlonger.com/show/3fgg73
|
120
|
+
http://www.twitlonger.com/show/3fgem2
|
121
|
+
http://www.twitlonger.com/show/3fgg74
|
122
|
+
http://www.twitlonger.com/show/3fgg7d
|
123
|
+
http://www.twitlonger.com/show/3fgg79
|
124
|
+
http://www.twitlonger.com/show/3fgg7e
|
125
|
+
http://www.twitlonger.com/show/3fgg7a
|
126
|
+
http://www.twitlonger.com/show/3fgg78
|
127
|
+
http://www.twitlonger.com/show/3fgg76
|
128
|
+
http://www.twitlonger.com/show/3fgg77
|
129
|
+
http://www.twitlonger.com/show/3fgg6f
|
130
|
+
http://www.twitlonger.com/show/3fgg7g
|
131
|
+
http://www.twitlonger.com/show/3fgg7c
|
132
|
+
http://www.twitlonger.com/show/3668o7
|
133
|
+
http://www.twitlonger.com/show/3fgg8i
|
134
|
+
http://www.twitlonger.com/show/3fgg8d
|
135
|
+
http://www.twitlonger.com/show/3fgcrq
|
136
|
+
http://www.twitlonger.com/show/3fgg8m
|
137
|
+
http://www.twitlonger.com/show/3fgg8e
|
138
|
+
http://www.twitlonger.com/show/3fggbv
|
139
|
+
http://www.twitlonger.com/show/3fggc0
|
140
|
+
http://www.twitlonger.com/show/3fggbs
|
141
|
+
http://www.twitlonger.com/show/3fggbp
|
142
|
+
http://www.twitlonger.com/show/3fgga0
|
143
|
+
http://www.twitlonger.com/show/3fggc3
|
144
|
+
http://www.twitlonger.com/show/3fggc1
|
145
|
+
http://www.twitlonger.com/show/3fggbt
|
146
|
+
http://www.twitlonger.com/show/3fgggk
|
147
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 3
|
9
|
+
version: 0.2.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Edgar Gonzalez
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-09-13 00:00:00 -04:30
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -28,8 +28,8 @@ dependencies:
|
|
28
28
|
segments:
|
29
29
|
- 0
|
30
30
|
- 2
|
31
|
-
-
|
32
|
-
version: 0.2.
|
31
|
+
- 12
|
32
|
+
version: 0.2.12
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
@@ -113,10 +113,13 @@ files:
|
|
113
113
|
- features/support/burrito.rb
|
114
114
|
- features/support/env.rb
|
115
115
|
- lib/rdaneel.rb
|
116
|
+
- spec/optional/concurrent_load_spec.rb
|
117
|
+
- spec/optional/fixtures/tl_gd_urls.txt
|
118
|
+
- spec/optional/fixtures/twitlonger_com_urls.txt
|
119
|
+
- spec/optional/streamed_content_spec.rb
|
116
120
|
- spec/rdaneel_spec.rb
|
117
121
|
- spec/spec.opts
|
118
122
|
- spec/spec_helper.rb
|
119
|
-
- spec/streamed_content_spec.rb
|
120
123
|
has_rdoc: true
|
121
124
|
homepage: http://github.com/hasmanydevelopers/RDaneel
|
122
125
|
licenses: []
|
@@ -148,6 +151,7 @@ signing_key:
|
|
148
151
|
specification_version: 3
|
149
152
|
summary: Obey robots.txt on top of em-http-request (Asynchronous HTTP Client)
|
150
153
|
test_files:
|
154
|
+
- spec/optional/concurrent_load_spec.rb
|
155
|
+
- spec/optional/streamed_content_spec.rb
|
151
156
|
- spec/spec_helper.rb
|
152
|
-
- spec/streamed_content_spec.rb
|
153
157
|
- spec/rdaneel_spec.rb
|