QueryFactory¶
Acts as a bridge between the node and rel models and Neo4j::Core::Query. If the object is persisted, it returns a query matching; otherwise, it returns a query creating it. This class does not execute queries, so it keeps no record of what identifiers have been set or what has happened in previous factories.
Constants¶
Methods¶
def base_query @base_query || Neo4j::Session.current.query end
#base_query=
def base_query=(query) return if query.blank? @base_query = query end
def self.create(graph_object, identifier) factory_for(graph_object).new(graph_object, identifier) end
def self.factory_for(graph_obj) case when graph_obj.respond_to?(:labels_for_create) NodeQueryFactory when graph_obj.respond_to?(:rel_type) RelQueryFactory else fail "Unable to find factory for #{graph_obj}" end end
def initialize(graph_object, identifier) @graph_object = graph_object @identifier = identifier.to_sym end
def query graph_object.persisted? ? match_query : create_query end