class Lutaml::Model::Validation::Registry

validation runs.
code or category, and instantiate all registered rules for
Instance-based rule registry. Register rule classes, look up by

def all

def all
  @mutex.synchronize do
    @all ||= @rules.map(&:new)
  end
end

def auto_discover(dir, pattern: "**/*_rule.rb")

def auto_discover(dir, pattern: "**/*_rule.rb")
  Dir.glob(File.join(dir, pattern)).each { |path| require path }
end

def find(code)

def find(code)
  all.find { |r| r.code == code }
end

def for_category(category)

def for_category(category)
  all.select { |r| r.category == category }
end

def initialize

def initialize
  @rules = []
  @mutex = Mutex.new
  @all = nil
end

def register(rule_class)

def register(rule_class)
  @mutex.synchronize do
    return if @rules.include?(rule_class)
    @rules << rule_class
    @all = nil
  end
end

def reset!

def reset!
  @mutex.synchronize do
    @rules.clear
    @all = nil
  end
end

def rule_classes

def rule_classes
  @rules.dup
end

def size

def size
  @rules.size
end