Sha256: 207288548b8f7f6ee11144948b9336595004d8f960d62577590a8ee1d5d5f771
Contents?: true
Size: 963 Bytes
Versions: 11
Compression:
Stored size: 963 Bytes
Contents
require 'neo4j/core/relationship' wrapping_proc = proc do |relationship| Neo4j::RelWrapping.wrapper(relationship) end Neo4j::Driver::Types::Relationship.wrapper_callback(wrapping_proc) module Neo4j module RelWrapping class << self def wrapper(rel) rel.props.symbolize_keys! begin most_concrete_class = class_from_type(rel.rel_type).constantize return rel unless most_concrete_class < Neo4j::ActiveRel most_concrete_class.new rescue NameError => e raise e unless e.message =~ /(uninitialized|wrong) constant/ return rel end.tap do |wrapped_rel| wrapped_rel.init_on_load(rel, rel.start_node_id, rel.end_node_id, rel.type) end end def class_from_type(rel_type) Neo4j::ActiveRel::Types::WRAPPED_CLASSES[rel_type] || Neo4j::ActiveRel::Types::WRAPPED_CLASSES[rel_type] = rel_type.to_s.downcase.camelize end end end end
Version data entries
11 entries across 11 versions & 2 rubygems