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 CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 9
2
+ :patch: 10
3
3
  :major: 0
4
4
  :minor: 3
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
- "User-Agent" => Smoke.config[:user_agent],
25
- "Accept-Encoding" => "gzip"
23
+ :user_agent => Smoke.config[:user_agent],
24
+ :accept_encoding => "gzip"
26
25
  }
27
26
  Thread.new {
28
- open(@uri, opts) do |request|
29
- @content_type = request.content_type
30
- request = Zlib::GzipReader.new(request) if request.content_encoding.include? "gzip"
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
- present!
37
- end
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
@@ -1,5 +1,4 @@
1
- require 'zlib'
2
- require 'open-uri'
1
+ require 'restclient'
3
2
  require 'logger'
4
3
  require 'crack'
5
4
  require 'simple-rss'
@@ -185,7 +185,7 @@ describe Smoke::Origin do
185
185
  end
186
186
  end
187
187
 
188
- describe "trasformations" do
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
@@ -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', 'slashdot.xml')
7
- FakeWeb.register_uri(@url, :file => @web_search)
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 == 'application/octet-stream'
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 be_an_instance_of(String)
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
- # class Stream < StringIO
37
- # def close; rewind; end
38
- # end
39
- # output = Stream.new
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 == "gzip_response"
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
- @joined = Smoke.join(:a, :b)
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
- # Fake web does not yet support regex matched uris
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
- FakeWeb.register_uri("query.yahooapis.com/*", :response => File.join(SPEC_DIR, 'supports', 'search-web.yql'))
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
- Smoke[:search].output
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
@@ -16,6 +16,10 @@ describe Smoke do
16
16
  Smoke[:a].should be_nil
17
17
  Smoke[:b].should be_an_instance_of(Smoke::Origin)
18
18
  end
19
+
20
+ it "should change its name property after being renamed" do
21
+ Smoke[:b].name.should == "b"
22
+ end
19
23
  end
20
24
 
21
25
  describe "configuration" do
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
- require 'supports/mayo.rb'
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, 27 Apr 2009 08:04:23 GMT
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.9
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-18 00:00:00 -07:00
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/mayo.rb
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
@@ -1,5 +0,0 @@
1
- module Smoke::SecretSauce
2
- def mayo
3
- puts "some mayo makes even chicken managable"
4
- end
5
- end
@@ -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"}]}}}