Sha256: f2ee97501c549703a9ee31ae403024d927d8588a7f67eb8675f1a605427c54fd

Contents?: true

Size: 1.18 KB

Versions: 3

Compression:

Stored size: 1.18 KB

Contents

module Pacer
  module Routes
    module RouteOperations
      def is(value)
        if value.is_a? Symbol
          chain_route :filter => :property, :block => proc { |v| v.vars[value] == v }
        else
          chain_route({ :filter => :object, :value => value })
        end
      end

      def is_not(value)
        if value.is_a? Symbol
          chain_route :filter => :property, :block => proc { |v| v.vars[value] != v }
        else
          chain_route({ :filter => :object, :value => value, :negate => true })
        end
      end

      def compact
        is_not nil
      end
    end
  end

  module Filter
    module ObjectFilter
      import com.tinkerpop.pipes.filter.ObjectFilterPipe

      attr_accessor :value, :negate

      protected

      def attach_pipe(end_pipe)
        obj  = if value.respond_to?(:element) then value.element else value end
        pipe = ObjectFilterPipe.new(obj, negate ? Pacer::Pipes::NOT_EQUAL : Pacer::Pipes::EQUAL)
        pipe.set_starts end_pipe if end_pipe
        pipe
      end

      def inspect_string
        if negate
          "is_not(#{ value.inspect })"
        else
          "is(#{ value.inspect })"
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pacer-1.3.4-java lib/pacer/filter/object_filter.rb
pacer-1.3.3-java lib/pacer/filter/object_filter.rb
pacer-1.3.2-java lib/pacer/filter/object_filter.rb