binged 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/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
|