| Module | RDig::UrlFilters |
| In: |
lib/rdig/url_filters.rb
|
expands both href="/path/xyz.html" and href="affe.html" to full urls
# File lib/rdig/url_filters.rb, line 158
158: def UrlFilters.fix_relative_uri(document)
159: #return nil unless document.uri.scheme.nil? || document.uri.scheme =~ /^https?/i
160: ref = document.referring_uri
161: return document unless ref
162: uri = document.uri
163: uri.scheme = ref.scheme unless uri.scheme
164: uri.host = ref.host unless uri.host
165: uri.port = ref.port unless uri.port || ref.port==ref.default_port
166: uri.path = ref.path unless uri.path
167:
168: if uri.path !~ /^\//
169: ref_path = ref.path || '/'
170: ref_path << '/' if ref_path.empty?
171: uri.path = ref_path[0..ref_path.rindex('/')] + uri.path
172: end
173: return document
174: rescue
175: p document
176: p document.uri
177: end
# File lib/rdig/url_filters.rb, line 179
179: def UrlFilters.hostname_filter(document, include_hosts)
180: return document if include_hosts.include?(document.uri.host)
181: return nil
182: end
checks redirect count of the given document takes it out of the chain if number of redirections exceeds the max_redirects setting
# File lib/rdig/url_filters.rb, line 151
151: def UrlFilters.maximum_redirect_filter(document, max_redirects)
152: return nil if document.respond_to?(:redirections) && document.redirections > max_redirects
153: return document
154: end
# File lib/rdig/url_filters.rb, line 184
184: def UrlFilters.normalize_uri(document)
185: document.uri.fragment = nil
186: # document.uri.query = nil
187: # append index document if configured and path ends with a slash
188: if RDig.config.index_document && document.uri.path =~ /\/$/
189: document.uri.path << RDig.config.index_document
190: end
191: return document
192: end
# File lib/rdig/url_filters.rb, line 194
194: def UrlFilters.scheme_filter_file(document)
195: return document if (document.uri.scheme.nil? || document.uri.scheme =~ /^file$/i)
196: nil
197: end