binged 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY +4 -0
- data/README.md +8 -4
- data/VERSION +1 -1
- data/binged.gemspec +13 -5
- data/lib/binged/client.rb +7 -0
- data/lib/binged/search/base.rb +35 -7
- data/lib/binged/search/image.rb +120 -0
- data/lib/binged/search/web.rb +4 -70
- data/lib/binged/search.rb +47 -0
- data/spec/binged/search/image_spec.rb +157 -0
- data/spec/binged/search/web_spec.rb +4 -32
- data/spec/fixtures/images.json +9 -0
- data/spec/fixtures/web.json +9 -1
- data/spec/spec_helper.rb +2 -1
- data/spec/support/shared_examples/filter.rb +8 -0
- data/spec/support/shared_examples/pageable.rb +13 -0
- metadata +12 -4
data/HISTORY
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
## About Binged
|
4
4
|
|
5
|
-
A Ruby wrapper for the Bing API
|
5
|
+
A Ruby wrapper for the Bing API. DSL inspired by jnunemaker's [Twitter Gem](http://github.com/jnunemaker/twitter) Search API wrapper.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -31,11 +31,15 @@ Binged allows for configuration to be done once using a configure block. To use
|
|
31
31
|
|
32
32
|
### Web Search Example
|
33
33
|
|
34
|
-
Web search utilizes a criteria based query interface inspired by jnunemaker's [Twitter Gem](http://github.com/jnunemaker/twitter) Search API wrapper.
|
35
|
-
|
36
34
|
# Find 30 results for ruby from site http://www.ruby-lang.org
|
37
35
|
web_search = Binged::Client.new.web
|
38
|
-
web_search.containing('ruby').from_site('www.ruby-lang.org').per_page(30).each {|result|
|
36
|
+
web_search.containing('ruby').from_site('www.ruby-lang.org').per_page(30).each {|result| pp result }
|
37
|
+
|
38
|
+
### Image Search Example
|
39
|
+
|
40
|
+
# Find all portrait Matz images with a wide aspect ratio
|
41
|
+
image_search = Binged::Client.new.image
|
42
|
+
image_search.containing('Yukihiro Matsumoto').portrait.wide.each {|image| pp image}
|
39
43
|
|
40
44
|
## Note on Patches/Pull Requests
|
41
45
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/binged.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{binged}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kevin Faustino"]
|
12
|
-
s.date = %q{2010-03-
|
12
|
+
s.date = %q{2010-03-12}
|
13
13
|
s.description = %q{A wrapper for the bing api}
|
14
14
|
s.email = %q{kevin.faustino@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -30,12 +30,17 @@ Gem::Specification.new do |s|
|
|
30
30
|
"lib/binged/hashie_extensions.rb",
|
31
31
|
"lib/binged/search.rb",
|
32
32
|
"lib/binged/search/base.rb",
|
33
|
+
"lib/binged/search/image.rb",
|
33
34
|
"lib/binged/search/web.rb",
|
35
|
+
"spec/binged/search/image_spec.rb",
|
34
36
|
"spec/binged/search/web_spec.rb",
|
35
37
|
"spec/binged_spec.rb",
|
38
|
+
"spec/fixtures/images.json",
|
36
39
|
"spec/fixtures/web.json",
|
37
40
|
"spec/spec.opts",
|
38
|
-
"spec/spec_helper.rb"
|
41
|
+
"spec/spec_helper.rb",
|
42
|
+
"spec/support/shared_examples/filter.rb",
|
43
|
+
"spec/support/shared_examples/pageable.rb"
|
39
44
|
]
|
40
45
|
s.homepage = %q{http://github.com/kfaustino/binged}
|
41
46
|
s.rdoc_options = ["--charset=UTF-8"]
|
@@ -43,9 +48,12 @@ Gem::Specification.new do |s|
|
|
43
48
|
s.rubygems_version = %q{1.3.6}
|
44
49
|
s.summary = %q{A wrapper for the bing api}
|
45
50
|
s.test_files = [
|
46
|
-
"spec/binged/search/
|
51
|
+
"spec/binged/search/image_spec.rb",
|
52
|
+
"spec/binged/search/web_spec.rb",
|
47
53
|
"spec/binged_spec.rb",
|
48
|
-
"spec/spec_helper.rb"
|
54
|
+
"spec/spec_helper.rb",
|
55
|
+
"spec/support/shared_examples/filter.rb",
|
56
|
+
"spec/support/shared_examples/pageable.rb"
|
49
57
|
]
|
50
58
|
|
51
59
|
if s.respond_to? :specification_version then
|
data/lib/binged/client.rb
CHANGED
@@ -17,6 +17,13 @@ module Binged
|
|
17
17
|
def web(query='')
|
18
18
|
Search::Web.new(self,query)
|
19
19
|
end
|
20
|
+
|
21
|
+
# Create a image search through Bing
|
22
|
+
#
|
23
|
+
# @param [String] query The search term to be sent to Bing
|
24
|
+
def image(query='')
|
25
|
+
Search::Image.new(self,query)
|
26
|
+
end
|
20
27
|
|
21
28
|
end
|
22
29
|
|
data/lib/binged/search/base.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Binged
|
2
2
|
module Search
|
3
|
-
|
4
|
-
# @abstract Subclass and
|
3
|
+
|
4
|
+
# @abstract Subclass and set @source to implement a custom Searchable class
|
5
5
|
class Base
|
6
6
|
include Enumerable
|
7
7
|
attr_reader :client, :query, :source
|
@@ -9,9 +9,21 @@ module Binged
|
|
9
9
|
BASE_URI = 'http://api.bing.net/json.aspx?'
|
10
10
|
|
11
11
|
# @param [Binged::Client] client
|
12
|
-
|
12
|
+
# @param [String] query The search term to be sent to Bing
|
13
|
+
def initialize(client, query=nil)
|
13
14
|
@client = client
|
15
|
+
@callbacks = []
|
14
16
|
reset_query
|
17
|
+
containing(query) if query && query.strip != ''
|
18
|
+
end
|
19
|
+
|
20
|
+
# Add query to search
|
21
|
+
#
|
22
|
+
# @param [String] query The search term to be sent to Bing
|
23
|
+
# @return [self]
|
24
|
+
def containing(query)
|
25
|
+
@query[:Query] << query
|
26
|
+
self
|
15
27
|
end
|
16
28
|
|
17
29
|
# Clears all filters to perform a new search
|
@@ -20,19 +32,30 @@ module Binged
|
|
20
32
|
reset_query
|
21
33
|
self
|
22
34
|
end
|
23
|
-
|
35
|
+
|
36
|
+
# Retrieve results of the web search. Limited to first 1000 results.
|
37
|
+
#
|
38
|
+
# @return [Hash] A hash of the results returned from Bing
|
24
39
|
def fetch
|
40
|
+
if @fetch.nil?
|
41
|
+
response = perform
|
42
|
+
@fetch = Hashie::Mash.new(response["SearchResponse"][self.source.to_s.capitalize])
|
43
|
+
end
|
44
|
+
|
45
|
+
@fetch
|
25
46
|
end
|
26
47
|
|
27
48
|
# Performs a GET call to Bing API
|
28
|
-
#
|
49
|
+
#
|
29
50
|
# @return [Hash] Hash of Bing API response
|
30
51
|
def perform
|
31
52
|
url = URI.parse BASE_URI
|
32
53
|
query = @query.dup
|
33
|
-
query[:Query] = query[:Query].join(' ')
|
54
|
+
query[:Query] = query[:Query].join(' ')
|
34
55
|
query[:Sources] = self.source
|
56
|
+
callbacks.each {|callback| callback.call(query) }
|
35
57
|
query_options = default_options.merge(query).to_params
|
58
|
+
query_options.gsub! '%2B', '+'
|
36
59
|
url.query = query_options
|
37
60
|
response = Net::HTTP.get(url)
|
38
61
|
Crack::JSON.parse(response)
|
@@ -43,6 +66,10 @@ module Binged
|
|
43
66
|
fetch().results.each { |r| yield r }
|
44
67
|
end
|
45
68
|
|
69
|
+
protected
|
70
|
+
|
71
|
+
attr_reader :callbacks
|
72
|
+
|
46
73
|
private
|
47
74
|
|
48
75
|
def default_options
|
@@ -50,8 +77,9 @@ module Binged
|
|
50
77
|
end
|
51
78
|
|
52
79
|
def reset_query
|
53
|
-
|
80
|
+
@query = { :Query => [] }
|
54
81
|
end
|
82
|
+
|
55
83
|
end
|
56
84
|
|
57
85
|
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
module Binged
|
2
|
+
module Search
|
3
|
+
|
4
|
+
# A class that encapsulated the Bing Image Search source
|
5
|
+
class Image < Base
|
6
|
+
include Filter
|
7
|
+
include Pageable
|
8
|
+
|
9
|
+
# @param [Binged::Client] client
|
10
|
+
# @param [String] query The search term to be sent to Bing
|
11
|
+
# @param [Hash] options
|
12
|
+
def initialize(client, query=nil, options={})
|
13
|
+
super(client, query)
|
14
|
+
@source = :image
|
15
|
+
set_paging_defaults
|
16
|
+
create_filter_callback
|
17
|
+
end
|
18
|
+
|
19
|
+
# Restrict images to those small in size
|
20
|
+
def small
|
21
|
+
filter << 'Size:Small'
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
# Restrict images to those medium in size
|
26
|
+
def medium
|
27
|
+
filter << 'Size:Medium'
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
# Restrict images to those large in size
|
32
|
+
def large
|
33
|
+
filter << 'Size:Large'
|
34
|
+
self
|
35
|
+
end
|
36
|
+
|
37
|
+
# Restrict images to the specified height in pixels
|
38
|
+
#
|
39
|
+
# @param [Fixnum] pixels height in pixels
|
40
|
+
def height(pixels)
|
41
|
+
filter << "Size:Height:#{pixels}"
|
42
|
+
self
|
43
|
+
end
|
44
|
+
|
45
|
+
# Restrict images to the specified width in pixels
|
46
|
+
#
|
47
|
+
# @param [Fixnum] pixels width in pixels
|
48
|
+
def width(pixels)
|
49
|
+
filter << "Size:Width:#{pixels}"
|
50
|
+
self
|
51
|
+
end
|
52
|
+
|
53
|
+
# Restrict images to those that have a square aspect ratio
|
54
|
+
def square
|
55
|
+
filter << 'Aspect:Square'
|
56
|
+
self
|
57
|
+
end
|
58
|
+
|
59
|
+
# Restrict images to those that have a wide aspect ratio
|
60
|
+
def wide
|
61
|
+
filter << 'Aspect:Wide'
|
62
|
+
self
|
63
|
+
end
|
64
|
+
|
65
|
+
# Restrict images to those that have a tall aspect ratio
|
66
|
+
def tall
|
67
|
+
filter << 'Aspect:Tall'
|
68
|
+
self
|
69
|
+
end
|
70
|
+
|
71
|
+
# Restrict images to those that are in color
|
72
|
+
def color
|
73
|
+
filter << 'Color:Color'
|
74
|
+
self
|
75
|
+
end
|
76
|
+
|
77
|
+
# Restrict images to those which contain photos
|
78
|
+
def photo
|
79
|
+
filter << 'Style:Photo'
|
80
|
+
self
|
81
|
+
end
|
82
|
+
|
83
|
+
# Restrict images to those which contain graphics or illustrations
|
84
|
+
def graphics
|
85
|
+
filter << 'Style:Graphics'
|
86
|
+
self
|
87
|
+
end
|
88
|
+
|
89
|
+
# Restrict images to those that are in black and white
|
90
|
+
def monochrome
|
91
|
+
filter << 'Color:Monochrome'
|
92
|
+
self
|
93
|
+
end
|
94
|
+
|
95
|
+
# Restrict images to those which contain faces
|
96
|
+
def face
|
97
|
+
filter << 'Face:Face'
|
98
|
+
self
|
99
|
+
end
|
100
|
+
|
101
|
+
# Restrict images to those which contain portraits(head and shoulders)
|
102
|
+
def portrait
|
103
|
+
filter << 'Face:Portrait'
|
104
|
+
self
|
105
|
+
end
|
106
|
+
|
107
|
+
private
|
108
|
+
|
109
|
+
def create_filter_callback
|
110
|
+
@callbacks << Proc.new { |query| query['Image.Filters'] = query['Image.Filters'].join('+') if query['Image.Filters'] }
|
111
|
+
end
|
112
|
+
|
113
|
+
def filter
|
114
|
+
@query['Image.Filters'] ||= []
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
end
|
data/lib/binged/search/web.rb
CHANGED
@@ -4,8 +4,8 @@ module Binged
|
|
4
4
|
# A class that encapsulated the Bing Web Search source
|
5
5
|
# @todo Add support for adult and market filtering
|
6
6
|
class Web < Base
|
7
|
-
|
8
|
-
|
7
|
+
include Filter
|
8
|
+
include Pageable
|
9
9
|
|
10
10
|
SUPPORTED_FILE_TYPES = [:doc, :dwf, :feed, :htm, :html, :pdf, :ppt, :ps, :rtf, :text, :txt, :xls]
|
11
11
|
|
@@ -13,31 +13,9 @@ module Binged
|
|
13
13
|
# @param [String] query The search term to be sent to Bing
|
14
14
|
# @param [Hash] options
|
15
15
|
def initialize(client, query=nil, options={})
|
16
|
-
super(client)
|
16
|
+
super(client, query)
|
17
17
|
@source = :web
|
18
|
-
|
19
|
-
containing(query) if query && query.strip != ''
|
20
|
-
end
|
21
|
-
|
22
|
-
# Add query to search
|
23
|
-
#
|
24
|
-
# @param [String] query The search term to be sent to Bing
|
25
|
-
# @return [self]
|
26
|
-
def containing(query)
|
27
|
-
@query[:Query] << query
|
28
|
-
self
|
29
|
-
end
|
30
|
-
|
31
|
-
# Retrieve results of the web search. Limited to first 1000 results.
|
32
|
-
#
|
33
|
-
# @return [Hash] A hash of the results returned from Bing
|
34
|
-
def fetch
|
35
|
-
if @fetch.nil?
|
36
|
-
response = perform
|
37
|
-
@fetch = Hashie::Mash.new(response["SearchResponse"]["Web"])
|
38
|
-
end
|
39
|
-
|
40
|
-
@fetch
|
18
|
+
set_paging_defaults
|
41
19
|
end
|
42
20
|
|
43
21
|
# Add filtering based on a file type
|
@@ -53,50 +31,6 @@ module Binged
|
|
53
31
|
self
|
54
32
|
end
|
55
33
|
|
56
|
-
# Isolate search results to a specific site
|
57
|
-
#
|
58
|
-
# @example
|
59
|
-
# web_search.from_site('www.ruby-lang.org')
|
60
|
-
#
|
61
|
-
# @param [String] site Web site address to limit search results to
|
62
|
-
# @return [self]
|
63
|
-
def from_site(site)
|
64
|
-
@query[:Query] << "site:#{site}"
|
65
|
-
self
|
66
|
-
end
|
67
|
-
|
68
|
-
# Set the page number of the results to display
|
69
|
-
#
|
70
|
-
# @param [Fixnum] num The page number of the search results
|
71
|
-
# @return [self]
|
72
|
-
def page(num=1)
|
73
|
-
@offset = num - 1
|
74
|
-
@query['Web.Offset'] = @results_per_page * @offset
|
75
|
-
self
|
76
|
-
end
|
77
|
-
|
78
|
-
# The amount of results to display per page. Initialized to 20 per page.
|
79
|
-
#
|
80
|
-
# @param [Fixnum] num The number of results per page
|
81
|
-
# @return [self]
|
82
|
-
def per_page(num)
|
83
|
-
@results_per_page = num
|
84
|
-
@query['Web.Count'] = @results_per_page
|
85
|
-
self
|
86
|
-
end
|
87
|
-
|
88
|
-
# The total amount of pages available
|
89
|
-
#
|
90
|
-
# @return[Fixnum] Amount of pages
|
91
|
-
def total_pages
|
92
|
-
bing_total = fetch.total.to_i
|
93
|
-
if bing_total < SEARCH_RESULTS_LIMIT
|
94
|
-
bing_total / @results_per_page
|
95
|
-
else
|
96
|
-
SEARCH_RESULTS_LIMIT / @results_per_page
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
34
|
end
|
101
35
|
end
|
102
36
|
end
|
data/lib/binged/search.rb
CHANGED
@@ -4,6 +4,53 @@ module Binged
|
|
4
4
|
|
5
5
|
autoload :Base, "binged/search/base"
|
6
6
|
autoload :Web, "binged/search/web"
|
7
|
+
autoload :Image, "binged/search/image"
|
7
8
|
|
9
|
+
module Pageable
|
10
|
+
|
11
|
+
# Set the page number of the results to display
|
12
|
+
#
|
13
|
+
# @param [Fixnum] num The page number of the search results
|
14
|
+
# @return [self]
|
15
|
+
def page(num=1)
|
16
|
+
@offset = num - 1
|
17
|
+
@query["#{@source.to_s.capitalize}.Offset"] = @results_per_page * @offset
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
# The amount of results to display per page. Initialized to 20 per page.
|
22
|
+
#
|
23
|
+
# @param [Fixnum] num The number of results per page
|
24
|
+
# @return [self]
|
25
|
+
def per_page(num)
|
26
|
+
@results_per_page = num
|
27
|
+
@query["#{@source.to_s.capitalize}.Count"] = @results_per_page
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
protected
|
32
|
+
|
33
|
+
def set_paging_defaults
|
34
|
+
self.per_page(20).page(1)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
module Filter
|
40
|
+
|
41
|
+
# # Isolate search results to a specific site
|
42
|
+
#
|
43
|
+
# @example
|
44
|
+
# web_search.from_site('www.ruby-lang.org')
|
45
|
+
#
|
46
|
+
# @param [String] site Web site address to limit search results to
|
47
|
+
# @return [self]
|
48
|
+
def from_site(site)
|
49
|
+
@query[:Query] << "site:#{site}"
|
50
|
+
self
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
8
55
|
end
|
9
56
|
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Binged
|
4
|
+
module Search
|
5
|
+
|
6
|
+
describe "Image" do
|
7
|
+
include AnyFilter
|
8
|
+
include AnyPageable
|
9
|
+
|
10
|
+
before(:each) do
|
11
|
+
@client = Binged::Client.new(:api_key => 'binged')
|
12
|
+
@search = Image.new(@client)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should initialize with a search term" do
|
16
|
+
Image.new(@client, 'binged').query[:Query].should include('binged')
|
17
|
+
end
|
18
|
+
|
19
|
+
context "filtering" do
|
20
|
+
|
21
|
+
describe "size" do
|
22
|
+
it "should filter by small images" do
|
23
|
+
@search.small
|
24
|
+
@search.query['Image.Filters'].should include('Size:Small')
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should filter by medium images" do
|
28
|
+
@search.medium
|
29
|
+
@search.query['Image.Filters'].should include('Size:Medium')
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should filter by large images" do
|
33
|
+
@search.large
|
34
|
+
@search.query['Image.Filters'].should include('Size:Large')
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "size" do
|
40
|
+
|
41
|
+
it "should filter for images with a specified height in pixels" do
|
42
|
+
@search.height 100
|
43
|
+
@search.query['Image.Filters'].should include('Size:Height:100')
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should filter for images with a specified width in pixels" do
|
47
|
+
@search.width 150
|
48
|
+
@search.query['Image.Filters'].should include('Size:Width:150')
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "aspect" do
|
54
|
+
|
55
|
+
%w(Square Wide Tall).each do |aspect|
|
56
|
+
|
57
|
+
it "should restrict image results to those with #{aspect} aspect ratios" do
|
58
|
+
@search.send aspect.downcase.to_sym
|
59
|
+
@search.query['Image.Filters'].should include("Aspect:#{aspect}")
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "color" do
|
67
|
+
|
68
|
+
%w(Color Monochrome).each do |color|
|
69
|
+
|
70
|
+
it "should restrict image results to those which are in #{color}" do
|
71
|
+
@search.send color.downcase.to_sym
|
72
|
+
@search.query["Image.Filters"].should include("Color:#{color}")
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "style" do
|
80
|
+
|
81
|
+
%w(Photo Graphics).each do |style|
|
82
|
+
|
83
|
+
it "should restrict image results to those which have a #{style} style" do
|
84
|
+
@search.send style.downcase.to_sym
|
85
|
+
@search.query["Image.Filters"].should include("Style:#{style}")
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "faces" do
|
93
|
+
|
94
|
+
%w(Face Portrait).each do |face|
|
95
|
+
|
96
|
+
it "should restrict image results to those which contain a #{face}" do
|
97
|
+
@search.send face.downcase.to_sym
|
98
|
+
@search.query["Image.Filters"].should include("Face:#{face}")
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
context "fetching" do
|
108
|
+
|
109
|
+
before(:each) do
|
110
|
+
stub_get("http://api.bing.net/json.aspx?AppId=binged&JsonType=raw&Image.Offset=0&Image.Count=20&Sources=image&Version=2.2&Query=ruby", 'images.json')
|
111
|
+
@search.containing("ruby")
|
112
|
+
@response = @search.fetch
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should cache fetch to eliminate multiple calls to the api" do
|
116
|
+
Image.should_not_receive(:perform)
|
117
|
+
@search.fetch
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should return the results of the search" do
|
121
|
+
@response.results.size.should == 20
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should support dot notation" do
|
125
|
+
result = @response.results.first
|
126
|
+
result.title.should == "ruby is said to give name ... "
|
127
|
+
result.media_url.should == "http://www.shopping.astrolozy.com/images/gems/ruby.jpg"
|
128
|
+
result.url.should == 'http://www.shopping.astrolozy.com/gems.asp'
|
129
|
+
result.width.should == 506
|
130
|
+
result.height.should == 500
|
131
|
+
result.file_size.should == 23354
|
132
|
+
result.content_type.should == 'image/jpeg'
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
context "iterating over results" do
|
138
|
+
|
139
|
+
before(:each) do
|
140
|
+
stub_get("http://api.bing.net/json.aspx?AppId=binged&JsonType=raw&Image.Offset=0&Image.Count=20&Sources=image&Version=2.2&Query=ruby", 'images.json')
|
141
|
+
@search.containing("ruby")
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should be able to iterate over results" do
|
145
|
+
@search.respond_to?(:each).should be_true
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should have items" do
|
149
|
+
@search.each {|item| item.should_not be_nil }
|
150
|
+
end
|
151
|
+
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
end
|
@@ -4,6 +4,8 @@ module Binged
|
|
4
4
|
module Search
|
5
5
|
|
6
6
|
describe "Web" do
|
7
|
+
include AnyFilter
|
8
|
+
include AnyPageable
|
7
9
|
|
8
10
|
before(:each) do
|
9
11
|
@client = Binged::Client.new(:api_key => 'binged')
|
@@ -13,26 +15,11 @@ module Binged
|
|
13
15
|
it "should initialize with a search term" do
|
14
16
|
Web.new(@client, 'binged').query[:Query].should include('binged')
|
15
17
|
end
|
16
|
-
|
17
|
-
it "should be able to specify a site to limit searches to" do
|
18
|
-
@search.from_site('adventuresincoding.com')
|
19
|
-
@search.query[:Query].should include('site:adventuresincoding.com')
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should be able to specify the number of results per page" do
|
23
|
-
@search.per_page(10)
|
24
|
-
@search.query['Web.Count'].should == 10
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should be able to specify the page number" do
|
28
|
-
@search.page(3)
|
29
|
-
@search.query['Web.Offset'].should == 20 * 2
|
30
|
-
end
|
31
18
|
|
32
19
|
it "should be able to set a file type" do
|
33
20
|
@search.file_type(:pdf)
|
34
21
|
@search.query['Web.FileType'].should == :pdf
|
35
|
-
end
|
22
|
+
end
|
36
23
|
|
37
24
|
context "fetching" do
|
38
25
|
|
@@ -50,28 +37,13 @@ module Binged
|
|
50
37
|
it "should return the results of the search" do
|
51
38
|
@response.results.size.should == 20
|
52
39
|
end
|
53
|
-
|
40
|
+
|
54
41
|
it "should support dot notation" do
|
55
42
|
result = @response.results.first
|
56
43
|
result.title.should == "Ruby Programming Language"
|
57
44
|
result.description.should == "Ruby is… A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is ..."
|
58
45
|
result.url.should == "http://www.ruby-lang.org/en/"
|
59
46
|
end
|
60
|
-
|
61
|
-
context "total pages" do
|
62
|
-
|
63
|
-
it "should return of maximum amount of pages that does not exceed the the Bing limit" do
|
64
|
-
bing_limit = 1000
|
65
|
-
@response.should_receive(:total).and_return(bing_limit + 1)
|
66
|
-
@search.total_pages.should == 50
|
67
|
-
end
|
68
|
-
|
69
|
-
it "should calculate the total amount of pages if the Bing results are less than the maximum limit" do
|
70
|
-
@response.should_receive(:total).and_return(500)
|
71
|
-
@search.total_pages.should == 25
|
72
|
-
end
|
73
|
-
|
74
|
-
end
|
75
47
|
|
76
48
|
end
|
77
49
|
|
@@ -0,0 +1,9 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Cache-Control: private
|
3
|
+
Content-Length: 10377
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND", policyref="http://privacy.msn.com/w3c/p3p.xml"
|
6
|
+
Date: Fri, 12 Mar 2010 19:07:51 GMT
|
7
|
+
Connection: keep-alive
|
8
|
+
|
9
|
+
{"SearchResponse":{"Version":"2.2","Query":{"SearchTerms":"ruby"},"Image":{"Total":9480000,"Offset":0,"Results":[{"Title":"ruby is said to give name ... ","MediaUrl":"http:\/\/www.shopping.astrolozy.com\/images\/gems\/ruby.jpg","Url":"http:\/\/www.shopping.astrolozy.com\/gems.asp","DisplayUrl":"http:\/\/www.shopping.astrolozy.com\/gems.asp","Width":506,"Height":500,"FileSize":23354,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1382518625955&id=1a3a6af9c5c3f8d8e963c444c3005c8e","ContentType":"image\/jpeg","Width":160,"Height":158,"FileSize":1960}},{"Title":"Ruby is Cool","MediaUrl":"http:\/\/shakti.trincoll.edu\/~dmerrick\/images\/ruby.png","Url":"http:\/\/shakti.trincoll.edu\/~dmerrick\/dominos.html","DisplayUrl":"http:\/\/shakti.trincoll.edu\/~dmerrick\/dominos.html","Width":995,"Height":996,"FileSize":196597,"ContentType":"image\/png","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1436277871037&id=8ed5fbafc93ee35072ce6b879c342923","ContentType":"image\/jpeg","Width":159,"Height":160,"FileSize":3765}},{"Title":" ... Magazine :: Ruby Programming","MediaUrl":"http:\/\/www.bitwisemag.com\/images\/illustrations\/cover\/11\/ruby_landscape.jpg","Url":"http:\/\/www.bitwisemag.com\/copy\/features\/opinion\/ruby\/ruby_debate.html","DisplayUrl":"http:\/\/www.bitwisemag.com\/copy\/features\/opinion\/ruby\/ruby_debate.html","Width":500,"Height":300,"FileSize":41283,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1650430382906&id=c31d1fab3de1207c93380d08fd486553","ContentType":"image\/jpeg","Width":160,"Height":96,"FileSize":4182}},{"Title":" ... | Ruby - July Birthstone","MediaUrl":"http:\/\/www.kingsjewelry.com\/images\/content\/gemstones\/jul_ruby.jpg","Url":"http:\/\/www.kingsjewelry.com\/learning_gemstones_jul.shtml","DisplayUrl":"http:\/\/www.kingsjewelry.com\/learning_gemstones_jul.shtml","Width":200,"Height":217,"FileSize":12503,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1637993415897&id=9fdd97f930f99384bf7a22c00b13dd5e","ContentType":"image\/jpeg","Width":147,"Height":160,"FileSize":3760}},{"Title":" ... Ruby y Java, bastante ameno","MediaUrl":"http:\/\/img.genbeta.com\/ruby.jpg","Url":"http:\/\/www.genbeta.com\/2005\/11\/29-prueba-ruby","DisplayUrl":"http:\/\/www.genbeta.com\/2005\/11\/29-prueba-ruby","Width":220,"Height":212,"FileSize":9967,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1483533585596&id=72256534559fa421c55c98945442224d","ContentType":"image\/jpeg","Width":160,"Height":154,"FileSize":4040}},{"Title":"Ruby for Perl programmers ... ","MediaUrl":"http:\/\/migo.sixbit.org\/papers\/Introduction_to_Ruby\/ruby-diamond-ring-8.gif","Url":"http:\/\/migo.sixbit.org\/papers\/Introduction_to_Ruby\/slide-62.html","DisplayUrl":"http:\/\/migo.sixbit.org\/papers\/Introduction_to_Ruby\/slide-62.html","Width":428,"Height":375,"FileSize":76565,"ContentType":"image\/gif","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1637935745043&id=5d4c94a836c9b67c883e9fb5a7d62b29","ContentType":"image\/jpeg","Width":160,"Height":140,"FileSize":4244}},{"Title":"RUBY - THE BIRTH STONE FOR ... ","MediaUrl":"http:\/\/www.jewelinfo4u.com\/images\/Gallery\/ruby.jpg","Url":"http:\/\/www.jewelinfo4u.com\/ruby_buying_guide.aspx","DisplayUrl":"http:\/\/www.jewelinfo4u.com\/ruby_buying_guide.aspx","Width":392,"Height":306,"FileSize":105140,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1515275224324&id=f1362f29e41233bff0b243c5bc9d7f46","ContentType":"image\/jpeg","Width":160,"Height":124,"FileSize":2588}},{"Title":"Rubies | Ruby Jewelry ... ","MediaUrl":"http:\/\/www.khulsey.com\/jewelry\/7ruby.jpeg","Url":"http:\/\/www.khulsey.com\/jewelry\/gemstones_ruby.html","DisplayUrl":"http:\/\/www.khulsey.com\/jewelry\/gemstones_ruby.html","Width":300,"Height":131,"FileSize":40248,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1524785550028&id=69fd0a143053517033e2401530890e7f","ContentType":"image\/jpeg","Width":160,"Height":69,"FileSize":2991}},{"Title":" ... : The Carmen Lúcia Ruby","MediaUrl":"http:\/\/www.mnh.si.edu\/exhibits\/images\/ruby\/carmen_lucia_ruby_front.jpg","Url":"http:\/\/www.mnh.si.edu\/exhibits\/ruby\/index.htm","DisplayUrl":"http:\/\/www.mnh.si.edu\/exhibits\/ruby\/index.htm","Width":1782,"Height":2500,"FileSize":206422,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1419056847657&id=55a276ec38f10250d9b6c17a9f128f60","ContentType":"image\/jpeg","Width":114,"Height":160,"FileSize":3590}},{"Title":" Ruby Beads ] - [Buy Ruby ... ","MediaUrl":"http:\/\/www.gemsbiz.com\/docs\/Images\/Ruby_hs.jpg","Url":"http:\/\/www.gemsbiz.com\/docs\/ruby.asp","DisplayUrl":"http:\/\/www.gemsbiz.com\/docs\/ruby.asp","Width":200,"Height":200,"FileSize":10162,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1420070030955&id=3339fb85e638cd4ff6c72829497bf467","ContentType":"image\/jpeg","Width":160,"Height":160,"FileSize":4143}},{"Title":"Al Jabali exige que Ruby ... ","MediaUrl":"http:\/\/www.babnet.net\/images\/ruby.jpg","Url":"http:\/\/www.babnet.net\/cadredetail-1124.asp","DisplayUrl":"http:\/\/www.babnet.net\/cadredetail-1124.asp","Width":225,"Height":202,"FileSize":5295,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1594012730466&id=67c90b560456d0a8300a29565a660348","ContentType":"image\/jpeg","Width":160,"Height":143,"FileSize":3613}},{"Title":"Ruby est en retraite en ... ","MediaUrl":"http:\/\/www.grand-molosse.com\/images\/amstaff\/ruby1.jpg","Url":"http:\/\/www.grand-molosse.com\/new.php?photo=1&id=1&chien=ruby","DisplayUrl":"http:\/\/www.grand-molosse.com\/new.php?photo=1&id=1&chien=ruby","Width":350,"Height":323,"FileSize":42291,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1461553210312&id=c7c2db42bb8113eb22b81f3210981eec","ContentType":"image\/jpeg","Width":160,"Height":147,"FileSize":5856}},{"Title":"Ruby","MediaUrl":"http:\/\/www.diamondconnectionusa.com\/files\/1028\/Ruby.jpg","Url":"http:\/\/www.diamondconnectionusa.com\/default.asp?page=12444","DisplayUrl":"http:\/\/www.diamondconnectionusa.com\/default.asp?page=12444","Width":449,"Height":300,"FileSize":36460,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1502017425554&id=b6f02c4f6c14d696810a93f04f926560","ContentType":"image\/jpeg","Width":160,"Height":106,"FileSize":3482}},{"Title":"Ruby Célébrités arabes ... ","MediaUrl":"http:\/\/www.casafree.com\/modules\/xcgal\/albums\/userpics\/21032\/620%5B1%5D.jpg","Url":"http:\/\/www.casafree.com\/modules\/xcgal\/displayimage.php?pid=10754","DisplayUrl":"http:\/\/www.casafree.com\/modules\/xcgal\/displayimage.php?pid=10754","Width":350,"Height":350,"FileSize":19053,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1604364272148&id=0cb0eb5dab45a3f244daff63be315ca9","ContentType":"image\/jpeg","Width":160,"Height":160,"FileSize":4232}},{"Title":"Italian Ruby book and cool ... ","MediaUrl":"http:\/\/antoniocangiano.com\/files\/libro_ruby.jpg","Url":"http:\/\/antoniocangiano.com\/2006\/09\/08\/italian-ruby-book-and-book-suggestions\/","DisplayUrl":"http:\/\/antoniocangiano.com\/2006\/09\/08\/italian-ruby-book-and-book-suggestions\/","Width":709,"Height":977,"FileSize":130197,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1436879817675&id=7d3dee2226c8da86fe0881460f7339c2","ContentType":"image\/jpeg","Width":116,"Height":160,"FileSize":3763}},{"Title":"Ruby","MediaUrl":"http:\/\/www.herbal-treatments.com.au\/images\/ruby.jpg","Url":"http:\/\/www.herbal-treatments.com.au\/","DisplayUrl":"http:\/\/www.herbal-treatments.com.au\/","Width":400,"Height":322,"FileSize":25917,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1425780180958&id=9d9bb861757316c611c4762cc7edc867","ContentType":"image\/jpeg","Width":160,"Height":128,"FileSize":4526}},{"Title":"Ruby (video game thing ... ","MediaUrl":"http:\/\/media.giantbomb.com\/uploads\/1\/17166\/1032329-ruby_large.jpg","Url":"http:\/\/www.giantbomb.com\/ruby\/93-2051\/","DisplayUrl":"http:\/\/www.giantbomb.com\/ruby\/93-2051\/","Width":300,"Height":300,"FileSize":7035,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1695630885288&id=3992a257a3f22bf4c7fe83faa9c77fd7","ContentType":"image\/jpeg","Width":160,"Height":160,"FileSize":2378}},{"Title":"Natural Ruby Crystal from ... ","MediaUrl":"http:\/\/crystal-cure.com\/pics\/ruby-rough.jpg","Url":"http:\/\/crystal-cure.com\/ruby-gem.html","DisplayUrl":"http:\/\/crystal-cure.com\/ruby-gem.html","Width":300,"Height":300,"FileSize":33571,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts1.mm.bing.net\/images\/thumbnail.aspx?q=1419383019056&id=f53cf56946aeee00da72d2c5879fb80f","ContentType":"image\/jpeg","Width":160,"Height":160,"FileSize":4215}},{"Title":"RUBY , the red variety of ... ","MediaUrl":"http:\/\/www.galleries.com\/minerals\/gemstone\/ruby\/ruby.jpg","Url":"http:\/\/www.galleries.com\/minerals\/gemstone\/ruby\/ruby.htm","DisplayUrl":"http:\/\/www.galleries.com\/minerals\/gemstone\/ruby\/ruby.htm","Width":320,"Height":240,"FileSize":11726,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1431786629297&id=16036666f3eac28fc047fc5ce5a2c91a","ContentType":"image\/jpeg","Width":160,"Height":120,"FileSize":3581}},{"Title":" affriolante, le jolie Ruby ... ","MediaUrl":"http:\/\/catherineweibel.blog.lemonde.fr\/files\/2007\/03\/ruby.1173363147.jpg","Url":"http:\/\/catherineweibel.blog.lemonde.fr\/2006\/11\/22\/pharaonne\/","DisplayUrl":"http:\/\/catherineweibel.blog.lemonde.fr\/2006\/11\/22\/pharaonne\/","Width":275,"Height":404,"FileSize":24855,"ContentType":"image\/jpeg","Thumbnail":{"Url":"http:\/\/ts2.mm.bing.net\/images\/thumbnail.aspx?q=1389335544805&id=4ebd50849989e828d690d6f84f17bcc9","ContentType":"image\/jpeg","Width":108,"Height":160,"FileSize":3371}}]}}}
|
data/spec/fixtures/web.json
CHANGED
@@ -1 +1,9 @@
|
|
1
|
-
{"SearchResponse":{"Version":"2.2","Query":{"SearchTerms":"ruby"},"Web":{"Total":29600000,"Offset":0,"Results":[{"Title":"Ruby Programming Language","Description":"Ruby is… A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is ...","Url":"http:\/\/www.ruby-lang.org\/en\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4627410722949096&w=54f314e7,2e58cc30","DisplayUrl":"www.ruby-lang.org\/en","DateTime":"2010-03-03T17:14:36Z","DeepLinks":[{"Title":"Downloads","Url":"http:\/\/www.ruby-lang.org\/en\/downloads\/"},{"Title":"Documentation","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/"},{"Title":"About Ruby","Url":"http:\/\/www.ruby-lang.org\/en\/about\/"},{"Title":"Ruby in Twenty Minutes","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/quickstart\/"},{"Title":"Libraries","Url":"http:\/\/www.ruby-lang.org\/en\/libraries\/"},{"Title":"Ruby from Other Languages","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/ruby-from-other-languages\/"},{"Title":"Community","Url":"http:\/\/www.ruby-lang.org\/en\/community\/"},{"Title":"Ruby Core","Url":"http:\/\/www.ruby-lang.org\/en\/community\/ruby-core\/"},{"Title":"News","Url":"http:\/\/www.ruby-lang.org\/en\/news\/"},{"Title":"Issue Tracking","Url":"http:\/\/redmine.ruby-lang.org\/"},{"Title":"Weblogs","Url":"http:\/\/www.ruby-lang.org\/en\/community\/weblogs\/"},{"Title":"Mailing Lists","Url":"http:\/\/www.ruby-lang.org\/en\/community\/mailing-lists"},{"Title":"Security","Url":"http:\/\/www.ruby-lang.org\/en\/security\/"}]},{"Title":"Ruby - Wikipedia, the free encyclopedia","Description":"A ruby is a pink to blood-red gemstone, a variety of the mineral corundum (aluminium oxide). The red color is caused mainly by the presence of the element chromium.","Url":"http:\/\/en.wikipedia.org\/wiki\/Ruby","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=661775063422&w=78e1f24a,3a2d897e","DisplayUrl":"en.wikipedia.org\/wiki\/Ruby","DateTime":"2010-02-27T07:18:03Z","DeepLinks":[{"Title":"Main page","Url":"http:\/\/en.wikipedia.org\/wiki\/Main_Page"},{"Title":"Random article","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:Random"},{"Title":"Contents","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Contents"},{"Title":"Current events","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Current_events"},{"Title":"Featured content","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Featured_content"},{"Title":"Wikipedia:About","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:About"},{"Title":"Citation Needed","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Citation_needed"},{"Title":"Sapphire","Url":"http:\/\/en.wikipedia.org\/wiki\/Sapphire"},{"Title":"Diamond","Url":"http:\/\/en.wikipedia.org\/wiki\/Diamond"},{"Title":"Ruby disambiguation","Url":"http:\/\/en.wikipedia.org\/wiki\/ruby_(disambiguation)"},{"Title":"Pakistan","Url":"http:\/\/en.wikipedia.org\/wiki\/Pakistan"},{"Title":"Birthstone","Url":"http:\/\/en.wikipedia.org\/wiki\/Birthstone"},{"Title":"Community portal","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Community_portal"}]},{"Title":"Ruby - The Inspirational Weight Loss Journey on the Style Network ...","Description":"Inspirational weight loss and weight loss exercises from the show Ruby on the Style Network","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/ruby\/index.jsp","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5041767689816463&w=bbeb6738,92443868","DisplayUrl":"www.mystyle.com\/mystyle\/shows\/ruby\/index.jsp","DateTime":"2010-03-03T17:50:23Z","DeepLinks":[{"Title":"Fashion DUI","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=bae9c59a-3236-426d-8eb6-33db1a459c31"},{"Title":"Top Steals of the Week","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=a02cc651-c811-4148-900a-fff42c858eb5"},{"Title":"Weight Loss Message Boards","Url":"http:\/\/www.mystyle.com\/mystyle\/community\/forums\/index.jsp"},{"Title":"Clean House Before & After","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=49b46faf-a336-4645-8d2b-e325a6d5e3a2"},{"Title":"Clean House","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/cleanhouse\/index.jsp"},{"Title":"Dress My Nest Before & After","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=9a4f89fc-e947-401b-ab9f-62f918b341a3"},{"Title":"Style Shout-Out","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=cee27be1-f8f4-44e8-a3b5-87da66c1412d"},{"Title":"Healthy Weight Loss","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/ruby\/gettinghealthy\/index.jsp"},{"Title":"Giuliana & Bill","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/giulianaandbill\/index.jsp"},{"Title":"Whose Wedding Is It Anyway?","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/whosewedding\/index.jsp"},{"Title":"How Do I Look?","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/howdoilook\/index.jsp"},{"Title":"Photo Galleries","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/index.jsp"},{"Title":"mystyle Quiz","Url":"http:\/\/www.mystyle.com\/mystyle\/games\/index.jsp?game=mystylequiz&navSection=fashion,beauty"}]},{"Title":"Ruby (programming language) - Wikipedia, the free encyclopedia","Description":"Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features.","Url":"http:\/\/en.wikipedia.org\/wiki\/Ruby_(programming_language)","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5003684216244711&w=b7f38fb8,ccc1c0aa","DisplayUrl":"en.wikipedia.org\/wiki\/Ruby_(programming_language)","DateTime":"2010-03-04T11:36:58Z","DeepLinks":[{"Title":"Main page","Url":"http:\/\/en.wikipedia.org\/wiki\/Main_Page"},{"Title":"Random article","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:Random"},{"Title":"Current events","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Current_events"},{"Title":"Contents","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Contents"},{"Title":"Featured content","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Featured_content"},{"Title":"About Wikipedia","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:About"},{"Title":"Japan","Url":"http:\/\/en.wikipedia.org\/wiki\/Japan"},{"Title":"Recent changes","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:RecentChanges"},{"Title":"Community portal","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Community_portal"},{"Title":"Contact Wikipedia","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Contact_us"},{"Title":"Upload file","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Upload"},{"Title":"Special pages","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:SpecialPages"},{"Title":"Microsoft Windows","Url":"http:\/\/en.wikipedia.org\/wiki\/Microsoft_Windows"}]},{"Title":"Ruby - english","Description":"Ruby Which colour would you spontaneously associate with love and vivacity, passion and power? It's obvious, isn't it? Red. Red is the colour of love.","Url":"http:\/\/www.gemstone.org\/gem-by-gem\/english\/ruby.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4700979218418228&w=71813540,94f5edb5","DisplayUrl":"www.gemstone.org\/gem-by-gem\/english\/ruby.html","DateTime":"2010-03-03T16:31:39Z"},{"Title":"Ruby Meetup Groups - Ruby Meetups","Description":"Helps groups of people with shared interests plan meetings and form offline clubs in local communities around the world about Ruby","Url":"http:\/\/ruby.meetup.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=695343056075&w=73bd8912,24d17d8f","DisplayUrl":"ruby.meetup.com","DateTime":"2010-03-03T21:25:08Z"},{"Title":"Ruby (1992)","Description":"Directed by John Mackenzie. With Danny Aiello, Sherilyn Fenn, Arliss Howard. Visit IMDb for Photos, Showtimes, Cast, Crew, Reviews, Plot Summary, Comments, Discussions, Taglines ...","Url":"http:\/\/www.imdb.com\/title\/tt0105291\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4821474522039504&w=5143f877,76ab7637","DisplayUrl":"www.imdb.com\/title\/tt0105291","DateTime":"2010-02-04T07:59:38Z"},{"Title":"[Ruby-Doc.org: Documenting the Ruby Language]","Description":"Ruby documentation project: links and downloads of programming information, on many aspects of Ruby.","Url":"http:\/\/www.ruby-doc.org\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4998165183923249&w=ea8f6d25,95b1875e","DisplayUrl":"www.ruby-doc.org","DateTime":"2010-03-04T16:59:06Z","DeepLinks":[{"Title":"Standard API","Url":"http:\/\/www.ruby-doc.org\/stdlib\/"},{"Title":"Programming Ruby","Url":"http:\/\/www.ruby-doc.org\/docs\/ProgrammingRuby\/"},{"Title":"Files","Url":"http:\/\/www.ruby-doc.org\/core"},{"Title":"Getting Started","Url":"http:\/\/www.ruby-doc.org\/gettingstarted\/index.html"},{"Title":"Additional Documents","Url":"http:\/\/www.ruby-doc.org\/docs"},{"Title":"This","Url":"http:\/\/www.ruby-doc.org\/documentation-guidelines.html"},{"Title":"Standard Library","Url":"http:\/\/spec.ruby-doc.org\/wiki\/Ruby_Standard_Library"},{"Title":"Methods","Url":"http:\/\/www.ruby-doc.org\/core-1.8.7\/index.html"},{"Title":"Downloads","Url":"http:\/\/www.ruby-doc.org\/downloads\/"},{"Title":"Why Ruby","Url":"http:\/\/www.ruby-doc.org\/whyruby"},{"Title":"Ruby Spec: Core","Url":"http:\/\/spec.ruby-doc.org\/wiki\/Ruby_Core"},{"Title":"Ruby-Doc Docbar","Url":"http:\/\/www.ruby-doc.org\/docbar\/"},{"Title":"Status Report","Url":"http:\/\/www.ruby-doc.org\/stdlib\/status.html"}]},{"Title":"Ruby: Ruby mineral information and data.","Description":"A red, gem variety of Corundum. The red colour is caused by minor amounts of trivalent Cr replacing Al in the crystal structure. Pure Cr2O3 occurs in nature as the mineral <M ...","Url":"http:\/\/www.mindat.org\/min-3473.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4952668595489458&w=b55008d0,e8c4ddb4","DisplayUrl":"www.mindat.org\/min-3473.html","DateTime":"2010-02-28T21:43:01Z"},{"Title":"Ruby\/Ruby on Rails programming tutorials2 - Meshplex","Description":"Ruby for complete beginners: Ruby Introduction: What can I use RoR for? Reasons for choosing RoR over other popular programming languages such as php or asp.net .What makes Ruby so ...","Url":"http:\/\/www.meshplex.org\/wiki\/Ruby\/Ruby_on_Rails_programming_tutorials","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4741832947336861&w=2d9d5b96,9eaf0e4c","DisplayUrl":"www.meshplex.org\/wiki\/Ruby\/Ruby_on_Rails_programming_tutorials","DateTime":"2010-03-04T05:10:25Z"},{"Title":"Jack Ruby","Description":"Was Jack Ruby a mobster, a spook, or merely an emotional wannabe who expected public acclaim for killing Oswald?","Url":"http:\/\/mcadams.posc.mu.edu\/ruby.htm","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4935828028785085&w=a5cf0783,391d1a03","DisplayUrl":"mcadams.posc.mu.edu\/ruby.htm","DateTime":"2010-03-04T14:50:15Z"},{"Title":"Ruby-On-Rails","Description":"Ruby-On-Rails Developer's Journal ... Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments","Url":"http:\/\/ruby.sys-con.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4881479511180793&w=f0c3ddf5,73535976","DisplayUrl":"ruby.sys-con.com","DateTime":"2010-03-05T02:38:55Z"},{"Title":"The gemstone ruby","Description":"Ruby is distinguished and known by all for its fiery red color. Beside for its color, it is a most desirable gem due to its hardness, durability, luster, and rarity.","Url":"http:\/\/www.minerals.net\/gemstone\/gemstone\/ruby\/ruby.htm","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4621165840434460&w=ae21eda2,87c0c587","DisplayUrl":"www.minerals.net\/gemstone\/gemstone\/ruby\/ruby.htm","DateTime":"2010-03-05T02:53:14Z"},{"Title":"NetBeans IDE - Ruby and Ruby on Rails Development","Description":"NetBeans IDE - Integrated tools for Ruby and Ruby on Rails developers","Url":"http:\/\/netbeans.org\/features\/ruby\/index.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5027053135464027&w=d7848996,8be8650","DisplayUrl":"netbeans.org\/features\/ruby\/index.html","DateTime":"2010-03-04T03:37:22Z"},{"Title":"RubyForge: Ruby: Project Info","Description":"Tracker - Bugs ( 338 open \/ 809 total ) Bug Tracking System - Patches ( 69 open \/ 116 total ) Patch Tracking System - 1.9.1 showstoppers ( 0 open \/ 12 total )","Url":"http:\/\/rubyforge.org\/projects\/ruby\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4713537701086745&w=53c417ed,1ba0970c","DisplayUrl":"rubyforge.org\/projects\/ruby","DateTime":"2010-03-04T04:13:10Z"},{"Title":"Ruby - The Official Website | Coming Soon!","Description":"Ruby's Official Website ... Hey all, welcome to my official website. Here you find all my news, images, video clips & up-to-date information, the website is under construction so ...","Url":"http:\/\/rubymania.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5043382597191621&w=72b61cb5,7046900c","DisplayUrl":"rubymania.com","DateTime":"2010-03-04T17:42:03Z"},{"Title":"CSS3 Ruby Module","Description":"Abstract \"Ruby\" are short runs of text alongside the base text, typically used in East Asian documents to indicate pronunciation or to provide a short annotation.","Url":"http:\/\/www.w3.org\/TR\/css3-ruby\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4740681895184188&w=de16472f,c7ece477","DisplayUrl":"www.w3.org\/TR\/css3-ruby","DateTime":"2010-03-04T03:08:44Z"},{"Title":"Ruby Andrascik's Manotick Lifestyles","Description":"Sales representative in Manotick area. Recent sales, current listings, area information.","Url":"http:\/\/manoticklifestyles.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4985666828699639&w=6efb6d3f,50da2b69","DisplayUrl":"manoticklifestyles.com","DateTime":"2010-03-03T20:35:02Z"},{"Title":"Ruby","Description":"Abstract. The HyperText Markup Language (HTML) is a simple markup language used to create hypertext documents that are portable from one platform to another.","Url":"http:\/\/www.w3.org\/TR\/1999\/WD-ruby-19990924\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4820207509702663&w=8102eac9,23f9553","DisplayUrl":"www.w3.org\/TR\/1999\/WD-ruby-19990924","DateTime":"2010-03-05T07:32:24Z"},{"Title":"ruby - Wiktionary","Description":"This page was last modified on 10 February 2010, at 16:50. Text is available under the Creative Commons Attribution\/Share-Alike License; additional terms may apply.","Url":"http:\/\/en.wiktionary.org\/wiki\/ruby","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4826869002143668&w=81c2b50f,9ecab98e","DisplayUrl":"en.wiktionary.org\/wiki\/ruby","DateTime":"2010-03-04T22:57:01Z"}]}}}
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Cache-Control: private
|
3
|
+
Content-Length: 14611
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND", policyref="http://privacy.msn.com/w3c/p3p.xml"
|
6
|
+
Date: Fri, 12 Mar 2010 19:09:43 GMT
|
7
|
+
Connection: keep-alive
|
8
|
+
|
9
|
+
{"SearchResponse":{"Version":"2.2","Query":{"SearchTerms":"ruby"},"Web":{"Total":30100000,"Offset":0,"Results":[{"Title":"Ruby Programming Language","Description":"Ruby is… A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is ...","Url":"http:\/\/www.ruby-lang.org\/en\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4627410724784104&w=22e021a8,16ea274d","DisplayUrl":"www.ruby-lang.org\/en","DateTime":"2010-03-09T19:16:20Z","DeepLinks":[{"Title":"Downloads","Url":"http:\/\/www.ruby-lang.org\/en\/downloads\/"},{"Title":"Documentation","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/"},{"Title":"About Ruby","Url":"http:\/\/www.ruby-lang.org\/en\/about\/"},{"Title":"Ruby in Twenty Minutes","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/quickstart\/"},{"Title":"Libraries","Url":"http:\/\/www.ruby-lang.org\/en\/libraries\/"},{"Title":"Ruby from Other Languages","Url":"http:\/\/www.ruby-lang.org\/en\/documentation\/ruby-from-other-languages\/"},{"Title":"Community","Url":"http:\/\/www.ruby-lang.org\/en\/community\/"},{"Title":"Ruby Core","Url":"http:\/\/www.ruby-lang.org\/en\/community\/ruby-core\/"},{"Title":"News","Url":"http:\/\/www.ruby-lang.org\/en\/news\/"},{"Title":"Issue Tracking","Url":"http:\/\/redmine.ruby-lang.org\/"},{"Title":"Weblogs","Url":"http:\/\/www.ruby-lang.org\/en\/community\/weblogs\/"},{"Title":"Mailing Lists","Url":"http:\/\/www.ruby-lang.org\/en\/community\/mailing-lists"},{"Title":"Security","Url":"http:\/\/www.ruby-lang.org\/en\/security\/"}]},{"Title":"Ruby - Wikipedia, the free encyclopedia","Description":"A ruby is a pink to blood-red gemstone, a variety of the mineral corundum (aluminium oxide). The red color is caused mainly by the presence of the element chromium.","Url":"http:\/\/en.wikipedia.org\/wiki\/Ruby","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5011840361236004&w=d83e0d4d,525d4fc8","DisplayUrl":"en.wikipedia.org\/wiki\/Ruby","DateTime":"2010-03-10T22:06:57Z","DeepLinks":[{"Title":"Main page","Url":"http:\/\/en.wikipedia.org\/wiki\/Main_Page"},{"Title":"Random article","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:Random"},{"Title":"Contents","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Contents"},{"Title":"Current events","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Current_events"},{"Title":"Featured content","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Featured_content"},{"Title":"Wikipedia:About","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:About"},{"Title":"Citation Needed","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Citation_needed"},{"Title":"Sapphire","Url":"http:\/\/en.wikipedia.org\/wiki\/Sapphire"},{"Title":"Diamond","Url":"http:\/\/en.wikipedia.org\/wiki\/Diamond"},{"Title":"Ruby disambiguation","Url":"http:\/\/en.wikipedia.org\/wiki\/ruby_(disambiguation)"},{"Title":"Pakistan","Url":"http:\/\/en.wikipedia.org\/wiki\/Pakistan"},{"Title":"Birthstone","Url":"http:\/\/en.wikipedia.org\/wiki\/Birthstone"},{"Title":"Community portal","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Community_portal"}]},{"Title":"Ruby - The Inspirational Weight Loss Journey on the Style Network ...","Description":"Inspirational weight loss and weight loss exercises from the show Ruby on the Style Network","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/ruby\/index.jsp","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5041767691585919&w=b4c43136,a50b93df","DisplayUrl":"www.mystyle.com\/mystyle\/shows\/ruby\/index.jsp","DateTime":"2010-03-09T20:20:45Z","DeepLinks":[{"Title":"Fashion DUI","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=bae9c59a-3236-426d-8eb6-33db1a459c31"},{"Title":"Top Steals of the Week","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=a02cc651-c811-4148-900a-fff42c858eb5"},{"Title":"Weight Loss Message Boards","Url":"http:\/\/www.mystyle.com\/mystyle\/community\/forums\/index.jsp"},{"Title":"Clean House Before & After","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=49b46faf-a336-4645-8d2b-e325a6d5e3a2"},{"Title":"Clean House","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/cleanhouse\/index.jsp"},{"Title":"Dress My Nest Before & After","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=9a4f89fc-e947-401b-ab9f-62f918b341a3"},{"Title":"Style Shout-Out","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/gallery.jsp?galleryUUID=cee27be1-f8f4-44e8-a3b5-87da66c1412d"},{"Title":"Healthy Weight Loss","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/ruby\/gettinghealthy\/index.jsp"},{"Title":"Giuliana & Bill","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/giulianaandbill\/index.jsp"},{"Title":"Whose Wedding Is It Anyway?","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/whosewedding\/index.jsp"},{"Title":"How Do I Look?","Url":"http:\/\/www.mystyle.com\/mystyle\/shows\/howdoilook\/index.jsp"},{"Title":"Photo Galleries","Url":"http:\/\/www.mystyle.com\/mystyle\/photos\/index.jsp"},{"Title":"mystyle Quiz","Url":"http:\/\/www.mystyle.com\/mystyle\/games\/index.jsp?game=mystylequiz&navSection=fashion,beauty"}]},{"Title":"Ruby (programming language) - Wikipedia, the free encyclopedia","Description":"Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features.","Url":"http:\/\/en.wikipedia.org\/wiki\/Ruby_(programming_language)","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5003684217948675&w=292b7212,ea3818f","DisplayUrl":"en.wikipedia.org\/wiki\/Ruby_(programming_language)","DateTime":"2010-03-10T13:31:33Z","DeepLinks":[{"Title":"Main page","Url":"http:\/\/en.wikipedia.org\/wiki\/Main_Page"},{"Title":"Random article","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:Random"},{"Title":"Current events","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Current_events"},{"Title":"Contents","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Contents"},{"Title":"Featured content","Url":"http:\/\/en.wikipedia.org\/wiki\/Portal:Featured_content"},{"Title":"About Wikipedia","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:About"},{"Title":"Japan","Url":"http:\/\/en.wikipedia.org\/wiki\/Japan"},{"Title":"Recent changes","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:RecentChanges"},{"Title":"Community portal","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Community_portal"},{"Title":"Contact Wikipedia","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Contact_us"},{"Title":"Upload file","Url":"http:\/\/en.wikipedia.org\/wiki\/Wikipedia:Upload"},{"Title":"Special pages","Url":"http:\/\/en.wikipedia.org\/wiki\/Special:SpecialPages"},{"Title":"Microsoft Windows","Url":"http:\/\/en.wikipedia.org\/wiki\/Microsoft_Windows"}]},{"Title":"Ruby - english","Description":"Ruby Which colour would you spontaneously associate with love and vivacity, passion and power? It's obvious, isn't it? Red. Red is the colour of love.","Url":"http:\/\/www.gemstone.org\/gem-by-gem\/english\/ruby.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4700979220253208&w=42f4604f,9d2be2bd","DisplayUrl":"www.gemstone.org\/gem-by-gem\/english\/ruby.html","DateTime":"2010-03-09T18:26:13Z"},{"Title":"Ruby Meetup Groups - Ruby Meetups","Description":"Helps groups of people with shared interests plan meetings and form offline clubs in local communities around the world about Ruby","Url":"http:\/\/ruby.meetup.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=795317372013&w=be93e7f7,a3625f80","DisplayUrl":"ruby.meetup.com","DateTime":"2010-03-10T22:14:06Z"},{"Title":"Ruby (1992)","Description":"Directed by John Mackenzie. With Danny Aiello, Sherilyn Fenn, Tobin Bell. Visit IMDb for Photos, Showtimes, Cast, Crew, Reviews, Plot Summary, Comments, Discussions, Taglines ...","Url":"http:\/\/www.imdb.com\/title\/tt0105291\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4821474523415776&w=f5de2d85,acb8c620","DisplayUrl":"www.imdb.com\/title\/tt0105291","DateTime":"2010-03-06T18:22:37Z"},{"Title":"[Ruby-Doc.org: Documenting the Ruby Language]","Description":"Ruby documentation project: links and downloads of programming information, on many aspects of Ruby.","Url":"http:\/\/www.ruby-doc.org\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4998165185627177&w=ae362e11,4f5709ff","DisplayUrl":"www.ruby-doc.org","DateTime":"2010-03-10T18:53:40Z","DeepLinks":[{"Title":"Standard API","Url":"http:\/\/www.ruby-doc.org\/stdlib\/"},{"Title":"Programming Ruby","Url":"http:\/\/www.ruby-doc.org\/docs\/ProgrammingRuby\/"},{"Title":"Files","Url":"http:\/\/www.ruby-doc.org\/core"},{"Title":"Getting Started","Url":"http:\/\/www.ruby-doc.org\/gettingstarted\/index.html"},{"Title":"Additional Documents","Url":"http:\/\/www.ruby-doc.org\/docs"},{"Title":"This","Url":"http:\/\/www.ruby-doc.org\/documentation-guidelines.html"},{"Title":"Standard Library","Url":"http:\/\/spec.ruby-doc.org\/wiki\/Ruby_Standard_Library"},{"Title":"Methods","Url":"http:\/\/www.ruby-doc.org\/core-1.8.7\/index.html"},{"Title":"Downloads","Url":"http:\/\/www.ruby-doc.org\/downloads\/"},{"Title":"Why Ruby","Url":"http:\/\/www.ruby-doc.org\/whyruby"},{"Title":"Ruby Spec: Core","Url":"http:\/\/spec.ruby-doc.org\/wiki\/Ruby_Core"},{"Title":"Ruby-Doc Docbar","Url":"http:\/\/www.ruby-doc.org\/docbar\/"},{"Title":"Status Report","Url":"http:\/\/www.ruby-doc.org\/stdlib\/status.html"}]},{"Title":"Ruby: Ruby mineral information and data.","Description":"A red, gem variety of corundum. The red colour is caused by minor amounts of trivalent Cr replacing Al in the crystal structure. In traditional gemmological terms, ruby has to ...","Url":"http:\/\/www.mindat.org\/min-3473.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4952668598504110&w=7eb11392,3bc454a2","DisplayUrl":"www.mindat.org\/min-3473.html","DateTime":"2010-03-11T00:58:45Z"},{"Title":"Ruby\/Ruby on Rails programming tutorials2 - Meshplex","Description":"Ruby for complete beginners: Ruby Introduction: What can I use RoR for? Reasons for choosing RoR over other popular programming languages such as php or asp.net .What makes Ruby so ...","Url":"http:\/\/www.meshplex.org\/wiki\/Ruby\/Ruby_on_Rails_programming_tutorials","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4741832949237409&w=a5ed9122,f1e25a41","DisplayUrl":"www.meshplex.org\/wiki\/Ruby\/Ruby_on_Rails_programming_tutorials","DateTime":"2010-03-10T06:57:50Z"},{"Title":"Jack Ruby","Description":"Was Jack Ruby a mobster, a spook, or merely an emotional wannabe who expected public acclaim for killing Oswald?","Url":"http:\/\/mcadams.posc.mu.edu\/ruby.htm","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4935828030292414&w=ff2150fb,c0c5d1af","DisplayUrl":"mcadams.posc.mu.edu\/ruby.htm","DateTime":"2010-03-10T16:37:40Z"},{"Title":"The gemstone ruby","Description":"Ruby is distinguished and known by all for its fiery red color. Beside for its color, it is a most desirable gem due to its hardness, durability, luster, and rarity.","Url":"http:\/\/www.minerals.net\/gemstone\/gemstone\/ruby\/ruby.htm","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4621165842138411&w=c02d2fc0,aea0c6c4","DisplayUrl":"www.minerals.net\/gemstone\/gemstone\/ruby\/ruby.htm","DateTime":"2010-03-11T04:33:29Z"},{"Title":"Ruby-On-Rails","Description":"Ruby-On-Rails Developer's Journal ... Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments","Url":"http:\/\/ruby.sys-con.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4881479512884746&w=384ff0b1,90c41b9a","DisplayUrl":"ruby.sys-con.com","DateTime":"2010-03-11T04:33:29Z"},{"Title":"NetBeans IDE - Ruby and Ruby on Rails Development","Description":"NetBeans IDE - Integrated tools for Ruby and Ruby on Rails developers","Url":"http:\/\/netbeans.org\/features\/ruby\/index.html","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5027053137167976&w=94d0be29,34722a74","DisplayUrl":"netbeans.org\/features\/ruby\/index.html","DateTime":"2010-03-10T05:39:06Z"},{"Title":"RubyForge: Ruby: Project Info","Description":"Tracker - Bugs ( 338 open \/ 809 total ) Bug Tracking System - Patches ( 69 open \/ 116 total ) Patch Tracking System - 1.9.1 showstoppers ( 0 open \/ 12 total )","Url":"http:\/\/rubyforge.org\/projects\/ruby\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4713537702790687&w=9c421a7a,14609206","DisplayUrl":"rubyforge.org\/projects\/ruby","DateTime":"2010-03-10T06:22:03Z"},{"Title":"Ruby - The Official Website | Coming Soon!","Description":"Ruby's Official Website ... Hey all, welcome to my official website. Here you find all my news, images, video clips & up-to-date information, the website is under construction so ...","Url":"http:\/\/rubymania.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=5043382599026615&w=aae98c0d,7b09c193","DisplayUrl":"rubymania.com","DateTime":"2010-03-10T19:50:56Z"},{"Title":"CSS3 Ruby Module","Description":"Abstract \"Ruby\" are short runs of text alongside the base text, typically used in East Asian documents to indicate pronunciation or to provide a short annotation.","Url":"http:\/\/www.w3.org\/TR\/css3-ruby\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4740681896888148&w=ef0223a0,4db7bc7f","DisplayUrl":"www.w3.org\/TR\/css3-ruby","DateTime":"2010-03-10T05:10:28Z"},{"Title":"Ruby Andrascik's Manotick Lifestyles","Description":"Sales representative in Manotick area. Recent sales, current listings, area information.","Url":"http:\/\/manoticklifestyles.com\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4985666830403560&w=bcb823d9,31408de6","DisplayUrl":"manoticklifestyles.com","DateTime":"2010-03-09T22:36:46Z"},{"Title":"Ruby","Description":"Abstract. The HyperText Markup Language (HTML) is a simple markup language used to create hypertext documents that are portable from one platform to another.","Url":"http:\/\/www.w3.org\/TR\/1999\/WD-ruby-19990924\/","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4820207511406597&w=8ab21896,f1b29660","DisplayUrl":"www.w3.org\/TR\/1999\/WD-ruby-19990924","DateTime":"2010-03-11T09:19:49Z"},{"Title":"ruby - Wiktionary","Description":"This page was last modified on 10 February 2010, at 16:50. Text is available under the Creative Commons Attribution\/Share-Alike License; additional terms may apply.","Url":"http:\/\/en.wiktionary.org\/wiki\/ruby","CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=ruby&d=4826869003847603&w=f59c5f68,3484f0aa","DisplayUrl":"en.wiktionary.org\/wiki\/ruby","DateTime":"2010-03-11T00:44:26Z"}]}}}
|
data/spec/spec_helper.rb
CHANGED
@@ -7,6 +7,7 @@ require 'fakeweb'
|
|
7
7
|
require 'binged'
|
8
8
|
|
9
9
|
FakeWeb.allow_net_connect = false
|
10
|
+
Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f}
|
10
11
|
|
11
12
|
Spec::Runner.configure do |config|
|
12
13
|
|
@@ -23,7 +24,7 @@ def fixture_file(filename)
|
|
23
24
|
end
|
24
25
|
|
25
26
|
def stub_get(url, filename, options={})
|
26
|
-
fakeweb_options = {:
|
27
|
+
fakeweb_options = {:response => fixture_file(filename)}.merge(options)
|
27
28
|
FakeWeb.register_uri(:get, url, fakeweb_options)
|
28
29
|
end
|
29
30
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
share_as :AnyPageable do
|
2
|
+
|
3
|
+
it "should be able to specify the number of results per page" do
|
4
|
+
@search.per_page(10)
|
5
|
+
@search.query["#{@search.source.to_s.capitalize}.Count"].should == 10
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should be able to specify the page number" do
|
9
|
+
@search.page(3)
|
10
|
+
@search.query["#{@search.source.to_s.capitalize}.Offset"].should == 20 * 2
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
version: 0.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kevin Faustino
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-12 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -108,12 +108,17 @@ files:
|
|
108
108
|
- lib/binged/hashie_extensions.rb
|
109
109
|
- lib/binged/search.rb
|
110
110
|
- lib/binged/search/base.rb
|
111
|
+
- lib/binged/search/image.rb
|
111
112
|
- lib/binged/search/web.rb
|
113
|
+
- spec/binged/search/image_spec.rb
|
112
114
|
- spec/binged/search/web_spec.rb
|
113
115
|
- spec/binged_spec.rb
|
116
|
+
- spec/fixtures/images.json
|
114
117
|
- spec/fixtures/web.json
|
115
118
|
- spec/spec.opts
|
116
119
|
- spec/spec_helper.rb
|
120
|
+
- spec/support/shared_examples/filter.rb
|
121
|
+
- spec/support/shared_examples/pageable.rb
|
117
122
|
has_rdoc: true
|
118
123
|
homepage: http://github.com/kfaustino/binged
|
119
124
|
licenses: []
|
@@ -145,6 +150,9 @@ signing_key:
|
|
145
150
|
specification_version: 3
|
146
151
|
summary: A wrapper for the bing api
|
147
152
|
test_files:
|
153
|
+
- spec/binged/search/image_spec.rb
|
148
154
|
- spec/binged/search/web_spec.rb
|
149
155
|
- spec/binged_spec.rb
|
150
156
|
- spec/spec_helper.rb
|
157
|
+
- spec/support/shared_examples/filter.rb
|
158
|
+
- spec/support/shared_examples/pageable.rb
|