module RssFilter
Public Instance Methods
Source
# File lib/rss_filter.rb, line 31 def apply(items, link_filter:) filter = normalize_page_url(link_filter) return items if filter.nil? || filter.empty? items.select { |item| item_matches?(item, filter) } end
Source
# File lib/rss_filter.rb, line 21 def item_matches?(item, link_filter) filter = normalize_page_url(link_filter) return true if filter.nil? || filter.empty? needle = filter.downcase [item[:link], item[:guid]].map { |value| normalize_page_url(value).to_s.downcase }.any? do |haystack| !haystack.empty? && (haystack.include?(needle) || needle.include?(haystack)) end end
Source
# File lib/rss_filter.rb, line 14 def normalize_page_url(url) value = UrlLink.normalize_url(url) return nil unless UrlLink.valid_url?(value) value.chomp("/") end