duckduckgo 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ecc4fbee9739c27ddc4010278f3e2fdaac13a12
4
- data.tar.gz: c238a8216a246c80dd4622f981e120e975cc9a10
3
+ metadata.gz: 973ab6c762c734171de996547c6d46b43884e269
4
+ data.tar.gz: 5b464c328c85363426c86bcd3a31271c1240fa47
5
5
  SHA512:
6
- metadata.gz: 9e36897c4d88b2882ed75e7636ef8184b2da0852a5213359b4ac0808728e52c028230275fcf139e4da01dfad84a7e9dceaf857012da7c395037f171b728f2001
7
- data.tar.gz: 2225bc43e515e9b4819d69dc028a9827909606cbfb6fcbf7b5be92b1514153b0656410c42d732bb35d64dbd5417e1d759a0ebd1e68635219f7f22e5c085ff4b6
6
+ metadata.gz: 032295c19c6242138ea0853df94cd732cc4e43a1f529e79de64a9a149bec79b52efda296efb3ba7369cbe355284c1dcf4799c546f120e70ca59a7d4cd77cba3e
7
+ data.tar.gz: 39f42f41e188a954159e96f625b5ac1fa5b4be744ef526c191ca80e61a4972bf365b96afdf6100753049586945dc6d4b88dcfe46685b847904eee1de365af946
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # DuckDuckGo
2
- [![Build Status](https://travis-ci.com/stevesoltys/duckduckgo.svg?token=p8s7S7quPerPhARM711E&branch=master)](https://travis-ci.com/stevesoltys/duckduckgo)
2
+ [![Build Status](https://travis-ci.org/stevesoltys/duckduckgo.svg?branch=master)](https://travis-ci.org/stevesoltys/duckduckgo)
3
3
 
4
4
  An unofficial DuckDuckGo search API.
5
5
 
data/Rakefile CHANGED
@@ -1,8 +1,9 @@
1
1
  require 'rake/testtask'
2
2
 
3
3
  Rake::TestTask.new do |t|
4
- t.libs << 'test'
4
+ t.libs.push "lib"
5
+ t.test_files = FileList['test/test_*.rb']
6
+ t.verbose = true
5
7
  end
6
8
 
7
- desc 'Run tests'
8
9
  task :default => :test
data/duckduckgo.gemspec CHANGED
@@ -20,5 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 1.10'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
+ spec.add_development_dependency 'minitest', '~> 5.8.4'
23
24
  spec.add_dependency 'nokogiri', '~> 1.0'
25
+ spec.add_dependency 'open_uri_redirections', '~> 0.2.1'
24
26
  end
@@ -1,5 +1,6 @@
1
1
  require 'nokogiri'
2
2
  require 'open-uri'
3
+ require 'open_uri_redirections'
3
4
  require 'cgi'
4
5
 
5
6
  ##
@@ -19,7 +20,7 @@ module DuckDuckGo
19
20
 
20
21
  results = []
21
22
 
22
- raise 'Hash does not contain a query string.' unless hash.has_key?(:query)
23
+ raise 'Hash does not contain a query string.' if hash[:query].nil?
23
24
  html = open("#{RESOURCE_URL}#{CGI::escape(hash[:query])}")
24
25
 
25
26
  document = Nokogiri::HTML(html)
@@ -34,13 +35,16 @@ module DuckDuckGo
34
35
  uri = title_element['href']
35
36
  raise 'Could not find result URL!' if uri.nil?
36
37
 
38
+ # Follow redirects, since DuckDuckGo often aggregates search results from Yahoo.
39
+ final_uri = open(uri, :allow_redirections => :safe).base_uri.to_s
40
+
37
41
  description_element = result.css('.result__snippet').first
38
42
  raise 'Could not find result description element!' if description_element.nil?
39
43
 
40
44
  description = description_element.text
41
45
  raise 'Could not find result description!' if description.nil?
42
46
 
43
- results << SearchResult.new(uri, title, description)
47
+ results << SearchResult.new(final_uri, title, description)
44
48
  end
45
49
 
46
50
  return results
@@ -1,3 +1,3 @@
1
1
  module DuckDuckGo
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duckduckgo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Soltys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-06 00:00:00.000000000 Z
11
+ date: 2016-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 5.8.4
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 5.8.4
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: nokogiri
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +66,20 @@ dependencies:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
68
  version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: open_uri_redirections
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.2.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.1
55
83
  description:
56
84
  email:
57
85
  - stevesoltys@live.com