Sha256: 6ff3cea3579bd280b69964c017aa6ce50f9e5dff5fd2610e1f4dddb157e9892c

Contents?: true

Size: 1.21 KB

Versions: 22

Compression:

Stored size: 1.21 KB

Contents

module Neo4j
  module Wrapper

    # This method is used when loading Neo4j::Node objects
    #
    # Reads the <tt>_classname</tt> property and tries to load the ruby class.
    # The Neo4j::Core gem will use this method, because the following:
    #  Neo4j::Node.wrapper_proc=method(:wrapper)
    #
    # @param [Neo4j::Node, Neo4j:Relationship] entity the entity which might be wrapped
    # @return [Object] a Ruby class wrapping the given entity
    # @see Neo4j::Core::Wrapper.wrapper_proc=
    def wrapper(entity)
      return entity unless entity.property?(:_classname)
      existing_instance = Neo4j::IdentityMap.get(entity)
      return existing_instance if existing_instance
      new_instance = to_class(entity[:_classname])._load_wrapper(entity)
      Neo4j::IdentityMap.add(entity, new_instance)
      new_instance
    end

    # @param [String] class_name the name we want the Class for
    # @return [Class] the class corresponding to the given name
    def to_class(class_name)
      class_name.split("::").inject(Kernel) { |container, name| container.const_get(name.to_s) }
    end

    extend self

    Neo4j::Node.wrapper_proc=method(:wrapper)
    Neo4j::Relationship.wrapper_proc=method(:wrapper)


  end


end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
neo4j-wrapper-2.3.0-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.2.4-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.2.3-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.2.1-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.2.0-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.2.0.rc1-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.1.0-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.0.1-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.0.0-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.0.0.rc2-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-2.0.0.rc1-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.11-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.10-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.9-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.8-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.7-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.6-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.5-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.4-java lib/neo4j-wrapper/wrapper.rb
neo4j-wrapper-0.0.3-java lib/neo4j-wrapper/wrapper.rb