benschwarz-smoke 0.3.9 → 0.3.10
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +1 -1
- data/lib/smoke/request.rb +9 -13
- data/lib/smoke.rb +1 -2
- data/spec/smoke/origin_spec.rb +11 -1
- data/spec/smoke/request_spec.rb +10 -31
- data/spec/smoke/source/data_spec.rb +3 -1
- data/spec/smoke/source/feed_spec.rb +2 -1
- data/spec/smoke/source/join_spec.rb +3 -16
- data/spec/smoke/source/shared_spec.rb +182 -0
- data/spec/smoke/source/yql_spec.rb +7 -5
- data/spec/smoke_spec.rb +4 -0
- data/spec/spec_helper.rb +3 -1
- data/spec/supports/datatables.yql +12 -0
- data/spec/supports/flickr-photo.json +1 -3
- data/spec/supports/gzip_response.txt +0 -0
- data/spec/supports/search-web.json.yql +12 -0
- data/spec/supports/search-web.xml.yql +83 -0
- metadata +17 -4
- data/spec/supports/mayo.rb +0 -5
- data/spec/supports/search-web.yql +0 -1
data/VERSION.yml
CHANGED
data/lib/smoke/request.rb
CHANGED
@@ -13,29 +13,25 @@ module Smoke
|
|
13
13
|
attr_reader :uri, :content_type, :body, :type
|
14
14
|
|
15
15
|
def initialize(uri, *options)
|
16
|
-
@uri = uri
|
17
|
-
@options = options
|
16
|
+
@uri, @options = uri, options
|
18
17
|
dispatch
|
19
18
|
end
|
20
19
|
|
21
20
|
private
|
22
21
|
def dispatch
|
23
22
|
opts = {
|
24
|
-
|
25
|
-
|
23
|
+
:user_agent => Smoke.config[:user_agent],
|
24
|
+
:accept_encoding => "gzip"
|
26
25
|
}
|
27
26
|
Thread.new {
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
@body = request.read
|
32
|
-
end
|
27
|
+
request = RestClient.get(@uri, opts)
|
28
|
+
@content_type = request.headers[:content_type]
|
29
|
+
@body = request
|
33
30
|
}.join
|
34
31
|
|
35
|
-
unless @options.include?(:raw_response)
|
36
|
-
|
37
|
-
|
38
|
-
rescue OpenURI::HTTPError => e
|
32
|
+
present! unless @options.include?(:raw_response)
|
33
|
+
|
34
|
+
rescue RestClient::Exception => e
|
39
35
|
Failure.new(@uri, e)
|
40
36
|
end
|
41
37
|
|
data/lib/smoke.rb
CHANGED
data/spec/smoke/origin_spec.rb
CHANGED
@@ -185,7 +185,7 @@ describe Smoke::Origin do
|
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
188
|
-
describe "
|
188
|
+
describe "transformations" do
|
189
189
|
it "should respond to emit" do
|
190
190
|
Smoke[:test].should respond_to(:emit)
|
191
191
|
end
|
@@ -218,5 +218,15 @@ describe Smoke::Origin do
|
|
218
218
|
Smoke[:test].insert(:source, "twitter").output.first.should have_key :source
|
219
219
|
Smoke[:test].insert(:source, "twitter").output.first[:source].should == "twitter"
|
220
220
|
end
|
221
|
+
|
222
|
+
it "should work in a block" do
|
223
|
+
TestSource.source(:inserts) do
|
224
|
+
emit do
|
225
|
+
insert :x, "exx"
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
Smoke[:inserts].output.first.should have_key(:x)
|
230
|
+
end
|
221
231
|
end
|
222
232
|
end
|
data/spec/smoke/request_spec.rb
CHANGED
@@ -3,56 +3,35 @@ require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
|
|
3
3
|
describe Smoke::Request do
|
4
4
|
before do
|
5
5
|
@url = "http://fake.tld/canned/"
|
6
|
-
@web_search = File.join(SPEC_DIR, 'supports', '
|
7
|
-
FakeWeb.register_uri(@url, :
|
6
|
+
@web_search = File.join(SPEC_DIR, 'supports', 'flickr-photo.json')
|
7
|
+
FakeWeb.register_uri(@url, :response => @web_search)
|
8
8
|
@request = Smoke::Request.new(@url)
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should return a Request object" do
|
12
12
|
@request.should be_an_instance_of(Smoke::Request)
|
13
13
|
end
|
14
|
-
|
15
|
-
it "should have a response body" do
|
16
|
-
@request.body.should == File.read(@web_search)
|
17
|
-
end
|
18
|
-
|
14
|
+
|
19
15
|
it "should have a content type" do
|
20
|
-
@request.content_type.should
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should be a pure ruby array response" do
|
24
|
-
# Temporary real request, fakeweb isn't allowing content_type setting as of writing
|
25
|
-
request = Smoke::Request.new("http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20search.web%20WHERE%20query%20=%20'ruby'&format=xml")
|
26
|
-
request.body.should be_an_instance_of(Hash)
|
16
|
+
@request.content_type.should =~ /text\/json/
|
27
17
|
end
|
28
18
|
|
29
19
|
it "should be a raw string response" do
|
30
20
|
request = Smoke::Request.new(@url, :raw_response)
|
31
|
-
request.body.should
|
21
|
+
request.body.should == "{\"photos\":{\"page\":1, \"pages\":1, \"perpage\":100, \"total\":\"2\", \"photo\":[{\"id\":\"3443335843\", \"owner\":\"36821533@N00\", \"secret\":\"5a15f0bfb9\", \"server\":\"3305\", \"farm\":4, \"title\":\"How I roll\", \"ispublic\":1, \"isfriend\":0, \"isfamily\":0}, {\"id\":\"3345220961\", \"owner\":\"36821533@N00\", \"secret\":\"a1dd2b9eca\", \"server\":\"3581\", \"farm\":4, \"title\":\"My desk\", \"ispublic\":1, \"isfriend\":0, \"isfamily\":0}]}, \"stat\":\"ok\"}"
|
32
22
|
end
|
33
23
|
|
34
24
|
describe "gzipped responses" do
|
35
25
|
before do
|
36
|
-
#
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
# gz = Zlib::GzipWriter.new(output)
|
41
|
-
# gz.write(File.read(@gzip_response))
|
42
|
-
# gz.close
|
43
|
-
#@gzip_response = File.join(SPEC_DIR, 'supports', 'gzip.response')
|
44
|
-
#FakeWeb.register_uri(@url, :file => @gzip_response)
|
26
|
+
# Gzip response should come out exactly the same as the plain text response
|
27
|
+
@gzip_response = File.join(SPEC_DIR, 'supports', 'gzip_response.txt')
|
28
|
+
@url = "http://fake.tld/gzip"
|
29
|
+
FakeWeb.register_uri(@url, :response => @gzip_response, :content_encoding => "gzip")
|
45
30
|
end
|
46
31
|
|
47
32
|
it "should transparently handle a gzipped response" do
|
48
|
-
pending
|
49
33
|
request = Smoke::Request.new(@url)
|
50
|
-
request.body.should == "
|
34
|
+
request.body.should == "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n\t\"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n\t<head>\n\t\t<title>New street represent</title>\n\t\t<style type=\"text/css\" media=\"screen\">\n\t\t\tbody {\n\t\t\t\tfont-family: helvetica, arial, sans-serif;\n\t\t\t\tfont-size: 2em;\n\t\t\t\tbackground-color: black;\n\t\t\t\tletter-spacing: -3px;\n\t\t\t\tmargin: 0 auto;\n\t\t\t}\n\t\t\th1 {\n\t\t\t\tposition: absolute;\n\t\t\t\tright: 0;\n\t\t\t\tbackground-color: #666;\n\t\t\t\twidth: 4em;\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<h1>Massive</h1>\n\t</body>\n</html>"
|
51
35
|
end
|
52
36
|
end
|
53
|
-
|
54
|
-
describe "http redirects" do
|
55
|
-
it "should follow a redirect to a resource"
|
56
|
-
it "should follow only one html redirect before raising an error"
|
57
|
-
end
|
58
37
|
end
|
@@ -4,13 +4,15 @@ describe "'Data' source" do
|
|
4
4
|
before :all do
|
5
5
|
FakeWeb.register_uri("http://photos.tld/index.json", :response => File.join(SPEC_DIR, 'supports', 'flickr-photo.json'))
|
6
6
|
|
7
|
-
Smoke.data(:photos) do
|
7
|
+
@source = Smoke.data(:photos) do
|
8
8
|
url "http://photos.tld/index.json"
|
9
9
|
|
10
10
|
path :photos, :photo
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
+
# it_should_behave_like "all sources"
|
15
|
+
|
14
16
|
it "should have been activated" do
|
15
17
|
Smoke[:photos].should(be_an_instance_of(Smoke::Source::Data))
|
16
18
|
end
|
@@ -4,7 +4,7 @@ describe "Feed" do
|
|
4
4
|
before :all do
|
5
5
|
FakeWeb.register_uri("http://slashdot.org/index.rdf", :file => File.join(SPEC_DIR, 'supports', 'slashdot.xml'))
|
6
6
|
|
7
|
-
Smoke.feed(:slashdot) do
|
7
|
+
@source = Smoke.feed(:slashdot) do
|
8
8
|
url "http://slashdot.org/index.rdf"
|
9
9
|
url "http://slashdot.org/index.rdf"
|
10
10
|
|
@@ -14,6 +14,7 @@ describe "Feed" do
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
+
# it_should_behave_like "all sources"
|
17
18
|
|
18
19
|
it "should have been activated" do
|
19
20
|
Smoke[:slashdot].should(be_an_instance_of(Smoke::Source::Feed))
|
@@ -9,9 +9,11 @@ describe "Join" do
|
|
9
9
|
|
10
10
|
describe "joining" do
|
11
11
|
before do
|
12
|
-
@
|
12
|
+
@source = Smoke.join(:a, :b)
|
13
13
|
end
|
14
14
|
|
15
|
+
# it_should_behave_like "all sources"
|
16
|
+
|
15
17
|
it "should be named in a_b_joined" do
|
16
18
|
Smoke[:a_b_joined].should be_an_instance_of(Smoke::Source::Join)
|
17
19
|
end
|
@@ -31,21 +33,6 @@ describe "Join" do
|
|
31
33
|
it "should allow changes to output" do
|
32
34
|
Smoke[:a_b_joined].should respond_to(:output)
|
33
35
|
end
|
34
|
-
|
35
|
-
describe "renaming" do
|
36
|
-
it "should allow renaming" do
|
37
|
-
Smoke[:a_b_joined].should respond_to(:rename)
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should be renamed" do
|
41
|
-
Smoke.rename(:a_b_joined => :rename_spec)
|
42
|
-
Smoke[:rename_spec].should be_an_instance_of(Smoke::Source::Join)
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should change its name property after being renamed" do
|
46
|
-
Smoke[:rename_spec].name.should == "rename_spec"
|
47
|
-
end
|
48
|
-
end
|
49
36
|
|
50
37
|
describe "dispatching" do
|
51
38
|
before :all do
|
@@ -0,0 +1,182 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "..", "spec_helper.rb")
|
2
|
+
|
3
|
+
shared_examples_for "all sources" do
|
4
|
+
describe "transforms" do
|
5
|
+
|
6
|
+
it "emit should require a block" do
|
7
|
+
lambda { @source.emit }.should raise_error
|
8
|
+
lambda { @source.emit {} }.should_not raise_error
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should respond to transform" do
|
12
|
+
@source.should respond_to(:transform)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "transform should require a block" do
|
16
|
+
lambda { @source.transform }.should raise_error
|
17
|
+
lambda { @source.transform {} }.should_not raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should have at least one transformation" do
|
21
|
+
@source.transformation.size.should_not be_nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "key insertion" do
|
26
|
+
it "should respond to insert" do
|
27
|
+
@source.should respond_to(:insert)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should insert values into each key" do
|
31
|
+
@source.insert(:source, "twitter").output.first.should have_key :source
|
32
|
+
@source.insert(:source, "twitter").output.first[:source].should == "twitter"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "general object transformations" do
|
37
|
+
it "should respond to emit" do
|
38
|
+
@source.should respond_to(:emit)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should rename properties" do
|
42
|
+
@source.rename(:title => :header).output.first.should have_key(:header)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should sort by a given property" do
|
46
|
+
@source.sort(:header).output.first[:header].should == "Kangaroo"
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should reverse the results" do
|
50
|
+
@source.sort(:header).reverse.output.should == [{:header => "Platypus", :name => "Peter"}, {:header => "Kangaroo", :name => "Kelly"}]
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should truncate results given a length" do
|
54
|
+
@source.truncate(1).output.should be_an_instance_of(Hash)
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "filtering" do
|
58
|
+
before do
|
59
|
+
TestSource.source(:keep) do
|
60
|
+
emit do
|
61
|
+
transform :head do |head|
|
62
|
+
head.gsub(/Animal: /, '')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
TestSource.source(:discard) do
|
68
|
+
emit do
|
69
|
+
transform :head do |head|
|
70
|
+
head.gsub(/Animal: /, '')
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should keep items" do
|
77
|
+
@source.should(respond_to(:keep))
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should only contain items that match" do
|
81
|
+
@source.keep(:head, /^K/).output.should == {:head => "Kangaroo", :name => "Kelly"}
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should discard items" do
|
85
|
+
@source.should(respond_to(:discard))
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should not contain items that match" do
|
89
|
+
@source.discard(:head, /^K/).output.should == {:head => "Platypus", :name => "Peter"}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe "output" do
|
95
|
+
it "should output" do
|
96
|
+
@source.output.should be_an_instance_of(Array)
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should output a single hash when there is only one result" do
|
100
|
+
@source.truncate(1).output.should be_an_instance_of(Hash)
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should output two items" do
|
104
|
+
@source.output.size.should == 2
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should output json" do
|
108
|
+
@source.output(:json).should =~ /^\[\{/
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should output yml" do
|
112
|
+
@source.output(:yaml).should =~ /^--- \n- :/
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should dispatch when output is called" do
|
116
|
+
TestSource.source(:dispatch)
|
117
|
+
@source.should_receive(:dispatch)
|
118
|
+
@source.output
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
describe "preperation" do
|
123
|
+
before :all do
|
124
|
+
@source = TestSource.source(:preperation)
|
125
|
+
end
|
126
|
+
|
127
|
+
it "should respond to prepare" do
|
128
|
+
@source.should respond_to(:prepare)
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should require a block" do
|
132
|
+
lambda { @source.prepare }.should raise_error
|
133
|
+
lambda { @source.prepare {} }.should_not raise_error
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "call order" do
|
138
|
+
before :all do
|
139
|
+
@url = "http://domain.tld/benschwarz/feed"
|
140
|
+
FakeWeb.register_uri(@url, :response => File.join(SPEC_DIR, 'supports', 'flickr-photo.json'))
|
141
|
+
|
142
|
+
Smoke.data :feed_preperation_call_order do
|
143
|
+
prepare do
|
144
|
+
url "http://domain.tld/#{username}/feed"
|
145
|
+
end
|
146
|
+
|
147
|
+
path :photos, :photo
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe "before setting variables" do
|
152
|
+
it "should fail" do
|
153
|
+
lambda { @source.output }.should raise_error(NameError)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
describe "setting abstract properties" do
|
158
|
+
it "should not respond to a property that hasn't been set" do
|
159
|
+
lambda { @source.abstract }.should raise_error(NoMethodError)
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should allow setting a property" do
|
163
|
+
lambda { @source.abstract(:value) }.should_not raise_error(NoMethodError)
|
164
|
+
@source.abstract.should == :value
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should chain the source when setting a property" do
|
168
|
+
@source.abstract(:value).should be_an_instance_of(Smoke::Source::Data)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
describe "after setting variables" do
|
173
|
+
it "should output successfully" do
|
174
|
+
lambda { @source.username("benschwarz").output }.should_not raise_error
|
175
|
+
end
|
176
|
+
|
177
|
+
it "should have used the correct url" do
|
178
|
+
@source.request.uri.should == @url
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
@@ -2,11 +2,9 @@ require File.join(File.dirname(__FILE__), "..", "..", "spec_helper.rb")
|
|
2
2
|
|
3
3
|
describe "YQL" do
|
4
4
|
before :all do
|
5
|
-
|
5
|
+
FakeWeb.register_uri("http://query.yahooapis.com:80/v1/public/yql?q=SELECT%20*%20FROM%20search.web%20WHERE%20query%20=%20'ruby'&format=json", :response => File.join(SPEC_DIR, 'supports', 'search-web.json.yql'))
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
Smoke.yql(:search) do
|
7
|
+
@source = Smoke.yql(:search) do
|
10
8
|
select :all
|
11
9
|
from "search.web"
|
12
10
|
where :query, "ruby"
|
@@ -18,6 +16,8 @@ describe "YQL" do
|
|
18
16
|
end
|
19
17
|
end
|
20
18
|
|
19
|
+
# it_should_behave_like "all sources"
|
20
|
+
|
21
21
|
it "should have been activated" do
|
22
22
|
Smoke[:search].should(be_an_instance_of(Smoke::Source::YQL))
|
23
23
|
end
|
@@ -28,7 +28,7 @@ describe "YQL" do
|
|
28
28
|
|
29
29
|
describe "after dispatch" do
|
30
30
|
before do
|
31
|
-
|
31
|
+
Smoke[:search].output
|
32
32
|
end
|
33
33
|
|
34
34
|
describe "url" do
|
@@ -57,6 +57,8 @@ describe "YQL" do
|
|
57
57
|
|
58
58
|
describe "yql definitions" do
|
59
59
|
before do
|
60
|
+
FakeWeb.register_uri("http://query.yahooapis.com:80/v1/public/yql?q=SELECT%20*%20FROM%20github.repo%20WHERE%20id%20=%20'benschwarz'%20AND%20repo%20=%20'smoke'&format=json&env=http://datatables.org/alltables.env", :response => File.join(SPEC_DIR, 'supports', 'datatables.yql'))
|
61
|
+
|
60
62
|
Smoke.yql(:smoke) do
|
61
63
|
use "http://datatables.org/alltables.env"
|
62
64
|
|
data/spec/smoke_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -7,7 +7,9 @@ require File.join(File.dirname(__FILE__), '..', 'lib', 'smoke')
|
|
7
7
|
SPEC_DIR = File.dirname(__FILE__) unless defined? SPEC_DIR
|
8
8
|
$:<< SPEC_DIR
|
9
9
|
|
10
|
-
|
10
|
+
# Don't allow real web requests during specs!
|
11
|
+
FakeWeb.allow_net_connect = false
|
12
|
+
|
11
13
|
require 'supports/test_source.rb'
|
12
14
|
|
13
15
|
Smoke.configure do |c|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Date: Wed, 24 Jun 2009 06:14:01 GMT
|
3
|
+
P3P: policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
|
4
|
+
Cache-Control: no-cache, private
|
5
|
+
Pragma: no-cache
|
6
|
+
Expires: Thu, 01 Jan 1970 00:00:00 GMT
|
7
|
+
Access-Control-Allow-Origin: *
|
8
|
+
Content-Length: 955
|
9
|
+
Connection: close
|
10
|
+
Content-Type: application/json;charset=utf-8
|
11
|
+
|
12
|
+
{"query":{"count":"1","created":"2009-06-24T06:14:01Z","lang":"en-US","updated":"2009-06-24T06:14:01Z","uri":"http://query.yahooapis.com/v1/yql?q=SELECT+*+FROM+github.repo+WHERE+id+%3D+%27benschwarz%27+AND+repo+%3D+%27smoke%27","diagnostics":{"publiclyCallable":"true","url":[{"execution-time":"1","content":"http://datatables.org/alltables.env"},{"execution-time":"3","content":"http://www.datatables.org/github/github.repo.xml"},{"execution-time":"369","content":"http://github.com/api/v2/xml/repos/show/benschwarz/smoke"}],"user-time":"428","service-time":"373","build-version":"1949"},"results":{"repository":{"watchers":{"type":"integer","content":"17"},"open-issues":{"type":"integer","content":"0"},"description":null,"owner":"benschwarz","name":"smoke","private":{"type":"boolean","content":"false"},"url":"http://github.com/benschwarz/smoke","fork":{"type":"boolean","content":"false"},"forks":{"type":"integer","content":"1"},"homepage":null}}}}
|
@@ -1,8 +1,6 @@
|
|
1
1
|
HTTP/1.1 200 OK
|
2
|
-
Date: Mon,
|
3
|
-
P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
|
2
|
+
Date: Mon, 1 Jan 2000 01:00:00 GMT
|
4
3
|
Vary: Accept-Encoding
|
5
|
-
Content-Length: 398
|
6
4
|
Connection: close
|
7
5
|
Content-Type: text/json; charset=utf-8
|
8
6
|
|
Binary file
|
@@ -0,0 +1,12 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Date: Wed, 24 Jun 2009 06:27:25 GMT
|
3
|
+
P3P: policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
|
4
|
+
Cache-Control: no-cache, private
|
5
|
+
Pragma: no-cache
|
6
|
+
Expires: Thu, 01 Jan 1970 00:00:00 GMT
|
7
|
+
Access-Control-Allow-Origin: *
|
8
|
+
Content-Length: 6986
|
9
|
+
Connection: close
|
10
|
+
Content-Type: application/json;charset=utf-8
|
11
|
+
|
12
|
+
{"query":{"count":"10","created":"2009-06-24T06:27:25Z","lang":"en-US","updated":"2009-06-24T06:27:25Z","uri":"http://query.yahooapis.com/v1/yql?q=SELECT+*+FROM+search.web+WHERE+query+%3D+%27ruby%27","diagnostics":{"publiclyCallable":"true","url":{"execution-time":"41","content":"http://boss.yahooapis.com/ysearch/web/v1/ruby?format=xml&start=0&count=10"},"user-time":"43","service-time":"41","build-version":"1949"},"results":{"result":[{"abstract":"For the programming language, see <b>Ruby<\/b> (programming language) <b>...<\/b> The <b>ruby<\/b> is considered one of the four precious stones, together with the <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=116cnla88/**http%3A//en.wikipedia.org/wiki/Ruby","date":"2009/06/17","dispurl":"<b>en.wikipedia.org<\/b>/wiki/<b>Ruby<\/b>","size":"72719","title":"<b>Ruby<\/b> - Wikipedia, the free encyclopedia","url":"http://en.wikipedia.org/wiki/Ruby"},{"abstract":"<b>Ruby<\/b> originated in Japan during the mid-1990s and was initially developed and <b>...<\/b> <b>Ruby<\/b> supports multiple programming paradigms, including functional, object <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=11tsuk1oo/**http%3A//en.wikipedia.org/wiki/Ruby_(programming_language)","date":"2009/06/17","dispurl":"<b>en.wikipedia.org<\/b>/wiki/<wbr><b>Ruby<\/b>_(programming_language)","size":"131489","title":"<b>Ruby<\/b> (programming language) - Wikipedia, the free encyclopedia","url":"http://en.wikipedia.org/wiki/Ruby_(programming_language)"},{"abstract":"\"<b>Ruby<\/b> on Rails is a breakthrough in lowering the barriers of entry to programming. <b>...<\/b> \"Before <b>Ruby<\/b> on Rails, web programming required a lot of verbiage, steps <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=10sqpm4qa/**http%3A//rubyonrails.org/","date":"2009/06/23","dispurl":"<b>rubyonrails.org<\/b>","size":"11882","title":"<b>Ruby<\/b> on Rails","url":"http://rubyonrails.org/"},{"abstract":null,"clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=110v0kjjt/**http%3A//www.ruby-lang.org/en","date":"2009/06/22","dispurl":"www.<b>ruby-lang.org<\/b>/en","size":"12140","title":"<b>Ruby<\/b> Programming Language","url":"http://www.ruby-lang.org/en"},{"abstract":"Premier 1940s restaurant. Shooby Dooby down to <b>Ruby's<\/b> for authentic 1940's fun.","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=10qvjehb6/**http%3A//www.rubys.com/","date":"2009/06/22","dispurl":"www.<b>rubys.com<\/b>","size":"529321","title":"<b>Ruby's<\/b>","url":"http://www.rubys.com/"},{"abstract":"<b>Ruby<\/b> is a very popular open-source language which lends itself especially well <b>...<\/b> Educational sites where you can learn how to program using <b>Ruby<\/b>. <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=115aqsp4l/**http%3A//developer.yahoo.com/ruby/","date":"2009/06/20","dispurl":"<b>developer.yahoo.com<\/b>/<b>ruby<\/b>","size":"21787","title":"<b>Ruby<\/b> Developer Center - Yahoo! Developer Network","url":"http://developer.yahoo.com/ruby/"},{"abstract":"<b>ruby<\/b> n. , pl. -bies . A deep red, translucent variety of the mineral corundum, highly valued as a precious stone <b>...<\/b> red of fine-quality <b>ruby<\/b> is the result of <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=116gndgit/**http%3A//www.answers.com/topic/ruby","date":"2009/06/12","dispurl":"www.<b>answers.com<\/b>/topic/<b>ruby<\/b>","size":"134619","title":"<b>ruby<\/b>: Definition from Answers.com","url":"http://www.answers.com/topic/ruby"},{"abstract":"An on-line copy of the first edition of the book Programming <b>Ruby<\/b>, by Dave Thomas. <b>...<\/b> 10 Things Every Java Programmer Should Know About <b>Ruby<\/b> <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=10tjnj1v2/**http%3A//www.ruby-doc.org/","date":"2009/06/09","dispurl":"www.<b>ruby-doc.org<\/b>","size":"13955","title":"[<b>Ruby<\/b>-Doc.org: Documenting the <b>Ruby<\/b> Language]","url":"http://www.ruby-doc.org/"},{"abstract":"And red is also the colour of the <b>ruby<\/b>, the king of the gemstones. <b>...<\/b> For a long time India was regarded as the <b>ruby's<\/b> classical country of origin. <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=11pea0sti/**http%3A//www.gemstone.org/gem-by-gem/english/ruby.html","date":"2008/09/23","dispurl":"www.<b>gemstone.org<\/b>/gem-by-gem/<wbr>english/<b>ruby<\/b>.html","size":"52995","title":"<b>Ruby<\/b> - english","url":"http://www.gemstone.org/gem-by-gem/english/ruby.html"},{"abstract":"<b>...<\/b> <b>Ruby<\/b> Developer Center, where you'll find all the information and tools you need <b>...<\/b> The <b>Ruby<\/b>-on-Rails community offers a mailing list, wiki, IRC, bug <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4OXVuMmxlBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA3NIUWREMGdlQXUwVE8yTXdKVFg0T0dKYzBqSE1sRXBCeDAwQUFmU1I-/SIG=114fkbio4/**http%3A//developers.sun.com/ruby/","date":"2009/06/13","dispurl":"<b>developers.sun.com<\/b>/<b>ruby<\/b>","size":"23151","title":"<b>Ruby<\/b> Developer Center - Sun Developer Network (SDN)","url":"http://developers.sun.com/ruby/"}]}}}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Date: Wed, 24 Jun 2009 06:18:07 GMT
|
3
|
+
P3P: policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
|
4
|
+
Cache-Control: no-cache
|
5
|
+
Pragma: no-cache
|
6
|
+
Expires: Thu, 01 Jan 1970 00:00:00 GMT
|
7
|
+
Access-Control-Allow-Origin: *
|
8
|
+
Connection: close
|
9
|
+
Transfer-Encoding: chunked
|
10
|
+
Content-Type: text/xml;charset=utf-8
|
11
|
+
|
12
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
13
|
+
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="10" yahoo:created="2009-06-24T06:18:08Z" yahoo:lang="en-US" yahoo:updated="2009-06-24T06:18:08Z" yahoo:uri="http://query.yahooapis.com/v1/yql?q=SELECT+*+FROM+search.web+WHERE+query+%3D+%27ruby%27"><diagnostics><publiclyCallable>true</publiclyCallable><url execution-time="314"><![CDATA[http://boss.yahooapis.com/ysearch/web/v1/ruby?format=xml&start=0&count=10]]></url><user-time>316</user-time><service-time>314</service-time><build-version>1949</build-version></diagnostics><results><result xmlns="http://www.inktomi.com/">
|
14
|
+
<abstract><![CDATA[For the programming language, see <b>Ruby</b> (programming language) <b>...</b> The <b>ruby</b> is considered one of the four precious stones, together with the <b>...</b>]]></abstract>
|
15
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=116cnla88/**http%3A//en.wikipedia.org/wiki/Ruby</clickurl>
|
16
|
+
<date>2009/06/17</date>
|
17
|
+
<dispurl><![CDATA[<b>en.wikipedia.org</b>/wiki/<b>Ruby</b>]]></dispurl>
|
18
|
+
<size>72719</size>
|
19
|
+
<title><![CDATA[<b>Ruby</b> - Wikipedia, the free encyclopedia]]></title>
|
20
|
+
<url>http://en.wikipedia.org/wiki/Ruby</url></result><result xmlns="http://www.inktomi.com/">
|
21
|
+
<abstract><![CDATA[<b>Ruby</b> originated in Japan during the mid-1990s and was initially developed and <b>...</b> <b>Ruby</b> supports multiple programming paradigms, including functional, object <b>...</b>]]></abstract>
|
22
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=11tsuk1oo/**http%3A//en.wikipedia.org/wiki/Ruby_(programming_language)</clickurl>
|
23
|
+
<date>2009/06/17</date>
|
24
|
+
<dispurl><![CDATA[<b>en.wikipedia.org</b>/wiki/<wbr><b>Ruby</b>_(programming_language)]]></dispurl>
|
25
|
+
<size>131489</size>
|
26
|
+
<title><![CDATA[<b>Ruby</b> (programming language) - Wikipedia, the free encyclopedia]]></title>
|
27
|
+
<url>http://en.wikipedia.org/wiki/Ruby_(programming_language)</url></result><result xmlns="http://www.inktomi.com/">
|
28
|
+
<abstract><![CDATA["<b>Ruby</b> on Rails is a breakthrough in lowering the barriers of entry to programming. <b>...</b> "Before <b>Ruby</b> on Rails, web programming required a lot of verbiage, steps <b>...</b>]]></abstract>
|
29
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=10sqpm4qa/**http%3A//rubyonrails.org/</clickurl>
|
30
|
+
<date>2009/06/23</date>
|
31
|
+
<dispurl><![CDATA[<b>rubyonrails.org</b>]]></dispurl>
|
32
|
+
<size>11882</size>
|
33
|
+
<title><![CDATA[<b>Ruby</b> on Rails]]></title>
|
34
|
+
<url>http://rubyonrails.org/</url></result><result xmlns="http://www.inktomi.com/"><abstract/>
|
35
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=110v0kjjt/**http%3A//www.ruby-lang.org/en</clickurl>
|
36
|
+
<date>2009/06/22</date>
|
37
|
+
<dispurl><![CDATA[www.<b>ruby-lang.org</b>/en]]></dispurl>
|
38
|
+
<size>12140</size>
|
39
|
+
<title><![CDATA[<b>Ruby</b> Programming Language]]></title>
|
40
|
+
<url>http://www.ruby-lang.org/en</url></result><result xmlns="http://www.inktomi.com/">
|
41
|
+
<abstract><![CDATA[Premier 1940s restaurant. Shooby Dooby down to <b>Ruby's</b> for authentic 1940's fun.]]></abstract>
|
42
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=10qvjehb6/**http%3A//www.rubys.com/</clickurl>
|
43
|
+
<date>2009/06/22</date>
|
44
|
+
<dispurl><![CDATA[www.<b>rubys.com</b>]]></dispurl>
|
45
|
+
<size>529321</size>
|
46
|
+
<title><![CDATA[<b>Ruby's</b>]]></title>
|
47
|
+
<url>http://www.rubys.com/</url></result><result xmlns="http://www.inktomi.com/">
|
48
|
+
<abstract><![CDATA[<b>Ruby</b> is a very popular open-source language which lends itself especially well <b>...</b> Educational sites where you can learn how to program using <b>Ruby</b>. <b>...</b>]]></abstract>
|
49
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=115aqsp4l/**http%3A//developer.yahoo.com/ruby/</clickurl>
|
50
|
+
<date>2009/06/20</date>
|
51
|
+
<dispurl><![CDATA[<b>developer.yahoo.com</b>/<b>ruby</b>]]></dispurl>
|
52
|
+
<size>21787</size>
|
53
|
+
<title><![CDATA[<b>Ruby</b> Developer Center - Yahoo! Developer Network]]></title>
|
54
|
+
<url>http://developer.yahoo.com/ruby/</url></result><result xmlns="http://www.inktomi.com/">
|
55
|
+
<abstract><![CDATA[<b>ruby</b> n. , pl. -bies . A deep red, translucent variety of the mineral corundum, highly valued as a precious stone <b>...</b> red of fine-quality <b>ruby</b> is the result of <b>...</b>]]></abstract>
|
56
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=116gndgit/**http%3A//www.answers.com/topic/ruby</clickurl>
|
57
|
+
<date>2009/06/12</date>
|
58
|
+
<dispurl><![CDATA[www.<b>answers.com</b>/topic/<b>ruby</b>]]></dispurl>
|
59
|
+
<size>134619</size>
|
60
|
+
<title><![CDATA[<b>ruby</b>: Definition from Answers.com]]></title>
|
61
|
+
<url>http://www.answers.com/topic/ruby</url></result><result xmlns="http://www.inktomi.com/">
|
62
|
+
<abstract><![CDATA[An on-line copy of the first edition of the book Programming <b>Ruby</b>, by Dave Thomas. <b>...</b> 10 Things Every Java Programmer Should Know About <b>Ruby</b> <b>...</b>]]></abstract>
|
63
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=10tjnj1v2/**http%3A//www.ruby-doc.org/</clickurl>
|
64
|
+
<date>2009/06/09</date>
|
65
|
+
<dispurl><![CDATA[www.<b>ruby-doc.org</b>]]></dispurl>
|
66
|
+
<size>13955</size>
|
67
|
+
<title><![CDATA[[<b>Ruby</b>-Doc.org: Documenting the <b>Ruby</b> Language]]]></title>
|
68
|
+
<url>http://www.ruby-doc.org/</url></result><result xmlns="http://www.inktomi.com/">
|
69
|
+
<abstract><![CDATA[And red is also the colour of the <b>ruby</b>, the king of the gemstones. <b>...</b> For a long time India was regarded as the <b>ruby's</b> classical country of origin. <b>...</b>]]></abstract>
|
70
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=11pea0sti/**http%3A//www.gemstone.org/gem-by-gem/english/ruby.html</clickurl>
|
71
|
+
<date>2008/09/23</date>
|
72
|
+
<dispurl><![CDATA[www.<b>gemstone.org</b>/gem-by-gem/<wbr>english/<b>ruby</b>.html]]></dispurl>
|
73
|
+
<size>52995</size>
|
74
|
+
<title><![CDATA[<b>Ruby</b> - english]]></title>
|
75
|
+
<url>http://www.gemstone.org/gem-by-gem/english/ruby.html</url></result><result xmlns="http://www.inktomi.com/">
|
76
|
+
<abstract><![CDATA[<b>...</b> <b>Ruby</b> Developer Center, where you'll find all the information and tools you need <b>...</b> The <b>Ruby</b>-on-Rails community offers a mailing list, wiki, IRC, bug <b>...</b>]]></abstract>
|
77
|
+
<clickurl>http://lrd.yahooapis.com/_ylc=X3oDMTQ4NHZqZ2gzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkA1VQczBUa2dlQXUxOHRFZGhZczFXUG1KbTBqSE1sRXBCeFI4QUR0a0o-/SIG=114fkbio4/**http%3A//developers.sun.com/ruby/</clickurl>
|
78
|
+
<date>2009/06/13</date>
|
79
|
+
<dispurl><![CDATA[<b>developers.sun.com</b>/<b>ruby</b>]]></dispurl>
|
80
|
+
<size>23151</size>
|
81
|
+
<title><![CDATA[<b>Ruby</b> Developer Center - Sun Developer Network (SDN)]]></title>
|
82
|
+
<url>http://developers.sun.com/ruby/</url></result></results></query><!-- total: 318 -->
|
83
|
+
<!-- yqlengine1.pipes.sp1.yahoo.com uncompressed/chunked Tue Jun 23 23:18:07 PDT 2009 -->
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: benschwarz-smoke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Schwarz
|
@@ -9,9 +9,19 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-06-
|
12
|
+
date: 2009-06-25 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rest-client
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.9.2
|
24
|
+
version:
|
15
25
|
- !ruby/object:Gem::Dependency
|
16
26
|
name: simple-rss
|
17
27
|
type: :runtime
|
@@ -64,14 +74,17 @@ files:
|
|
64
74
|
- spec/smoke/source/data_spec.rb
|
65
75
|
- spec/smoke/source/feed_spec.rb
|
66
76
|
- spec/smoke/source/join_spec.rb
|
77
|
+
- spec/smoke/source/shared_spec.rb
|
67
78
|
- spec/smoke/source/yql_spec.rb
|
68
79
|
- spec/smoke_spec.rb
|
69
80
|
- spec/spec.opts
|
70
81
|
- spec/spec_helper.rb
|
71
82
|
- spec/supports
|
83
|
+
- spec/supports/datatables.yql
|
72
84
|
- spec/supports/flickr-photo.json
|
73
|
-
- spec/supports/
|
74
|
-
- spec/supports/search-web.yql
|
85
|
+
- spec/supports/gzip_response.txt
|
86
|
+
- spec/supports/search-web.json.yql
|
87
|
+
- spec/supports/search-web.xml.yql
|
75
88
|
- spec/supports/slashdot.xml
|
76
89
|
- spec/supports/test_source.rb
|
77
90
|
- LICENSE
|
data/spec/supports/mayo.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"query":{"count":"10","created":"2009-04-05T07:40:33Z","lang":"en-US","updated":"2009-04-05T07:40:33Z","uri":"http://query.yahooapis.com/v1/yql?q=SELECT+*+FROM+search.web+WHERE+query+%3D+%27ruby%27","diagnostics":{"publiclyCallable":"true","url":{"execution-time":"124","content":"http://boss.yahooapis.com/ysearch/web/v1/ruby?format=xml&start=0&count=10"},"user-time":"128","service-time":"124","build-version":"911"},"results":{"result":[{"abstract":"For the programming language, see <b>Ruby<\/b> (programming language) <b>...<\/b> The <b>ruby<\/b> is considered one of the four precious stones, together with the <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=116cnla88/**http%3A//en.wikipedia.org/wiki/Ruby","date":"2009/03/28","dispurl":"<b>en.wikipedia.org<\/b>/wiki/<b>Ruby<\/b>","size":"71069","title":"<b>Ruby<\/b> - Wikipedia, the free encyclopedia","url":"http://en.wikipedia.org/wiki/Ruby"},{"abstract":"<b>Ruby<\/b> originated in Japan during the mid-1990s and was initially developed and <b>...<\/b> <b>Ruby<\/b> supports multiple programming paradigms, including functional, object <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=11tsuk1oo/**http%3A//en.wikipedia.org/wiki/Ruby_(programming_language)","date":"2009/04/03","dispurl":"<b>en.wikipedia.org<\/b>/wiki/<wbr><b>Ruby<\/b>_(programming_language)","size":"127053","title":"<b>Ruby<\/b> (programming language) - Wikipedia, the free encyclopedia","url":"http://en.wikipedia.org/wiki/Ruby_(programming_language)"},{"abstract":null,"clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=110v0kjjt/**http%3A//www.ruby-lang.org/en","date":"2009/04/03","dispurl":"www.<b>ruby-lang.org<\/b>/en","size":"13876","title":"<b>Ruby<\/b> Programming Language","url":"http://www.ruby-lang.org/en"},{"abstract":"\"<b>Ruby<\/b> on Rails is a breakthrough in lowering the barriers of entry to programming. <b>...<\/b> \"Before <b>Ruby<\/b> on Rails, web programming required a lot of verbiage, steps <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=10sqpm4qa/**http%3A//rubyonrails.org/","date":"2009/04/03","dispurl":"<b>rubyonrails.org<\/b>","size":"11832","title":"<b>Ruby<\/b> on Rails","url":"http://rubyonrails.org/"},{"abstract":"<b>Ruby<\/b> is a very popular open-source language which lends itself especially well <b>...<\/b> Educational sites where you can learn how to program using <b>Ruby<\/b>. <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=115aqsp4l/**http%3A//developer.yahoo.com/ruby/","date":"2009/03/26","dispurl":"<b>developer.yahoo.com<\/b>/<b>ruby<\/b>","size":"22832","title":"<b>Ruby<\/b> Developer Center - Yahoo! Developer Network","url":"http://developer.yahoo.com/ruby/"},{"abstract":"<b>...<\/b> <b>Ruby<\/b> Developer Center, where you'll find all the information and tools you need <b>...<\/b> The <b>Ruby<\/b>-on-Rails community offers a mailing list, wiki, IRC, bug <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=114fkbio4/**http%3A//developers.sun.com/ruby/","date":"2009/03/30","dispurl":"<b>developers.sun.com<\/b>/<b>ruby<\/b>","size":"23266","title":"<b>Ruby<\/b> Developer Center - Sun Developer Network (SDN)","url":"http://developers.sun.com/ruby/"},{"abstract":"<b>Ruby<\/b> Annotation. W3C Recommendation 31 May 2001 (Markup errors corrected 25 <b>...<\/b> \"<b>Ruby<\/b>\" are short runs of text alongside the base text, typically used in East <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=10udggnjn/**http%3A//www.w3.org/TR/ruby","date":"2009/03/17","dispurl":"www.<b>w3.org<\/b>/TR/<b>ruby<\/b>","size":"74715","title":"<b>Ruby<\/b> Annotation","url":"http://www.w3.org/TR/ruby"},{"abstract":"<b>ruby<\/b> n. , pl. -bies . A deep red, translucent variety of the mineral corundum, highly valued as a precious stone <b>...<\/b> red of fine-quality <b>ruby<\/b> is the result of <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=116gndgit/**http%3A//www.answers.com/topic/ruby","date":"2009/03/27","dispurl":"www.<b>answers.com<\/b>/topic/<b>ruby<\/b>","size":"121670","title":"<b>ruby<\/b>: Definition from Answers.com","url":"http://www.answers.com/topic/ruby"},{"abstract":"<b>Ruby<\/b> resource: One-click Windows installer; online copy of Programming <b>Ruby<\/b>: The <b>...<\/b> is a 501(c)(3) tax-exempt organization, dedicated to <b>Ruby<\/b> support and advocacy. <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=110s1u4un/**http%3A//www.rubycentral.com/","date":"2009/03/30","dispurl":"www.<b>rubycentral.com<\/b>","size":"2615","title":"<b>Ruby<\/b> Central","url":"http://www.rubycentral.com/"},{"abstract":"And red is also the colour of the <b>ruby<\/b>, the king of the gemstones. <b>...<\/b> For a long time India was regarded as the <b>ruby's<\/b> classical country of origin. <b>...<\/b>","clickurl":"http://lrd.yahooapis.com/_ylc=X3oDMTQ4NnBodGRzBF9TAzIwMjMxNTI3MDIEYXBwaWQDb0pfTWdwbklrWW5CMWhTZnFUZEd5TkouTXNxZlNMQmkEY2xpZW50A2Jvc3MEc2VydmljZQNCT1NTBHNsawN0aXRsZQRzcmNwdmlkAzhRYkJoVWdlQXUwRVdpS3drZ0NONFJYdDBqSE1sRW5ZWUhFQUI4RFc-/SIG=11pea0sti/**http%3A//www.gemstone.org/gem-by-gem/english/ruby.html","date":"2008/09/23","dispurl":"www.<b>gemstone.org<\/b>/gem-by-gem/<wbr>english/<b>ruby<\/b>.html","size":"52995","title":"<b>Ruby<\/b> - english","url":"http://www.gemstone.org/gem-by-gem/english/ruby.html"}]}}}
|