Sha256: 13fd659b9ff7e9d2413d9a745e5d15b9a902cd2379861cb7fc2dd414b45e50fd
Contents?: true
Size: 878 Bytes
Versions: 4
Compression:
Stored size: 878 Bytes
Contents
module Neo4j::ActiveRel # A container for ActiveRel's :inbound and :outbound methods. It provides lazy loading of nodes. class RelatedNode class InvalidParameterError < StandardError; end def initialize(node = nil) @node = valid_node_param?(node) ? node : (raise InvalidParameterError, 'RelatedNode must be initialized with either a node ID or node' ) end def == (obj) loaded if @node.is_a?(Fixnum) @node == obj end def loaded @node = @node.respond_to?(:neo_id) ? @node : Neo4j::Node.load(@node) end def loaded? @node.respond_to?(:neo_id) end def method_missing(*args, &block) loaded.send(*args, &block) end def class loaded.send(:class) end private def valid_node_param?(node) node.nil? || node.is_a?(Integer) || node.respond_to?(:neo_id) end end end
Version data entries
4 entries across 4 versions & 1 rubygems