class Filters::Util
Public Class Methods
apply_filters(uris, index, base_uri, filters)
click to toggle source
Public: Apply URI Filters
to a Hash.
uris - Set (Array|Hash) of URIs to be filtered. index - Current index base_uri - Base URI to test against filters - Filters
to reduce set of uris
Returns a filtered uris Hash
# File lib/sitemap/filters/filters.rb, line 68 def self.apply_filters(uris, index, base_uri, filters) # Clone filters so we retain the 'functional' style of no side-effects filters_clone = filters.clone # Check for terminating case if (!uris.nil? && uris.length > 0) if !filters_clone.nil? && filters_clone.length > 0 # Pop a filter and apply it recursively to the result of the next filter f = filters_clone.shift uris = apply_filters(uris, index, base_uri, filters_clone) uris = uris.select do |k,v| f.filter(index, k, base_uri) end end end uris end
create_absolute_uri(link, base_uri)
click to toggle source
Public: Create an absolute link provided a link and base URI.
# File lib/sitemap/filters/filters.rb, line 38 def self.create_absolute_uri(link, base_uri) link = Filters::Util.make_URI(link) base_uri = Filters::Util.make_URI(base_uri) # Remove path from base base_uri.path = '' # Append Path to base_uri if relative if !link.path.nil? && link.path.start_with?('/') return base_uri + link end return link end
get_all_filters()
click to toggle source
Public: Get all known filters
# File lib/sitemap/filters/filters.rb, line 56 def self.get_all_filters return [Filters::ValidURIFilter.new, Filters::LocalFilter.new, Filters::ResourcesFilter.new, Filters::URIFragmentFilter.new] end
make_URI(uri)
click to toggle source
Idempotently make a string a URI
# File lib/sitemap/filters/filters.rb, line 12 def self.make_URI(uri) begin if !uri.is_a? URI uri = URI::parse(uri) end uri rescue nil end end
remove_fragment_from_uri(uri)
click to toggle source
Public: Remove fragments from a URI
# File lib/sitemap/filters/filters.rb, line 26 def self.remove_fragment_from_uri(uri) parsed_href = Filters::Util.make_URI(uri) if parsed_href.nil? return nil end parsed_href.fragment = nil parsed_href.to_s end