Build Status Version Dependencies Coverage Status

ActiveFedora is a Ruby gem for creating and managing objects in the Fedora Repository Architecture ( ActiveFedora is loosely based on “ActiveRecord” in Rails. Version 9.0+ works with Fedora 4 and prior versions work on Fedora 3.

Getting Help


The gem is hosted on rubygems.

gem install active-fedora

Getting Started

The Dive into Hydra gives you a brief tour through ActiveFedora’s features on the command line.


You can generate a model inheriting from ActiveFedora::Base.

rails generate active_fedora:model Book

Testing (this Gem)

In order to run the RSpec tests, you need to have a copy of the ActiveFedora source code, and then run bundle install in the source directory. Testing requires hydra-jetty, which contains version for Fedora and Solr. Setting up and maintaining hydra-jetty for the purposes of testing this gem is all accomplished via

git clone
cd /wherever/active_fedora/is
bundle install

Using the continuous integration server

You can test ActiveFedora using the same process as our continuous integration server. To do that, unzip a copy\ of hydra-jetty first. This includes copies of Fedora and Solr which are used during the testing process.

  rake jetty:unzip 

Once hydra-jetty is unzipped, the ci rake task will spin up jetty, import the fixtures, and run the tests for you.

  rake active_fedora:ci

Testing Manually

If you want to run the tests manually, follow these instructions.

You need to have a copy of hydra-jetty running. To do this, download a working copy of hydra-jetty, cd into its root and run

java -jar start.jar

Now you’re ready to run the tests. In the directory where active_fedora is installed, run

  rake spec

Predicate Mappings

ActiveFedora versions 2.2.1 and higher provides specialized control over the predicate mappings used by SemanticNode. In order to provide your own mappings, \ you must supply a predicate_mappings.yml in the same format as the config/predicate_mappings.yml file shipped with the ActiveFedora gem. Place the file in the same directory\ as your fedora.yml file and use the current method of initializing ActiveFedora:


If no predicate_mappings.yml file is found, ActiveFedora will use the default mappings.


Creator: Matt Zumwalt (MediaShelf)

Developers: Justin Coyne, McClain Looney & Eddie Shin (MediaShelf), Rick Johnson (Notre Dame)