class ActiveFedora::DefaultModelMapper

Create model classifiers for resources or solr documents

Attributes

classifier_class[R]
predicate[R]
solr_field[R]

Public Class Methods

new(classifier_class: ActiveFedora::ModelClassifier, solr_field: ActiveFedora::QueryResultBuilder::HAS_MODEL_SOLR_FIELD, predicate: ActiveFedora::RDF::Fcrepo::Model.hasModel) click to toggle source
# File lib/active_fedora/default_model_mapper.rb, line 6
def initialize(classifier_class: ActiveFedora::ModelClassifier, solr_field: ActiveFedora::QueryResultBuilder::HAS_MODEL_SOLR_FIELD, predicate: ActiveFedora::RDF::Fcrepo::Model.hasModel)
  @classifier_class = classifier_class
  @solr_field = solr_field
  @predicate = predicate
end

Public Instance Methods

classifier(resource) click to toggle source
# File lib/active_fedora/default_model_mapper.rb, line 12
def classifier(resource)
  models = if resource.respond_to? :graph
             resource.graph.query([nil, predicate, nil]).map { |rg| rg.object.to_s }
           elsif resource.respond_to? :[]
             resource[solr_field] || []
           else
             []
           end

  classifier_class.new(models)
end