ddr-models

A Rails engine providing Hydra and ActiveRecord models and common services for the Duke Digital Repository.

Gem Version Build Status Coverage Status Code Climate

Installation

Add to your application's Gemfile:

gem 'ddr-models'

and

bundle install

Configuration

ddr-models has several runtime dependencies that are independently configurable:

ddr-models configuration options:

  • Authentication/Authorization options are set on Ddr::Auth.

Additional configuration steps

User model

Include Ddr::Auth::User in app/models/user.rb and remove content inserted by Hydra, Blacklight and Devise generators:

class User
  include Ddr::Auth::User
  #
  # Remove content inserted by Hydra, Blacklight, or Devise generators --
  # it's provided by Ddr::Auth::User.
  #
  # include Blacklight::User
  # include Hydra::User
  # devise :database_authenticatable [...]
  #
  # ... as well as any methods.
  #
  # You can add custom methods for the app as needed.
  #
end

Ability class

The hydra-head generator may have created a class module at app/models/ability.rb like so:

class Ability
  include Hydra::Ability
end

Change the class like so:

class Ability < Ddr::Auth::Ability
  #
  # Ddr::Auth::Ability includes Hydra::PolicyAwareAbility
  # include Hydra::Ability
  #
  # Add custom methods here as needed to Ability.ability_logic:
  #
  # self.ability_logic += [:my_ability]
  #
  # def my_ability
  #   # whatever
  # end
  #
end

SolrDocument model

Include Ddr::Models::SolrDocument in app/models/solr_document.rb

class SolrDocument 

  include Blacklight::Solr::Document
  include Ddr::Models::SolrDocument

...

end

Migrations

Install the ddr-models migrations:

rake ddr_models:install:migrations

then

rake db:migrate db:test:prepare