Sha256: 3dc01e476950736444abd1a35ae6b3ee12cbe07be02998b5311d36d8f0a5fe9c
Contents?: true
Size: 1.03 KB
Versions: 12
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true module Grumlin module Expressions class P class Predicate attr_reader :namespace, :name, :value, :type def initialize(namespace, name, value:, type: nil) @namespace = namespace @name = name @value = value @type = type end end class << self # TODO: support more predicates %i[eq neq].each do |predicate| define_method predicate do |*args| Predicate.new("P", predicate, value: args[0]) end end %i[within without].each do |predicate| define_method predicate do |*args| args = if args.count == 1 && args[0].is_a?(Array) args[0] elsif args.count == 1 && args[0].is_a?(Set) args[0].to_a else args.to_a end Predicate.new("P", predicate, value: args, type: "List") end end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems