module Neo4j::NodeWrapping

Constants

CONSTANTS_FOR_LABELS_CACHE

Only load classes once for performance

Public Class Methods

class_to_wrap(labels) click to toggle source
   # File lib/neo4j/active_node/node_wrapper.rb
20 def class_to_wrap(labels)
21   load_classes_from_labels(labels)
22   Neo4j::ActiveNode::Labels.model_for_labels(labels).tap do |model_class|
23     populate_constants_for_labels_cache(model_class, labels)
24   end
25 end

Private Class Methods

association_model_namespace() click to toggle source
   # File lib/neo4j/active_node/node_wrapper.rb
49 def association_model_namespace
50   Neo4j::Config.association_model_namespace_string
51 end
constant_for_label(label) click to toggle source
   # File lib/neo4j/active_node/node_wrapper.rb
33 def constant_for_label(label)
34   CONSTANTS_FOR_LABELS_CACHE[label] || CONSTANTS_FOR_LABELS_CACHE[label] = constantized_label(label)
35 end
constantized_label(label) click to toggle source
   # File lib/neo4j/active_node/node_wrapper.rb
37 def constantized_label(label)
38   "#{association_model_namespace}::#{label}".constantize
39 rescue NameError, LoadError
40   nil
41 end
load_classes_from_labels(labels) click to toggle source
   # File lib/neo4j/active_node/node_wrapper.rb
29 def load_classes_from_labels(labels)
30   labels.each { |label| constant_for_label(label) }
31 end
populate_constants_for_labels_cache(model_class, labels) click to toggle source
   # File lib/neo4j/active_node/node_wrapper.rb
43 def populate_constants_for_labels_cache(model_class, labels)
44   labels.each do |label|
45     CONSTANTS_FOR_LABELS_CACHE[label] = model_class if CONSTANTS_FOR_LABELS_CACHE[label].nil?
46   end
47 end