Class: Pingr::SearchEngines::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/pingr/search_engines/base.rb

Overview

The object created to ping a search engine with a sitemap

Direct Known Subclasses

Bing, Google

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sitemap_url) ⇒ Object

Initialize a new ping request

Parameters:

  • sitemap_url

    A String url of the sitemap we're submitting



18
19
20
# File 'lib/pingr/search_engines/base.rb', line 18

def initialize(sitemap_url)
  @sitemap_url = sitemap_url
end

Instance Attribute Details

#sitemap_urlObject (readonly)

Gets/Sets the String url of the sitemap we're submitting



11
12
13
# File 'lib/pingr/search_engines/base.rb', line 11

def sitemap_url
  @sitemap_url
end

Instance Method Details

#loggerA (private)

Private: A helper method to access Pingr::logger

Returns:

  • (A)

    Logger instance



57
58
59
# File 'lib/pingr/search_engines/base.rb', line 57

def logger
  Pingr.logger
end

#pingObject

Perform the ping request (if in :live mode) Logs the success/failure of the ping in logger.

Returns:

  • true if ping was a success

  • false if ping was not successful



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/pingr/search_engines/base.rb', line 27

def ping
  return true unless Pingr.mode == :live

  ssl = ping_url.scheme == 'https'
  Net::HTTP.start(ping_url.host, ping_url.port, use_ssl: ssl) do |http|
    request = Net::HTTP::Get.new(ping_url)
    response = http.request(request)
    if response.code.to_s =~ /200|301/
      logger.info "Pinged #{search_engine} Successfully - #{Time.now}"
      return true
    else
      logger.warn "Error pinging #{search_engine}! (response code: #{response.code})- #{Time.now}"
      return false
    end
  end
end

#ping_urlObject (private)

Raises:

  • (NotImplementedError)


46
47
48
# File 'lib/pingr/search_engines/base.rb', line 46

def ping_url
  raise NotImplementedError, "Define ping_url in #{self.class}"
end

#search_engineObject (private)

Raises:

  • (NotImplementedError)


50
51
52
# File 'lib/pingr/search_engines/base.rb', line 50

def search_engine
  raise NotImplementedError, "Define search_engine in #{self.class}"
end