module ActiveGraph::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/active_graph/node/node_wrapper.rb 20 def class_to_wrap(labels) 21 load_classes_from_labels(labels) 22 ActiveGraph::Node::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/active_graph/node/node_wrapper.rb 49 def association_model_namespace 50 ActiveGraph::Config.association_model_namespace_string 51 end
constant_for_label(label)
click to toggle source
# File lib/active_graph/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/active_graph/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/active_graph/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/active_graph/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