Sha256: 19694f12c3709257329f81e6702550996f1da5860f1082f04359604b5948feb0

Contents?: true

Size: 406 Bytes

Versions: 6

Compression:

Stored size: 406 Bytes

Contents

module Rulz
  class Rule
    attr_accessor :proc
    
    def initialize(klass, proc)
      @proc = proc
      klass.instance_exec self do |rule| 
        @rulz_rules ||= []
        @rulz_rules << rule
      end
    end
    
    def apply!(receiver)
      Rulz::Evaluator::Rule.new(receiver, @proc).evaluate
    end
    
    def self.rules(klass)
      klass.instance_eval { @rulz_rules }
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rulz-1.0.5 lib/rulz/rule.rb
rulz-1.0.4 lib/rulz/rule.rb
rulz-1.0.3 lib/rulz/rule.rb
rulz-1.0.2 lib/rulz/rule.rb
rulz-1.0.1 lib/rulz/rule.rb
rulz-1.0.0 lib/rulz/rule.rb