Class: TheFox::Sengi::Uri

Inherits:
Object
  • Object
show all
Defined in:
lib/sengi/uri.rb

Constant Summary collapse

URI_CLASSES =
[URI::Generic, URI::HTTP, URI::HTTPS]

Instance Method Summary collapse

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_nameObject



122
123
124
# File 'lib/sengi/uri.rb', line 122

def domain_hash_id_key_name
	@domain_hash_id_key_name
end

#domain_idObject



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_nameObject



135
136
137
# File 'lib/sengi/uri.rb', line 135

def domain_key_name
	@domain_key_name
end

#domain_nowwwObject



110
111
112
# File 'lib/sengi/uri.rb', line 110

def domain_nowww
	@domain_nowww
end

#domain_nowww_hashObject



114
115
116
# File 'lib/sengi/uri.rb', line 114

def domain_nowww_hash
	@domain_nowww_hash
end

#domain_original_hashObject



118
119
120
# File 'lib/sengi/uri.rb', line 118

def domain_original_hash
	@domain_original_hash
end

#hash_id_key_nameObject

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

#idObject



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_blacklistedObject



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_ignoredObject



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_reasonObject



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

Returns:

  • (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

Returns:

  • (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_nameObject

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_idObject



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_nameObject



148
149
150
# File 'lib/sengi/uri.rb', line 148

def request_key_name
	@request_key_name
end

#response_content_typeObject



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_idObject



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_nameObject



161
162
163
# File 'lib/sengi/uri.rb', line 161

def response_key_name
	@response_key_name
end

#response_sizeObject



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

#ruriObject



57
58
59
# File 'lib/sengi/uri.rb', line 57

def ruri
	@uri
end

#to_hashObject



185
186
187
# File 'lib/sengi/uri.rb', line 185

def to_hash
	@hash
end

#to_httpObject



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_sObject



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