Class: ActiveFedora::DefaultModelMapper

Inherits:
Object
  • Object
show all
Defined in:
lib/active_fedora/default_model_mapper.rb

Overview

Create model classifiers for resources or solr documents

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(classifier_class: ActiveFedora::ModelClassifier, solr_field: ActiveFedora::QueryResultBuilder::HAS_MODEL_SOLR_FIELD, predicate: ActiveFedora::RDF::Fcrepo::Model.hasModel) ⇒ DefaultModelMapper

Returns a new instance of DefaultModelMapper.



6
7
8
9
10
# 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

Instance Attribute Details

#classifier_classObject (readonly)

Returns the value of attribute classifier_class.



4
5
6
# File 'lib/active_fedora/default_model_mapper.rb', line 4

def classifier_class
  @classifier_class
end

#predicateObject (readonly)

Returns the value of attribute predicate.



4
5
6
# File 'lib/active_fedora/default_model_mapper.rb', line 4

def predicate
  @predicate
end

#solr_fieldObject (readonly)

Returns the value of attribute solr_field.



4
5
6
# File 'lib/active_fedora/default_model_mapper.rb', line 4

def solr_field
  @solr_field
end

Instance Method Details

#classifier(resource) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# 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