Sha256: b3992edc6a34f0932ea6557686825e6bce368327a63cc46ad02e81c1f5fc8650

Contents?: true

Size: 1.01 KB

Versions: 87

Compression:

Stored size: 1.01 KB

Contents

module ActiveFedora
  ##
  # Implement the .apply_schema method from ActiveTriples to allow for
  # externally defined schemas to be put on an AF::Base object.
  module Schema
    extend ActiveSupport::Concern

    module ClassMethods
      # Applies a schema to an ActiveFedora::Base.
      # @note The default application strategy adds no indexing hints. You may
      #   want to implement a different strategy if you want to set values on the
      #   property reflection.
      # @param schema [ActiveTriples::Schema] The schema to apply.
      # @param strategy [#apply] The strategy to use for applying the schema.
      # @example Apply a schema and index everything as symbol.
      #   apply_schema MySchema, ActiveFedora::SchemaIndexingStrategy.new(
      #     ActiveFedora::GlobalIndexer.new(:symbol)
      #   )
      def apply_schema(schema, strategy = ActiveFedora::SchemaIndexingStrategy.new)
        schema.properties.each do |property|
          strategy.apply(self, property)
        end
      end
    end
  end
end

Version data entries

87 entries across 87 versions & 1 rubygems

Version Path
active-fedora-15.0.1 lib/active_fedora/schema.rb
active-fedora-15.0.0 lib/active_fedora/schema.rb
active-fedora-14.0.1 lib/active_fedora/schema.rb
active-fedora-14.0.0 lib/active_fedora/schema.rb
active-fedora-13.3.0 lib/active_fedora/schema.rb
active-fedora-12.2.4 lib/active_fedora/schema.rb
active-fedora-13.2.7 lib/active_fedora/schema.rb
active-fedora-13.2.5 lib/active_fedora/schema.rb
active-fedora-13.2.4 lib/active_fedora/schema.rb
active-fedora-12.2.3 lib/active_fedora/schema.rb
active-fedora-13.2.3 lib/active_fedora/schema.rb
active-fedora-13.2.2 lib/active_fedora/schema.rb
active-fedora-13.2.0 lib/active_fedora/schema.rb
active-fedora-13.1.3 lib/active_fedora/schema.rb
active-fedora-11.5.6 lib/active_fedora/schema.rb
active-fedora-12.2.2 lib/active_fedora/schema.rb
active-fedora-11.2.1 lib/active_fedora/schema.rb
active-fedora-12.2.1 lib/active_fedora/schema.rb
active-fedora-12.0.3 lib/active_fedora/schema.rb
active-fedora-11.5.5 lib/active_fedora/schema.rb