benjaminoakes/maid

View on GitHub
lib/maid/rule_container.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Maid::RuleContainer
  include ::Maid::Tools
  attr_reader :rules

  # initialize_rules
  def initialize_rules(&block)
    @rules ||= []
    instance_exec(&block)
  end

  # Register a rule with a description and instructions (lambda function).
  def rule(description, &instructions)
    @rules << ::Maid::Rule.new(description, instructions, @maid || self)
  end

  # Follow all registered rules.
  def follow_rules(*args)
    @rules.each do |rule|
      @logger.info("Rule: #{rule.description}") unless @logger.nil?
      rule.follow(*args)
    end
  end
end