Class: TheFox::Sengi::Uri
- Inherits:
-
Object
- Object
- TheFox::Sengi::Uri
- Defined in:
- lib/sengi/uri.rb
Constant Summary collapse
- URI_CLASSES =
[URI::Generic, URI::HTTP, URI::HTTPS]
Instance Method Summary collapse
- #domain_hash_id_key_name ⇒ Object
- #domain_id ⇒ Object
- #domain_id=(domain_id) ⇒ Object
- #domain_key_name ⇒ Object
- #domain_nowww ⇒ Object
- #domain_nowww_hash ⇒ Object
- #domain_original_hash ⇒ Object
-
#hash_id_key_name ⇒ Object
def hash_id_key_name=(hash_id_key_name) @hash_id_key_name = hash_id_key_name end.
- #id ⇒ Object
- #id=(id) ⇒ Object
-
#initialize(url) ⇒ Uri
constructor
A new instance of Uri.
- #is_blacklisted ⇒ Object
- #is_blacklisted=(is_blacklisted) ⇒ Object
- #is_ignored ⇒ Object
- #is_ignored=(is_ignored) ⇒ Object
- #is_ignored_reason ⇒ Object
- #is_ignored_reason=(is_ignored_reason) ⇒ Object
- #is_relative?(uri = nil) ⇒ Boolean
- #is_valid? ⇒ Boolean
- #join(suburi) ⇒ Object
-
#key_name ⇒ Object
def key_name=(key_name) @key_name = key_name end.
- #request_id ⇒ Object
- #request_id=(request_id) ⇒ Object
- #request_key_name ⇒ Object
- #response_content_type ⇒ Object
- #response_content_type=(response_content_type) ⇒ Object
- #response_id ⇒ Object
- #response_id=(response_id) ⇒ Object
- #response_key_name ⇒ Object
- #response_size ⇒ Object
- #response_size=(response_size) ⇒ Object
- #ruri ⇒ Object
- #to_hash ⇒ Object
- #to_http ⇒ Object
- #to_s ⇒ Object
- #weight(ref_uri = nil) ⇒ Object
Constructor Details
#initialize(url) ⇒ Uri
Returns a new instance of Uri.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/sengi/uri.rb', line 12 def initialize(url) @uri = nil @hash = nil @is_blacklisted = nil @is_ignored = nil @is_ignored_reason = 'nil' @hash_id_key_name = nil @id = nil @key_name = nil @domain_nowww = nil @domain_nowww_hash = nil @domain_original_hash = nil @domain_hash_id_key_name = nil @domain_id = nil @domain_key_name = nil @request_id = nil @request_key_name = nil @response_id = nil @response_key_name = nil @response_size = 0 @response_content_type = '' begin @uri = URI(url) rescue Exception => e @uri = nil end validate if is_valid? append_slash host_downcase remove_fragment domain_setup @uri_class = @uri.class @hash = Digest::SHA256.hexdigest(to_s) @hash_id_key_name = "urls:id:#{@hash}" end end |
Instance Method Details
#domain_hash_id_key_name ⇒ Object
122 123 124 |
# File 'lib/sengi/uri.rb', line 122 def domain_hash_id_key_name @domain_hash_id_key_name end |
#domain_id ⇒ Object
131 132 133 |
# File 'lib/sengi/uri.rb', line 131 def domain_id @domain_id end |
#domain_id=(domain_id) ⇒ Object
126 127 128 129 |
# File 'lib/sengi/uri.rb', line 126 def domain_id=(domain_id) @domain_id = domain_id @domain_key_name = "domains:#{@domain_id}" end |
#domain_key_name ⇒ Object
135 136 137 |
# File 'lib/sengi/uri.rb', line 135 def domain_key_name @domain_key_name end |
#domain_nowww ⇒ Object
110 111 112 |
# File 'lib/sengi/uri.rb', line 110 def domain_nowww @domain_nowww end |
#domain_nowww_hash ⇒ Object
114 115 116 |
# File 'lib/sengi/uri.rb', line 114 def domain_nowww_hash @domain_nowww_hash end |
#domain_original_hash ⇒ Object
118 119 120 |
# File 'lib/sengi/uri.rb', line 118 def domain_original_hash @domain_original_hash end |
#hash_id_key_name ⇒ Object
def hash_id_key_name=(hash_id_key_name) @hash_id_key_name = hash_id_key_name end
89 90 91 |
# File 'lib/sengi/uri.rb', line 89 def hash_id_key_name @hash_id_key_name end |
#id ⇒ Object
98 99 100 |
# File 'lib/sengi/uri.rb', line 98 def id @id end |
#id=(id) ⇒ Object
93 94 95 96 |
# File 'lib/sengi/uri.rb', line 93 def id=(id) @id = id @key_name = "urls:#{@id}" end |
#is_blacklisted ⇒ Object
65 66 67 |
# File 'lib/sengi/uri.rb', line 65 def is_blacklisted @is_blacklisted end |
#is_blacklisted=(is_blacklisted) ⇒ Object
61 62 63 |
# File 'lib/sengi/uri.rb', line 61 def is_blacklisted=(is_blacklisted) @is_blacklisted = is_blacklisted end |
#is_ignored ⇒ Object
73 74 75 |
# File 'lib/sengi/uri.rb', line 73 def is_ignored @is_ignored end |
#is_ignored=(is_ignored) ⇒ Object
69 70 71 |
# File 'lib/sengi/uri.rb', line 69 def is_ignored=(is_ignored) @is_ignored = is_ignored end |
#is_ignored_reason ⇒ Object
81 82 83 |
# File 'lib/sengi/uri.rb', line 81 def is_ignored_reason @is_ignored_reason end |
#is_ignored_reason=(is_ignored_reason) ⇒ Object
77 78 79 |
# File 'lib/sengi/uri.rb', line 77 def is_ignored_reason=(is_ignored_reason) @is_ignored_reason = is_ignored_reason end |
#is_relative?(uri = nil) ⇒ Boolean
233 234 235 236 |
# File 'lib/sengi/uri.rb', line 233 def is_relative?(uri = nil) @uri_class == URI::Generic || (!uri.nil? && uri.ruri.host == @uri.host) end |
#is_valid? ⇒ Boolean
53 54 55 |
# File 'lib/sengi/uri.rb', line 53 def is_valid? !@uri.nil? end |
#join(suburi) ⇒ Object
229 230 231 |
# File 'lib/sengi/uri.rb', line 229 def join(suburi) self.class.new(URI.join(@uri, suburi.ruri).to_s) end |
#key_name ⇒ Object
def key_name=(key_name) @key_name = key_name end
106 107 108 |
# File 'lib/sengi/uri.rb', line 106 def key_name @key_name end |
#request_id ⇒ Object
144 145 146 |
# File 'lib/sengi/uri.rb', line 144 def request_id @request_id end |
#request_id=(request_id) ⇒ Object
139 140 141 142 |
# File 'lib/sengi/uri.rb', line 139 def request_id=(request_id) @request_id = request_id @request_key_name = "requests:#{@request_id}" end |
#request_key_name ⇒ Object
148 149 150 |
# File 'lib/sengi/uri.rb', line 148 def request_key_name @request_key_name end |
#response_content_type ⇒ Object
177 178 179 |
# File 'lib/sengi/uri.rb', line 177 def response_content_type @response_content_type end |
#response_content_type=(response_content_type) ⇒ Object
173 174 175 |
# File 'lib/sengi/uri.rb', line 173 def response_content_type=(response_content_type) @response_content_type = response_content_type.to_s end |
#response_id ⇒ Object
157 158 159 |
# File 'lib/sengi/uri.rb', line 157 def response_id @response_id end |
#response_id=(response_id) ⇒ Object
152 153 154 155 |
# File 'lib/sengi/uri.rb', line 152 def response_id=(response_id) @response_id = response_id @response_key_name = "responses:#{@response_id}" end |
#response_key_name ⇒ Object
161 162 163 |
# File 'lib/sengi/uri.rb', line 161 def response_key_name @response_key_name end |
#response_size ⇒ Object
169 170 171 |
# File 'lib/sengi/uri.rb', line 169 def response_size @response_size end |
#response_size=(response_size) ⇒ Object
165 166 167 |
# File 'lib/sengi/uri.rb', line 165 def response_size=(response_size) @response_size = response_size.to_s end |
#ruri ⇒ Object
57 58 59 |
# File 'lib/sengi/uri.rb', line 57 def ruri @uri end |
#to_hash ⇒ Object
185 186 187 |
# File 'lib/sengi/uri.rb', line 185 def to_hash @hash end |
#to_http ⇒ Object
189 190 191 192 193 |
# File 'lib/sengi/uri.rb', line 189 def to_http http_uri = @uri.clone http_uri.scheme = 'http' http_uri end |
#to_s ⇒ Object
181 182 183 |
# File 'lib/sengi/uri.rb', line 181 def to_s "#{@uri}" end |
#weight(ref_uri = nil) ⇒ Object
195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/sengi/uri.rb', line 195 def weight(ref_uri = nil) is_subdomain = false if !@uri.host.nil? && !ref_uri.nil? && !ref_uri.ruri.host.nil? #puts "#{@uri.host}" #puts "#{ref_uri.ruri.host}" a_ss = @uri.host[ref_uri.ruri.host] #puts "a: '#{a_ss}'" if a_ss.nil? b_ss = ref_uri.ruri.host[@uri.host] #puts "b: '#{b_ss}'" if !b_ss.nil? is_subdomain = true end else is_subdomain = true end end if false elsif @uri_class == URI::Generic then return 100 elsif @uri_class == URI::HTTP if is_subdomain return 200 end return 250 elsif @uri_class == URI::HTTPS then return 290 end return 999 end |