searchbing 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.md +2 -2
  2. data/lib/searchbing.rb +12 -6
  3. metadata +2 -2
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- searchbing [![Build Status](https://travis-ci.org/rcullito/searchbing.png?branch=master)](https://travis-ci.org/rcullito/searchbing)
1
+ searchbing [![Build Status](https://travis-ci.org/rcullito/searchbing.png?branch=master)](https://travis-ci.org/rcullito/searchbing) [![Gem Version](https://badge.fury.io/rb/searchbing.png)](http://badge.fury.io/rb/searchbing)
2
2
  =========
3
3
 
4
4
 
@@ -21,7 +21,7 @@ An account key is needed to use the Bing Search API. You can create a new accoun
21
21
 
22
22
  ## Usage
23
23
 
24
- - valid search types include: Image, Web, or Video. The first letter must be capitalized
24
+ - valid search types include: Image, Web, News or Video. The first letter must be capitalized
25
25
 
26
26
  - this gem relies on the open-uri, net/http, and json gems.
27
27
 
data/lib/searchbing.rb CHANGED
@@ -6,23 +6,25 @@ require 'net/http'
6
6
  # Before proceeding you will need an account key, which can be obtained by registering an accout at http://windows.microsoft.com/en-US/windows-live/sign-in-what-is-microsoft-account
7
7
  class Bing
8
8
  # Create a new object of the bing class
9
- # >> bing_image = Bing.new('your_account_key_goes_here', 10, 'Image')
10
- # => #<Bing:0x9d9b9f4 @account_key="your_account_key", @num_results=10, @type="Image">
9
+ # >> bing_image = Bing.new('your_account_key_goes_here', 10, 'Image', {:Adult => 'Strict'})
10
+ # => #<Bing:0x9d9b9f4 @account_key="your_account_key", @num_results=10, @type="Image", @params={:Adult => 'Strict'}>
11
11
  # Arguments:
12
12
  # account_key: (String)
13
13
  # num_results: (Integer)
14
14
  # type: (String)
15
+ # params: (Hash)
15
16
 
16
- def initialize(account_key, num_results, type)
17
+ def initialize(account_key, num_results, type, params = {})
17
18
 
18
19
  @account_key = account_key
19
20
  @num_results = num_results
20
21
  @type = type
22
+ @params = params
21
23
 
22
24
 
23
25
  end
24
26
 
25
- attr_accessor :account_key, :num_results, :type
27
+ attr_accessor :account_key, :num_results, :type, :params
26
28
 
27
29
  # Search for a term, the result is an array of hashes with the result data
28
30
  # >> bing_image.search("puffin", 25)
@@ -32,13 +34,17 @@ class Bing
32
34
  # offset: (Integer)
33
35
 
34
36
  def search(search_term, offset = 0)
35
-
37
+
36
38
  user = ''
37
39
  web_search_url = "https://api.datamarket.azure.com/Bing/Search/v1/Composite?Sources="
38
40
  sources_portion = URI.encode_www_form_component('\'' + @type + '\'')
39
41
  query_string = '&$format=json&Query='
40
42
  query_portion = URI.encode_www_form_component('\'' + search_term + '\'')
41
43
  params = "&$top=#{@num_results}&$skip=#{offset}"
44
+ @params.each do |k,v|
45
+ params << "&#{k.to_s}=\'#{v.to_s}\'"
46
+ end
47
+
42
48
  full_address = web_search_url + sources_portion + query_string + query_portion + params
43
49
 
44
50
  uri = URI(full_address)
@@ -46,7 +52,7 @@ class Bing
46
52
  req.basic_auth user, account_key
47
53
 
48
54
  res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https'){|http|
49
- http.request(req)
55
+ http.request(req)
50
56
  }
51
57
 
52
58
  body = JSON.parse(res.body, :symbolize_names => true)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: searchbing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -41,7 +41,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
41
41
  version: '0'
42
42
  requirements: []
43
43
  rubyforge_project:
44
- rubygems_version: 1.8.24
44
+ rubygems_version: 1.8.23
45
45
  signing_key:
46
46
  specification_version: 3
47
47
  summary: compatible with the recent azure migration,use bing's search api in your