Skip to content

Instantly share code, notes, and snippets.

@jsugarman
Created October 4, 2016 16:08
Show Gist options
  • Save jsugarman/59a3db4dca397de7874a845fb7a04700 to your computer and use it in GitHub Desktop.
Save jsugarman/59a3db4dca397de7874a845fb7a04700 to your computer and use it in GitHub Desktop.
require 'netaddr'
class IpAddressMatcher
def initialize(terms)
@cidrs = cidrs(terms)
end
def ===(other)
@cidrs.any? { |cidr| cidr.matches?(other) }
end
private
def cidrs(terms)
terms.split(';').map { |s| cidr(s) }
end
def cidr(term)
NetAddr::CIDR.create(term)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment