Sha256: 1ae6e4e0be19a35b97dff344cf8101d123b7c2efe20f85967c321bf65b9a47d4

Contents?: true

Size: 556 Bytes

Versions: 3

Compression:

Stored size: 556 Bytes

Contents

require 'dry/logic/rule'

module Dry
  module Logic
    class Rule::Predicate < Rule
      def self.specialize(arity, curried, base = Predicate)
        super
      end

      def type
        :predicate
      end

      def name
        predicate.name
      end

      def to_s
        if args.size > 0
          "#{name}(#{args.map(&:inspect).join(', ')})"
        else
          "#{name}"
        end
      end

      def ast(input = Undefined)
        [type, [name, args_with_names(input)]]
      end
      alias_method :to_ast, :ast
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-logic-1.0.0 lib/dry/logic/rule/predicate.rb
dry-logic-0.6.1 lib/dry/logic/rule/predicate.rb
dry-logic-0.6.0 lib/dry/logic/rule/predicate.rb