Sha256: d4fa1e24c2a4805d0760a9ee2b363c8e4a2cb87327296d428a26cd7039d75157

Contents?: true

Size: 520 Bytes

Versions: 1

Compression:

Stored size: 520 Bytes

Contents

module Rules
  module Evaluators
    class Evaluator
      attr_accessor :evaluation_method, :requires_rhs, :name

      def initialize(key)
        @name = key.to_s
        @requires_rhs = true
      end

      def evaluate(lhs, rhs = nil)
        raise 'Unknown evaluation method' unless evaluation_method
        requires_rhs? ? evaluation_method.call(lhs, rhs) : evaluation_method.call(lhs)
      end

      def requires_rhs?
        @requires_rhs
      end

      def to_s
        @name
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rules-0.0.1 lib/rules/evaluators/evaluator.rb