Module: Query::Result

Included in:
Baidu, BaiduMobile, BaiduMobileApi, Qihu, QihuMobile, SMobile, Sogou, SogouMobile
Defined in:
lib/query/result.rb,
lib/query/result/qihu.rb,
lib/query/result/baidu.rb,
lib/query/result/sogou.rb,
lib/query/result/sm_mobile.rb,
lib/query/result/qihu_mobile.rb,
lib/query/result/baidu_mobile.rb,
lib/query/result/sogou_mobile.rb,
lib/query/result/baidu_mobile_api.rb

Defined Under Namespace

Classes: Baidu, BaiduMobile, BaiduMobileApi, Qihu, QihuMobile, SMobile, Sogou, SogouMobile

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#baseuriObject

Returns the value of attribute baseuri.



3
4
5
# File 'lib/query/result.rb', line 3

def baseuri
  @baseuri
end

#optionsObject

Returns the value of attribute options.



3
4
5
# File 'lib/query/result.rb', line 3

def options
  @options
end

#pagenumberObject

Returns the value of attribute pagenumber.



3
4
5
# File 'lib/query/result.rb', line 3

def pagenumber
  @pagenumber
end

#perpageObject

Returns the value of attribute perpage.



3
4
5
# File 'lib/query/result.rb', line 3

def perpage
  @perpage
end

Instance Method Details

#initialize(page) ⇒ Object



4
5
6
7
# File 'lib/query/result.rb', line 4

def initialize(page)
  @page = Nokogiri::HTML page
  @pagenumber = 1
end

#nextObject



33
34
35
36
37
38
39
40
# File 'lib/query/result.rb', line 33

def next
  return false unless next_url
  @next_url = URI.join(@baseuri, next_url)
  next_page = HTTParty.get(@next_url, @options)
  r = self.class.new(next_page)
  r.pagenumber, r.perpage, r.options, r.baseuri = @pagenumber + 1, @perpage, @options, @baseuri
  r
end

#rank(host) ⇒ Object

on base of ranks



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/query/result.rb', line 17

def rank(host)#on base of ranks
  @rank ||= %w(seo_ranks ads_top ads_right ads_bottom).map do |type_str|
    result = nil
    send(type_str).each_with_index do |line,index|
      if host.class == Regexp
        result = index + 1 and break if line[:host] =~ host
      elsif host.class == String
        result = index + 1 and break if line[:host] == host
      else
        result = false
      end
    end
    result
  end
end

#raw_ranksObject



8
9
10
11
12
13
14
15
# File 'lib/query/result.rb', line 8

def raw_ranks
  {
    'ads_top'=>ads_top,
    'ads_right'=>ads_right,
    'ads_bottom'=>ads_bottom,
    'seo_ranks'=>seo_ranks
  }
end