Sha256: 577969dd98abded18f7f0a23c11da3b11e1f5a6c085875e8c01528f1c220433c

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

module Pacer
  module Titan
    class Graph < PacerGraph
      
      # Use GraphQuery for index lookups, based on pacer-neo4j's code:
      private
      def indexed_route(element_type, filters, block)
        return super if search_manual_indices
        
        filters.graph = self
        filters.use_lookup!
        query = indexed_properties(element_type, filters)
        
        if query
          route = exact_query(query, element_type: element_type, extensions: filters.extensions, wrapper: filters.wrapper)
          
          filters.remove_property_keys key_indices(element_type)
          if filters.any?
            Pacer::Route.property_filter(route, filters, block)
          else
            route
          end
        elsif filters.route_modules.any?
          mod = filters.route_modules.shift
          Pacer::Route.property_filter(mod.route(self), filters, block)
        end
      end
            
      def indexed_properties(type, filters)
        filters.properties.select { |k, v| key_indices(type).include?(k) and not v.nil? }
      end
      
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pacer-titan-0.0.2-java lib/pacer-titan/graph.rb