class Serpentor::Rank

Attributes

host[R]
keyword[R]
requested_at[R]
url[R]
value[R]

Public Class Methods

check(keyword, host, options={}) click to toggle source
# File lib/serpentor/rank.rb, line 12
def check(keyword, host, options={})
  new(keyword, host, options).check
end
new(keyword, host, options={}) click to toggle source
# File lib/serpentor/rank.rb, line 5
def initialize(keyword, host, options={})
  @keyword = keyword
  @host = host
  @limit = options[:limit] || 50
end

Public Instance Methods

check() click to toggle source
# File lib/serpentor/rank.rb, line 17
def check
  @requested_at ||= Time.now
  position = 1

  Google::Search::Web.new(query: keyword).each_item do |res|
    return self if !!@value || position > @limit

    if URI.parse(res.uri).host == host
      @value = position
      @url = res.uri
    else
      position += 1
    end
  end

  self
end
rank() click to toggle source
# File lib/serpentor/rank.rb, line 35
def rank
  value
end
ranked?() click to toggle source
# File lib/serpentor/rank.rb, line 43
def ranked?
  check unless requested?
  !value.nil?
end
requested?() click to toggle source
# File lib/serpentor/rank.rb, line 39
def requested?
  !requested_at.nil?
end
unranked?() click to toggle source
# File lib/serpentor/rank.rb, line 48
def unranked?
  check unless requested?
  value.nil?
end