Curate is a Rails engine leveraging ProjectHydra and ProjectBlacklight components to deliver a foundation for an Institutional Repositories. It is released under the Apache 2 License
When you generate your new Rails application, you can use Curate's application template:
$ rails new my_curate_application -m https://raw.github.com/projecthydra-labs/curate/develop/lib/generators/curate/application_template.rb
Add the following line to your application's Gemfile:
gem 'curate'
And then execute:
$ bundle
$ rails generate curate
You may need to have the following installed ‡
‡ - Why "you may need"? Some of these are only optionally used in development and tests; But production will need it.
From the command line:
git clone https://github.com/projecthydra/curate.git ./path/to/local
Curate uses Jetty for development and testing. You could configure it to use an alternate Fedora and SOLR location, but that is an exercise for the reader. The hydra-jetty package should not be use for secure production installations
Install jetty, you should only need to do this once (unless you remove the ./jetty directory)
$ rake jetty:unzip
Inside the Curate directory (i.e. ./path/to/local
):
rake jetty:start
); It will take a bit to spin up jetty.rake regenerate
to build a clean app in ./spec/dummyrake spec
; The tests will take quite a while ‡‡‡ - A Rails engine requires a Rails application to run.
The dummy app is a generated application inside Curate in the ./spec/internal
directory
‡‡ - Slow tests are a big problem and we are working on speeding them up, but its complicated.
In some cases you want to know the results of a single test. Here's how you do it.
rake jetty:start
); It will take a bit to spin up jetty.rake regenerate
to build a clean app in ./spec/dummyBUNDLE_GEMFILE=spec/internal/Gemfile bundle exec rspec path/to/spec.rb:LINE
‡‡ - With Curate being an Engine we need to point to the Dummy Application's Gemfile.
In full Rails applications you can normally run the following rspec path/to/spec.rb:LINE
Zeus pre-loads your Rails app so that your normal development tasks such as console, server, generate, and specs/tests take less than one second. ‡
zeus start
zeus rake spec
for all tests; or zeus test path/to/spec.rb:LINE
for one‡ - Loading the environment to run your tests takes less than a second. So running an individual test will take less time.
If you are interested in helping us make Curate better, please take a look at our Contributing resources and guidelines.
Assuming you are wanting to work on your Curate-based application and make modifications to the Curate gem, follow these instructions.
Replace the following line in the Gemfile of your Curate-based application (see Starting a New Curate Based Application):
gem 'curate' ...
with
gem 'curate', path: './path/to/my/clone/of/curate'
More information about Gemfile management at Bundler.io
You can then do concurrent development on both your clone of the Curate gem and your Curate-based application.
NOTE: Any changes you make in the Curate gem will likely require you to restart your web-server.
For integration with CAS, refer: https://github.com/nbudin/devise_cas_authenticatable
For integration with LDAP, refer: https://github.com/cschiewek/devise_ldap_authenticatable
For integration with Shibboleth, refer: https://github.com/jgeorge300/devise_shibboleth_authenticatable
For integration with multiple authentication systems (and for twitter, facebook, etc.), consider using OmniAuth: https://github.com/intridea/omniauth
We are working on this and have more to come.