class TTWatcher::Sites::Connection
Attributes
site[R]
@return [Site]
Site that uses current connection.
url[R]
@return [InternetConnection::Url]
Last used url.
Public Class Methods
new(site)
click to toggle source
Creates new Connection
instance.
@return [Sites::Connection]
# File sources/ttwatcher/sites/connection.rb, line 35 def initialize(site) @site = site end
Public Instance Methods
download(url, request_params = {})
click to toggle source
Downloads requested url.
@param [String] url
Url in any form: "https://site.com", "site.com", "www.site.com"
@param [Hash] request_params
@return [String, NilClass]
when 'OK' it returns requested page (html, string). when 'Error' it returns +nil+.
# File sources/ttwatcher/sites/connection.rb, line 51 def download(url, request_params = {}) with_exceptions_control do request = settings.dup.deep_merge request_params @url = Url.new url, request[:url] response = RestClient::Request.execute method: :get, url: url.to_s return response.body end end
settings()
click to toggle source
@return [Hash]
Default settings for the connection.
# File sources/ttwatcher/sites/connection.rb, line 21 def settings @settings ||= begin defaults = S[:defaults][:connection_settings].dup || {} defaults.deep_merge! S[site.name][:connection_settings] defaults end end
Private Instance Methods
with_exceptions_control() { || ... }
click to toggle source
# File sources/ttwatcher/sites/connection.rb, line 63 def with_exceptions_control # no-doc yield rescue Errno::ECONNREFUSED # ==> Scheme not supported. Try another one. url.scheme_switch retry rescue RestClient::Forbidden Logger << "Connection for '#{url.to_s}' Forbidden." return nil rescue Exception => exception Logger.with_backtrace "Unexpected exception (#{exception.inspect}) " \ "has been raised for '#{url.to_s}' url." return nil end