Module: ActiveFedora::FedoraAttributes::ClassMethods

Defined in:
lib/active_fedora/fedora_attributes.rb

Instance Method Summary collapse

Instance Method Details

#resource_classObject

We make a unique class, because properties belong to a class. This keeps properties from different objects separate. Since the copy of properties can only happen once, we don’t want to invoke it until all properties have been defined.



59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/active_fedora/fedora_attributes.rb', line 59

def resource_class
  @generated_resource_class ||= begin
      klass = self.const_set(:GeneratedResourceSchema, Class.new(ActiveTriples::Resource))
      klass.configure active_triple_options
      klass.properties.merge(self.properties).each do |property, config|
        klass.property(config.term,
                       predicate: config.predicate,
                       class_name: config.class_name)
      end
      klass
  end
end