README.md in curate-0.6.3 vs README.md in curate-0.6.4

- old
+ new

@@ -5,29 +5,26 @@ * [Starting a new Curate-based Rails application](#starting-a-new-curate-based-application) * [or install by hand](#or-install-by-hand) * [Developing and contributing for the Curate gem](#developing-and-contributing-for-the-curate-gem) * [Prerequisites](#prerequisites) - * [Clone the Curate repository](#clone-the-repo) + * [Clone the Curate repository](#clone-the-curate-repository) * [Jetty](#jetty) * [Running the specs](#running-the-specs) * [All of them](#all-of-them) * [Some of them](#some-of-them) * [With Zeus](#with-zeus) * [Contributing back](#contributing-back) - * [Coding Guidelines](#coding-guidelines) - * [Writing Your Code](#writing-your-code) - * [Ruby File Structure](#ruby-file-structure) - * [Source Control Guidelines](#source-control-guidelines) * [Working on Curate while working on my Application](#working-on-curate-while-working-on-my-application) +* [Integration with CAS, LDAP, Shibboleth](#integration-with-cas-ldap-shibboleth) * [Standing up your Curate-based Rails application in Production](#standing-up-your-curate-based-rails-application-in-production) # Starting a New Curate Based Application When you generate your new Rails application, you can use Curate's application template: ```bash -$ rails new my_curate_application -m https://raw.github.com/ndlib/curate/master/lib/generators/curate/application_template.rb +$ rails new my_curate_application -m https://raw.github.com/projecthydra/curate/master/lib/generators/curate/application_template.rb ``` ## Or Install By Hand Add the following line to your application's Gemfile: @@ -81,91 +78,47 @@ ### All of Them 1. Make sure jetty is running (`rake jetty:start`); It will take a bit to spin up jetty. 1. Make sure you have a dummy app ‡ - 1. Run `rake regenerate` build the to get a clean app ./spec/dummy + 1. Run `rake regenerate` to build a clean app in ./spec/dummy 1. Then run `rake spec`; The tests will take quite a while ‡‡ ‡ - A Rails engine requires a Rails application to run. -The dummy app is an generated application inside Curate in the `./spec/internal` directory +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. ### Some of Them In some cases you want to know the results of a single test. Here's how you do it. 1. Make sure jetty is running (`rake jetty:start`); It will take a bit to spin up jetty. 1. Make sure you have a dummy app ‡ - 1. Run `rake regenerate` build the to get a clean app ./spec/dummy + 1. Run `rake regenerate` to build a clean app in ./spec/dummy 1. Then run `BUNDLE_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` ### With Zeus -> [Zeus](https://github.com/burke/zeus) preloads your Rails app so that your normal development tasks such as console, server, generate, and specs/tests take less than one second. ‡ +> [Zeus](https://github.com/burke/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. ‡ 1. In terminal window #1 run `zeus start` 1. In terminal window #2, once Zeus is started: run `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. ## Contributing Back -There is an existing [CONTRIBUTING.md](./CONTRIBUTING.md) document which is currently under review. +If you are interested in helping us make Curate better, please take a look at our [Contributing resources and guidelines](./CONTRIBUTING.md). -### Coding Guidelines - -The [Ruby Style Guide][1] is an excellent resource for how to craft your Ruby code, in particular the [Naming section][2]. - -**Can I break these guidelines?** Yes. But you may need to convince the person merging your changes. - -#### Writing Your Code - -We are going to do our best to follow [Sandi Metz' Rules for Developers][3] - -> Here are the rules: -> -> * Classes can be no longer than one hundred lines of code. -> * Methods can be no longer than five lines of code. -> * Pass no more than four parameters into a method. Hash options are parameters. -> * Controllers can instantiate only one object. Therefore, views can only know about one instance variable and views should only send messages to that object (@object.collaborator.value is not allowed). - -#### Ruby File Structure - -* Use soft-tabs with a two space indent. -* Never leave trailing whitespace (unless it is meaningful in the language) -* End each file with a blank newline. -* Please do your best to keep lines to 80 characters or fewer. - -### Source Control Guidelines - -*This is a placeholder for things to come* - -[Processing JIRA issues with commit messages](https://confluence.atlassian.com/display/BITBUCKET/Processing+JIRA+issues+with+commit+messages) - -``` -First line is 50 characters or less - -Description of work done; wrap at 72 characters. - -HYDRASIR-123 #close Any comment to post to JIRA -``` - -Make sure your JIRA email matches your Git config email (`~/.gitconfig`) - -[1]:https://github.com/bbatsov/ruby-style-guide "Ruby Style Guide" -[2]:https://github.com/bbatsov/ruby-style-guide#naming "Ruby Style Guide - Naming" -[3]:http://robots.thoughtbot.com/post/50655960596/sandi-metz-rules-for-developers "Sandi Metz' Rules for Developers" - # Working on Curate while working on my Application Assuming you are wanting to work on your Curate-based application and make modifications to the Curate gem, follow these instructions. -Replace the folliwing line in the Gemfile of your Curate-based application (see [Starting a New Curate Based Application](#starting-a-new-curate-based-application)): +Replace the following line in the Gemfile of your Curate-based application (see [Starting a New Curate Based Application](#starting-a-new-curate-based-application)): ```ruby gem 'curate' ... ``` @@ -178,9 +131,19 @@ [More information about Gemfile management at Bundler.io](http://bundler.io/v1.5/gemfile.html) 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.** + +# Integration with CAS, LDAP, Shibboleth + +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 # Standing up your Curate-based Rails application in Production We are working on this and have more to come.