googling 0.0.2 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ecd366160cca38608a75eaf27258fd7df0559ea2
4
- data.tar.gz: 4bcbe01f9a5989d11b2366f7b5a1858a88485f65
3
+ metadata.gz: 7c1239809d6bd5fdd5244bc8d1ee1278954ef5e7
4
+ data.tar.gz: 1b42f28f71f13fc49c75fb5375e538fe2c603627
5
5
  SHA512:
6
- metadata.gz: 06d6bb62a03b885e04545213ffbd91417199422bec06f405c29db1ea836cc33f48a1d122c45043cec156a0bc73fb94123828aeba24c71151e43fe854d34aa976
7
- data.tar.gz: cb929afb41c48162389e0eaaf63d24d8590e23fe454501376438c75bf9b0705ae2da286e2a4f535fedc9eefc094be4d0216bfd77cc79014266902baa9b9e33ef
6
+ metadata.gz: 89d80a2f8f10aee28443fd0111868617a79c4d3d0da9db92c9e8e54397c39ed9853661d142bab3c3883a4754a82cf585d93db6a32ec143b17b99f83ab4e62534
7
+ data.tar.gz: 698781c78cd3e4c3725015449128a3e25f4094903f06b51d38f112ac361d71a36be2d5292d7980b627e3a4a24e9b48a264701d0195e350446d9970bda4e0e0ff
data/bin/googling ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ # The command line Googling tool.
3
+
4
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
5
+ require 'googling'
6
+
7
+ puts "please enter the KEY WORDS."
8
+ keywords = gets.chomp('')
9
+
10
+ results = Googling.search(keywords)
11
+ results.each do |result|
12
+ puts ">>>> "
13
+ puts result.title
14
+ puts result.link
15
+ puts result.description
16
+ end
@@ -0,0 +1,11 @@
1
+ module Googling
2
+ class Result
3
+ attr_reader :title, :link, :description
4
+
5
+ def initialize(attributes = {})
6
+ @title = attributes[:title]
7
+ @link = attributes[:link]
8
+ @description = attributes[:description]
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,42 @@
1
+ require 'nokogiri'
2
+ require "net/http"
3
+ require 'uri'
4
+
5
+ module Googling
6
+ class Search
7
+ attr_reader :response, :list
8
+
9
+ def initialize(keywords)
10
+ @keywords = keywords
11
+ end
12
+
13
+ def execute
14
+ make_request
15
+ parse_results
16
+ end
17
+
18
+ private
19
+
20
+ def make_request
21
+ uri = URI.parse("https://www.google.com/search?q=#{@keywords}")
22
+ http = Net::HTTP.new(uri.host, uri.port)
23
+ http.use_ssl = true
24
+ request = Net::HTTP::Get.new(uri.request_uri)
25
+ @response = http.request(request)
26
+ end
27
+
28
+ def parse_results
29
+ page = Nokogiri::HTML(response.body)
30
+ page.encoding = 'utf-8'
31
+
32
+ nodes = page.css('li.g')
33
+ nodes = nodes.select { |r| r.css('table').empty? }
34
+ nodes.map do |r|
35
+ title = r.css('h3 a').text
36
+ link = r.css('h3 a').map{|x| x['href'].to_s.sub!("/url?q=","")}
37
+ description = r.css('div.s span.st').text
38
+ Result.new(title: title, link: link, description: description)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,3 +1,3 @@
1
1
  module Googling
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/googling.rb CHANGED
@@ -1,27 +1,9 @@
1
- require "googling/version"
1
+ require 'googling/search'
2
+ require 'googling/result'
2
3
 
3
4
  module Googling
4
- def self.check
5
- check = `html2text -version` rescue nil
6
- if check
7
- puts "Fine, go next step."
8
- true
9
- else
10
- puts "Please install the html2text."
11
- false
12
- end
13
- end
14
5
 
15
- def self.search
16
- puts "Enter your search,please."
17
- yoursearch = gets.chomp()
18
- url = "curl -A Mozilla http://www.google.com/search?q=#{yoursearch} |html2text -width 70"
19
- answer = `curl #{url}`
20
- puts "#{answer}"
6
+ def self.search(keywords)
7
+ Googling::Search.new(keywords).execute
21
8
  end
22
- end
23
-
24
- if Googling.check
25
- puts Googling.search
26
- end
27
-
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: googling
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Imyuan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-07 00:00:00.000000000 Z
11
+ date: 2014-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -41,7 +41,8 @@ dependencies:
41
41
  description: Write a longer description. Optional.
42
42
  email:
43
43
  - smilestar8@hotmail.com
44
- executables: []
44
+ executables:
45
+ - googling
45
46
  extensions: []
46
47
  extra_rdoc_files: []
47
48
  files:
@@ -50,8 +51,11 @@ files:
50
51
  - LICENSE.txt
51
52
  - README.md
52
53
  - Rakefile
54
+ - bin/googling
53
55
  - googling.gemspec
54
56
  - lib/googling.rb
57
+ - lib/googling/result.rb
58
+ - lib/googling/search.rb
55
59
  - lib/googling/version.rb
56
60
  homepage: ''
57
61
  licenses: