Method: Neo4j::ActiveNode::Labels.model_for_labels
- Defined in:
- lib/neo4j/active_node/labels.rb
.model_for_labels(labels) ⇒ Object
Finds an appropriate matching model given a set of labels which are assigned to a node
74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/neo4j/active_node/labels.rb', line 74 def self.model_for_labels(labels) labels.sort! return MODELS_FOR_LABELS_CACHE[labels] if MODELS_FOR_LABELS_CACHE[labels] models = WRAPPED_CLASSES.select do |model| (model.mapped_label_names - labels).empty? end MODELS_FOR_LABELS_CACHE[labels] = models.max_by do |model| (model.mapped_label_names & labels).size end end |