module TTWatcher::Sites::InternetConnection::Scheme
<<Breaking news>> Some cites still using http.
This module designed to switch&normalizate scheme for url
instance, if default (https) scheme not supported.
Constants
- DEFAULT
- SCHEMES
Public Class Methods
add_scheme!(url, scheme)
click to toggle source
# File sources/ttwatcher/sites/connection/scheme.rb, line 23 def self.add_scheme!(url, scheme) if included?(url, scheme) url else url.replace "#{scheme.to_s}://#{url}" end end
included?(url, scheme = nil)
click to toggle source
# File sources/ttwatcher/sites/connection/scheme.rb, line 15 def self.included?(url, scheme = nil) if scheme (url =~ Regexp.new(scheme.to_s + '://')) == 0 else SCHEMES.any? { |p| included?(url, p) } end end
Public Instance Methods
scheme()
click to toggle source
# File sources/ttwatcher/sites/connection/scheme.rb, line 31 def scheme @scheme end
scheme_switch()
click to toggle source
# File sources/ttwatcher/sites/connection/scheme.rb, line 35 def scheme_switch @allowed_schemes -= [ @scheme ] if @allowed_schemes.length > 0 @scheme = @allowed_schemes.first else MessageWarn.send "Unknown scheme requested: #{@scheme}!" end @switched = true normalization! end
Private Instance Methods
normalization!()
click to toggle source
# File sources/ttwatcher/sites/connection/scheme.rb, line 60 def normalization! unless @switched return encode_url if Scheme.included?(@url) end return encode_url if Scheme.included?(@url, @scheme) strip_schemes_from_url! Scheme.add_scheme!(@url, @scheme) end
set_scheme(scheme = nil)
click to toggle source
# File sources/ttwatcher/sites/connection/scheme.rb, line 52 def set_scheme(scheme = nil) @scheme = scheme || DEFAULT @allowed_schemes = SCHEMES.dup @switched = false normalization! end
strip_schemes_from_url!()
click to toggle source
# File sources/ttwatcher/sites/connection/scheme.rb, line 70 def strip_schemes_from_url! SCHEMES.each do |scheme| @url.gsub!(scheme.to_s + '://', '') if Scheme.included?(@url, scheme) end end