class Matchd::Registry
Tthe dns pattern registry It basically delegates everything to a YAML::Store but handles the conversion of Regexp dns-patterns into YAML string keys and reverse.
Constants
- LoadError
Attributes
rules[R]
Public Class Methods
load(data, registry_file = nil)
click to toggle source
# File lib/matchd/registry.rb, line 40 def self.load(data, registry_file = nil) raise ParseError, registry_file unless data.is_a?(Hash) && data.key?("rules") rules = data["rules"] new(rules ? parse(rules) : []) end
load_file(registry_file)
click to toggle source
Loads a registry YAML file
# File lib/matchd/registry.rb, line 32 def self.load_file(registry_file) unless File.file?(registry_file) raise LoadError, "Registry file '#{registry_file}' does not exist" end load(YAML.load_file(registry_file), registry_file) end
new(rules)
click to toggle source
# File lib/matchd/registry.rb, line 24 def initialize(rules) raise ArgumentError unless rules.is_a?(Enumerable) @rules = rules end
parse(rules)
click to toggle source
Parses raw rule hash definitions (like those read from a YAML config) into `Matchd::Rule`s
@param rules [Array<Hash>] the raw rule definitions @return [Array<Matchd::Rule>]
# File lib/matchd/registry.rb, line 53 def self.parse(rules) rules = rules.is_a?(Array) ? rules : [rules] rules.map { |r| Matchd.Rule(r) } end
Public Instance Methods
each(&block)
click to toggle source
# File lib/matchd/registry.rb, line 58 def each(&block) rules.each(&block) if rules end
valid?()
click to toggle source
# File lib/matchd/registry.rb, line 62 def valid? none? { |r| r.is_a?(Matchd::Rule::Invalid) } end