class ActiveFedora::WithMetadata::DefaultMetadataClassFactory

Public Class Methods

build(parent, &block) click to toggle source
# File lib/active_fedora/with_metadata/default_metadata_class_factory.rb, line 10
def build(parent, &block)
  create_class(parent).tap do |resource_class|
    file_metadata_schemas.each do |schema|
      resource_class.apply_schema(schema, file_metadata_strategy)
    end
    resource_class.exec_block(&block) if block_given?
  end
end

Private Class Methods

create_class(parent_klass) click to toggle source

Make a subclass of MetadataNode named GeneratedMetadataSchema and set its parent_class attribute to have the value of the current class.

# File lib/active_fedora/with_metadata/default_metadata_class_factory.rb, line 23
def create_class(parent_klass)
  Class.new(metadata_base_class).tap do |klass|
    parent_klass.const_set(:GeneratedMetadataSchema, klass)
    klass.parent_class = parent_klass
  end
end