Sha256: 4c3051366ab54a121dc0e956779963424b494d8d0d90756e8f0a3c9dcf440bb1

Contents?: true

Size: 451 Bytes

Versions: 9

Compression:

Stored size: 451 Bytes

Contents

class Predicate
  module Intersect
    include Expr

    def priority
      80
    end

    def identifier
      self[1]
    end

    def values
      self[2]
    end

    def free_variables
      @free_variables ||= identifier.free_variables
    end

    def constant_variables
      values.size == 1 ? free_variables : []
    end

    def evaluate(tuple)
      t_x = identifier.evaluate(tuple)
      t_x && !(t_x & values).empty?
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
predicate-2.2.1 lib/predicate/nodes/intersect.rb
predicate-2.2.0 lib/predicate/nodes/intersect.rb
predicate-2.1.0 lib/predicate/nodes/intersect.rb
predicate-2.0.1 lib/predicate/nodes/intersect.rb
predicate-2.0.0 lib/predicate/nodes/intersect.rb
predicate-1.3.4 lib/predicate/nodes/intersect.rb
predicate-1.3.3 lib/predicate/nodes/intersect.rb
predicate-1.3.2 lib/predicate/nodes/intersect.rb
predicate-1.3.1 lib/predicate/nodes/intersect.rb