class Embiggen::ShortenerList

Attributes

domains[R]

Public Class Methods

new(domains) click to toggle source
# File lib/embiggen/shortener_list.rb, line 11
def initialize(domains)
  @domains = Set.new(domains.map { |domain| host_pattern(domain) })
end

Public Instance Methods

+(other) click to toggle source
# File lib/embiggen/shortener_list.rb, line 19
def +(other)
  self.class.new(domains + other)
end
<<(domain) click to toggle source
# File lib/embiggen/shortener_list.rb, line 23
def <<(domain)
  domains << host_pattern(domain)

  self
end
delete(domain) click to toggle source
# File lib/embiggen/shortener_list.rb, line 29
def delete(domain)
  domains.delete(host_pattern(domain))
end
host_pattern(domain) click to toggle source
# File lib/embiggen/shortener_list.rb, line 35
def host_pattern(domain)
  /\b#{domain}\z/i
end
include?(uri) click to toggle source
# File lib/embiggen/shortener_list.rb, line 15
def include?(uri)
  domains.any? { |domain| uri.host =~ domain }
end