stash-merritt 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f0929e76df292579509bd760cc6906f3886b1474
4
- data.tar.gz: ddbafc67e4487606a13aee6116f0dad9e68371e8
3
+ metadata.gz: 46447b0a05d80b4e82864971bc91aba395e786ea
4
+ data.tar.gz: 0b191749296cf778f3fad1908b95a0cd13a6b93c
5
5
  SHA512:
6
- metadata.gz: 23e692e54ed88c08abdd8ec2b67c942913e4b37e10186a4b208714c06fe5becb56f32594944e5e49469052c0bd7e48361abeba2704df0f3eca5f25070fc9f6ee
7
- data.tar.gz: 8ef7aaa13b2fdd46602150e35feb45379ee1616a87b03f9d892bcf0521c26742efb0556037197028095039f71b488403b25a4282e3d52eea12610e498156a73a
6
+ metadata.gz: 5adf6893eeaa38f0ddaab555002bb521d3654d733053a1a71235a5f9b5dacf7103d03c44118d737942bb970e985eb72183b0681e6d852a09ccd08bdf0ba182fc
7
+ data.tar.gz: 4d38f341c4495e1394b549483582978c745d99d5b869dfdd75898163a795f9eda5890a5d4ddf697ddcbd762e1bd1ca004e5099caeb88f4a961d23a67c8aea29e
data/.gitignore CHANGED
@@ -1,3 +1,8 @@
1
+ #### Misc
2
+
3
+ Gemfile.lock
4
+ .rubocop_todo.yml
5
+
1
6
  #### joe made this: http://goel.io/joe
2
7
 
3
8
  #### ruby ####
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Stash::Merritt
2
2
 
3
- [![Build Status](https://travis-ci.org/CDLUC3/stash-merritt.svg?branch=master)](https://travis-ci.org/CDLUC3/stash-merritt)
4
- [![Code Climate](https://codeclimate.com/github/CDLUC3/stash-merritt.svg)](https://codeclimate.com/github/CDLUC3/stash-merritt)
3
+ [![Build Status](https://travis-ci.org/CDLUC3/stash-merritt.svg)](https://travis-ci.org/CDLUC3/stash-merritt)
4
+ [![Code Climate](https://codeclimate.com/github/CDLUC3/stash-merritt.svg)](https://codeclimate.com/github/CDLUC3/stash-merritt)
5
5
  [![Inline docs](http://inch-ci.org/github/CDLUC3/stash-merritt.svg)](http://inch-ci.org/github/CDLUC3/stash-merritt)
6
6
 
7
7
  Packaging and
@@ -12,27 +12,49 @@ deposit module for submitting
12
12
 
13
13
  ## Submission process
14
14
 
15
- 1. mint a new DOI with EZID, if not already present
16
- 1. generate:
17
- - Datacite XML, including DOI
18
- - Stash wrapper XML
19
- - Dublin Core metadata XML
20
- - DataONE manifest
21
- - `mrt-delete.txt`, if needed
22
- 1. create ZIP archive including:
23
- - Datacite XML
24
- - Stash wrapper XML
25
- - DublinCore XML
26
- - DataONE manifest
27
- - `mrt-delete.txt`, if present
28
- - all user-uploaded files
29
- 1. submit to SWORD
30
- 1. determine landing page URL based on DOI
31
- 1. submit Datacite XML and landing page URL to EZID
32
- 1. clean up temporary files
15
+ The `Stash::Merritt::SubmissionJob` class does the following:
16
+
17
+ 1. if no identifier is present, mint a new DOI with EZID
18
+ (using the [ezid-client](https://github.com/duke-libraries/ezid-client) gem)
19
+ and assign it to the resource
20
+ 1. generate a ZIP package containing:
21
+
22
+ | filename | purpose |
23
+ | -------- | ------- |
24
+ | `stash-wrapper.xml` | [Stash wrapper](https://github.com/CDLUC3/stash-wrapper), including [Datacite 4](https://schema.datacite.org/meta/kernel-4.0/) XML |
25
+ | `mrt-datacite.xml` | [Datacite 3](https://schema.datacite.org/meta/kernel-3/) XML, for Merritt internal use. |
26
+ | `mrt-oaidc.xml` | Dublin Core metadata, packaged in [oai_dc](https://www.openarchives.org/OAI/openarchivesprotocol.html#dublincore) format for [OAI-PMH](https://www.openarchives.org/OAI/openarchivesprotocol.html) compliance |
27
+ | `mrt-dataone-manifest.txt` | legacy [DataONE manifest](http://cdluc3.github.io/dash/release-criteria/)* |
28
+ | `mrt-delete.txt` | list of files to be deleted in this version, if any |
29
+
30
+ \* Note that the DataONE manifest is generated for all tenants, not just DataONE.
31
+
32
+ 1. using the [stash-sword](https://github.com/CDLUC3/stash-sword) gem, submit the
33
+ package to Merritt via [SWORD 2.0](http://swordapp.github.io/SWORDv2-Profile/SWORDProfile.html);
34
+ update the `download_uri` and `update_uri` of the resource if not present
35
+ 1. set the resource `version_zipfile`
36
+ 1. again via [ezid-client](https://github.com/duke-libraries/ezid-client), update the
37
+ target URL (landing page) and Datacite 3 metadata for the DOI
38
+ 1. clean up uploads and other temporary files
39
+ 1. returns a successful `SubmissionResult`
40
+
41
+ If at any point one of these steps fails, the job exits with a failed `SubmissionResult`.
33
42
 
34
43
  ## Development
35
44
 
45
+ ### Dependencies
46
+
47
+ stash-merritt expects to find the [stash_engine](https://github.com/CDLUC3/stash_engine) and
48
+ [stash_datacite](https://github.com/CDLUC3/stash_datacite) source locally under
49
+ a sister directory `stash_engines`:
50
+
51
+ ```
52
+ ┬── stash-merritt
53
+ └── stash_engines
54
+ ├── stash_datacite
55
+ └── stash_engine
56
+ ```
57
+
36
58
  ### Test database creation
37
59
 
38
60
  For compatibility with Travis, you need
@@ -47,7 +69,7 @@ This should look something like:
47
69
  ```
48
70
  $ mysql -u root
49
71
  mysql> create user 'travis'@'localhost';
50
- mysql> create database 'stash_merritt' character set UTF8mb4 collate utf8mb4_bin;
51
- mysql> use 'stash_merritt';
52
- mysql> grant all on 'stash_merritt'.* to 'travis'@'localhost';
72
+ mysql> create database stash_merritt character set UTF8mb4 collate utf8mb4_bin;
73
+ mysql> use stash_merritt;
74
+ mysql> grant all on stash_merritt.* to 'travis'@'localhost';
53
75
  ```
@@ -4,7 +4,7 @@ module Stash
4
4
  NAME = 'stash-merritt'.freeze
5
5
 
6
6
  # The version of this gem
7
- VERSION = '0.1.0'.freeze
7
+ VERSION = '0.1.1'.freeze
8
8
 
9
9
  # The copyright notice for this gem
10
10
  COPYRIGHT = 'Copyright (c) 2017 The Regents of the University of California'.freeze
@@ -40,7 +40,7 @@ module Stash
40
40
  zipfile_path = File.join(workdir, "#{resource_id}_archive.zip")
41
41
  Zip::File.open(zipfile_path, Zip::File::CREATE) do |zipfile|
42
42
  builders.each { |builder| write_to_zipfile(zipfile, builder) }
43
- uploads.each { |upload| add_to_zipfile(zipfile, upload) }
43
+ new_uploads.each { |upload| add_to_zipfile(zipfile, upload) }
44
44
  end
45
45
  zipfile_path
46
46
  end
@@ -63,32 +63,18 @@ module Stash
63
63
 
64
64
  def add_to_zipfile(zipfile, upload)
65
65
  path = File.join(resource.upload_dir, upload.upload_file_name)
66
- raise ArgumentError("Upload file '#{upload.upload_file_name}' not found in directory #{resource.upload_dir}") unless File.exist?(path)
66
+ raise ArgumentError, "Upload file '#{upload.upload_file_name}' not found in directory #{resource.upload_dir}" unless File.exist?(path)
67
67
  zipfile.add(upload.upload_file_name, path)
68
68
  end
69
69
 
70
70
  def builders
71
- [stash_wrapper_builder, mrt_datacite_builder, mrt_oaidc_builder, mrt_dataone_manifest_builder, mrt_delete_builder]
72
- end
73
-
74
- def stash_wrapper_builder
75
- @stash_wrapper_builder ||= StashWrapperBuilder.new(dcs_resource: dc4_resource, version_number: version_number, uploads: uploads)
76
- end
77
-
78
- def mrt_datacite_builder
79
- @mrt_datacite_builder ||= MerrittDataciteBuilder.new(datacite_xml_factory)
80
- end
81
-
82
- def mrt_oaidc_builder
83
- @mrt_oaidc_builder ||= MerrittOAIDCBuilder.new(resource_id: resource_id)
84
- end
85
-
86
- def mrt_dataone_manifest_builder
87
- @mrt_dataone_manifest_builder ||= DataONEManifestBuilder.new(uploads)
88
- end
89
-
90
- def mrt_delete_builder
91
- @mrt_delete_builder ||= MerrittDeleteBuilder.new(resource_id: resource_id)
71
+ @builders ||= [
72
+ StashWrapperBuilder.new(dcs_resource: dc4_resource, version_number: version_number, uploads: uploads),
73
+ MerrittDataciteBuilder.new(datacite_xml_factory),
74
+ MerrittOAIDCBuilder.new(resource_id: resource_id),
75
+ DataONEManifestBuilder.new(uploads),
76
+ MerrittDeleteBuilder.new(resource_id: resource_id)
77
+ ]
92
78
  end
93
79
 
94
80
  def total_size_bytes
@@ -103,6 +89,10 @@ module Stash
103
89
  resource.current_file_uploads
104
90
  end
105
91
 
92
+ def new_uploads
93
+ resource.new_file_uploads
94
+ end
95
+
106
96
  def datacite_xml_factory
107
97
  @datacite_xml_factory ||= Datacite::Mapping::DataciteXMLFactory.new(doi_value: resource.identifier_value, se_resource_id: resource_id, total_size_bytes: total_size_bytes, version: version_number)
108
98
  end
@@ -71,34 +71,65 @@ module Stash
71
71
  end
72
72
 
73
73
  describe :submit! do
74
- it 'mints an ID if needed' do
75
- expect(resource).to receive(:identifier).and_return(nil)
76
- expect(ezid_helper).to receive(:mint_id).and_return('doi:10.123/456')
77
- expect(resource).to receive(:ensure_identifier).with('doi:10.123/456')
78
- job.submit!
79
- end
74
+ describe 'create' do
75
+ it 'mints an ID if needed' do
76
+ expect(resource).to receive(:identifier).and_return(nil)
77
+ expect(ezid_helper).to receive(:mint_id).and_return('doi:10.123/456')
78
+ expect(resource).to receive(:ensure_identifier).with('doi:10.123/456')
79
+ job.submit!
80
+ end
80
81
 
81
- it 'submits the package' do
82
- expect(sword_helper).to receive(:submit!)
83
- job.submit!
84
- end
82
+ it 'submits the package' do
83
+ expect(sword_helper).to receive(:submit!)
84
+ job.submit!
85
+ end
85
86
 
86
- it 'updates the metadata' do
87
- dc3_xml = '<resource/>'
88
- expect(package).to receive(:dc3_xml).and_return(dc3_xml)
89
- expect(ezid_helper).to receive(:update_metadata).with(dc3_xml: dc3_xml, landing_page_url: landing_page_url)
90
- job.submit!
91
- end
87
+ it 'updates the metadata' do
88
+ dc3_xml = '<resource/>'
89
+ expect(package).to receive(:dc3_xml).and_return(dc3_xml)
90
+ expect(ezid_helper).to receive(:update_metadata).with(dc3_xml: dc3_xml, landing_page_url: landing_page_url)
91
+ job.submit!
92
+ end
92
93
 
93
- it 'cleans up the package' do
94
- expect(package).to receive(:cleanup!)
95
- job.submit!
94
+ it 'cleans up the package' do
95
+ expect(package).to receive(:cleanup!)
96
+ job.submit!
97
+ end
98
+
99
+ it 'returns a result' do
100
+ result = job.submit!
101
+ expect(result).to be_a(Stash::Repo::SubmissionResult)
102
+ expect(result.success?).to be_truthy
103
+ end
96
104
  end
97
105
 
98
- it 'returns a result' do
99
- result = job.submit!
100
- expect(result).to be_a(Stash::Repo::SubmissionResult)
101
- expect(result.success?).to be_truthy
106
+ describe 'update' do
107
+ before(:each) do
108
+ expect(resource).to receive(:update_uri).and_return('http://example.sword.edu/doi:10.123/456')
109
+ end
110
+
111
+ it 'submits the package' do
112
+ expect(sword_helper).to receive(:submit!)
113
+ job.submit!
114
+ end
115
+
116
+ it 'updates the metadata' do
117
+ dc3_xml = '<resource/>'
118
+ expect(package).to receive(:dc3_xml).and_return(dc3_xml)
119
+ expect(ezid_helper).to receive(:update_metadata).with(dc3_xml: dc3_xml, landing_page_url: landing_page_url)
120
+ job.submit!
121
+ end
122
+
123
+ it 'cleans up the package' do
124
+ expect(package).to receive(:cleanup!)
125
+ job.submit!
126
+ end
127
+
128
+ it 'returns a result' do
129
+ result = job.submit!
130
+ expect(result).to be_a(Stash::Repo::SubmissionResult)
131
+ expect(result.success?).to be_truthy
132
+ end
102
133
  end
103
134
 
104
135
  describe 'error handling' do
data/stash-merritt.iml CHANGED
@@ -3,6 +3,7 @@
3
3
  <component name="NewModuleRootManager" inherit-compiler-output="true">
4
4
  <exclude-output />
5
5
  <content url="file://$MODULE_DIR$" />
6
+ <content url="file://$MODULE_DIR$/../stash_engines/stash_datacite" />
6
7
  <content url="file://$MODULE_DIR$/../stash_engines/stash_engine" />
7
8
  <orderEntry type="jdk" jdkName="ruby-2.2.5-p319" jdkType="RUBY_SDK" />
8
9
  <orderEntry type="sourceFolder" forTests="false" />
@@ -41,7 +42,7 @@
41
42
  <orderEntry type="library" scope="PROVIDED" name="arel (v6.0.4, ruby-2.2.5-p319) [gem]" level="application" />
42
43
  <orderEntry type="library" scope="PROVIDED" name="ast (v2.3.0, ruby-2.2.5-p319) [gem]" level="application" />
43
44
  <orderEntry type="library" scope="PROVIDED" name="builder (v3.2.3, ruby-2.2.5-p319) [gem]" level="application" />
44
- <orderEntry type="library" scope="PROVIDED" name="bundler (v1.13.7, ruby-2.2.5-p319) [gem]" level="application" />
45
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.14.3, ruby-2.2.5-p319) [gem]" level="application" />
45
46
  <orderEntry type="library" scope="PROVIDED" name="carrierwave (v0.10.0, ruby-2.2.5-p319) [gem]" level="application" />
46
47
  <orderEntry type="library" scope="PROVIDED" name="colorize (v0.8.1, ruby-2.2.5-p319) [gem]" level="application" />
47
48
  <orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.0.4, ruby-2.2.5-p319) [gem]" level="application" />
@@ -92,7 +93,7 @@
92
93
  <orderEntry type="library" scope="PROVIDED" name="omniauth-oauth2 (v1.3.1, ruby-2.2.5-p319) [gem]" level="application" />
93
94
  <orderEntry type="library" scope="PROVIDED" name="omniauth-orcid (v1.0.38, ruby-2.2.5-p319) [gem]" level="application" />
94
95
  <orderEntry type="library" scope="PROVIDED" name="omniauth-shibboleth (v1.2.1, ruby-2.2.5-p319) [gem]" level="application" />
95
- <orderEntry type="library" scope="PROVIDED" name="parser (v2.3.3.1, ruby-2.2.5-p319) [gem]" level="application" />
96
+ <orderEntry type="library" scope="PROVIDED" name="parser (v2.4.0.0, ruby-2.2.5-p319) [gem]" level="application" />
96
97
  <orderEntry type="library" scope="PROVIDED" name="powerpack (v0.1.1, ruby-2.2.5-p319) [gem]" level="application" />
97
98
  <orderEntry type="library" scope="PROVIDED" name="public_suffix (v2.0.5, ruby-2.2.5-p319) [gem]" level="application" />
98
99
  <orderEntry type="library" scope="PROVIDED" name="rack (v1.6.5, ruby-2.2.5-p319) [gem]" level="application" />
@@ -114,7 +115,7 @@
114
115
  <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.5.0, ruby-2.2.5-p319) [gem]" level="application" />
115
116
  <orderEntry type="library" scope="PROVIDED" name="rubocop (v0.47.1, ruby-2.2.5-p319) [gem]" level="application" />
116
117
  <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.8.1, ruby-2.2.5-p319) [gem]" level="application" />
117
- <orderEntry type="library" scope="PROVIDED" name="rubyzip (v1.2.0, ruby-2.2.5-p319) [gem]" level="application" />
118
+ <orderEntry type="library" scope="PROVIDED" name="rubyzip (v1.2.1, ruby-2.2.5-p319) [gem]" level="application" />
118
119
  <orderEntry type="library" scope="PROVIDED" name="safe_yaml (v1.0.4, ruby-2.2.5-p319) [gem]" level="application" />
119
120
  <orderEntry type="library" scope="PROVIDED" name="sass (v3.4.23, ruby-2.2.5-p319) [gem]" level="application" />
120
121
  <orderEntry type="library" scope="PROVIDED" name="simplecov (v0.9.2, ruby-2.2.5-p319) [gem]" level="application" />
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stash-merritt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Moles
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-03 00:00:00.000000000 Z
11
+ date: 2017-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -246,7 +246,6 @@ files:
246
246
  - ".ruby-version"
247
247
  - ".travis.yml"
248
248
  - Gemfile
249
- - Gemfile.lock
250
249
  - LICENSE.md
251
250
  - README.md
252
251
  - Rakefile
@@ -289,7 +288,7 @@ files:
289
288
  - stash-merritt.iml
290
289
  - stash-merritt.ipr
291
290
  - travis-local-deps.sh
292
- homepage: http://github.com/stash-merritt
291
+ homepage: http://github.com/CDLUC3/stash-merritt
293
292
  licenses:
294
293
  - MIT
295
294
  metadata: {}
data/Gemfile.lock DELETED
@@ -1,326 +0,0 @@
1
- PATH
2
- remote: ../stash_engines/stash_datacite
3
- specs:
4
- stash_datacite (0.0.5)
5
- datacite-mapping (~> 0.2, >= 0.2.5)
6
- kaminari
7
- leaflet-rails
8
- rails (~> 4.2.4)
9
- responders (~> 2.0)
10
- rubyzip (>= 1.0.0)
11
- stash-wrapper (~> 0.1, >= 0.1.11.1)
12
- stash_ezid_datacite (~> 0.1)
13
-
14
- PATH
15
- remote: ../stash_engines/stash_engine
16
- specs:
17
- stash_engine (0.0.17)
18
- amoeba (~> 3.0.0)
19
- carrierwave (~> 0.10.0)
20
- concurrent-ruby (~> 1.0)
21
- filesize (~> 0.1.1)
22
- font-awesome-rails
23
- jquery-fileupload-rails (~> 0.4.6)
24
- jquery-rails
25
- jquery-turbolinks
26
- jquery-ui-rails
27
- kaminari
28
- omniauth (~> 1.2.2)
29
- omniauth-google-oauth2 (~> 0.2.9)
30
- omniauth-orcid (~> 1.0.21)
31
- omniauth-shibboleth (~> 1.2.1)
32
- rails (~> 4.2.4)
33
- redcarpet (~> 3.3)
34
- stash-sword (~> 0.1, >= 0.1.5)
35
- wicked_pdf (~> 1.1.0)
36
- wkhtmltopdf-binary (~> 0.12.3.1)
37
-
38
- PATH
39
- remote: .
40
- specs:
41
- stash-merritt (0.0.1)
42
- rubyzip (~> 1.1)
43
- stash_datacite
44
- stash_engine
45
- stash_ezid_datacite (~> 0.1)
46
-
47
- GEM
48
- remote: https://rubygems.org/
49
- specs:
50
- actionmailer (4.2.7.1)
51
- actionpack (= 4.2.7.1)
52
- actionview (= 4.2.7.1)
53
- activejob (= 4.2.7.1)
54
- mail (~> 2.5, >= 2.5.4)
55
- rails-dom-testing (~> 1.0, >= 1.0.5)
56
- actionpack (4.2.7.1)
57
- actionview (= 4.2.7.1)
58
- activesupport (= 4.2.7.1)
59
- rack (~> 1.6)
60
- rack-test (~> 0.6.2)
61
- rails-dom-testing (~> 1.0, >= 1.0.5)
62
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
63
- actionview (4.2.7.1)
64
- activesupport (= 4.2.7.1)
65
- builder (~> 3.1)
66
- erubis (~> 2.7.0)
67
- rails-dom-testing (~> 1.0, >= 1.0.5)
68
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
69
- activejob (4.2.7.1)
70
- activesupport (= 4.2.7.1)
71
- globalid (>= 0.3.0)
72
- activemodel (4.2.7.1)
73
- activesupport (= 4.2.7.1)
74
- builder (~> 3.1)
75
- activerecord (4.2.7.1)
76
- activemodel (= 4.2.7.1)
77
- activesupport (= 4.2.7.1)
78
- arel (~> 6.0)
79
- activesupport (4.2.7.1)
80
- i18n (~> 0.7)
81
- json (~> 1.7, >= 1.7.7)
82
- minitest (~> 5.1)
83
- thread_safe (~> 0.3, >= 0.3.4)
84
- tzinfo (~> 1.1)
85
- addressable (2.5.0)
86
- public_suffix (~> 2.0, >= 2.0.2)
87
- amoeba (3.0.0)
88
- activerecord (>= 3.2.6)
89
- arel (6.0.4)
90
- ast (2.3.0)
91
- builder (3.2.3)
92
- carrierwave (0.10.0)
93
- activemodel (>= 3.2.0)
94
- activesupport (>= 3.2.0)
95
- json (>= 1.7)
96
- mime-types (>= 1.16)
97
- colorize (0.8.1)
98
- concurrent-ruby (1.0.4)
99
- crack (0.4.3)
100
- safe_yaml (~> 1.0.0)
101
- database_cleaner (1.5.3)
102
- datacite-mapping (0.2.5)
103
- typesafe_enum (~> 0.1, >= 0.1.7)
104
- xml-mapping_extensions (~> 0.4, >= 0.4.7)
105
- diff-lcs (1.3)
106
- diffy (3.1.0)
107
- docile (1.1.5)
108
- domain_name (0.5.20161129)
109
- unf (>= 0.0.5, < 1.0.0)
110
- equivalent-xml (0.6.0)
111
- nokogiri (>= 1.4.3)
112
- erubis (2.7.0)
113
- ezid-client (1.5.0)
114
- hashie (~> 3.4, >= 3.4.3)
115
- faraday (0.10.1)
116
- multipart-post (>= 1.2, < 3)
117
- filesize (0.1.1)
118
- font-awesome-rails (4.7.0.1)
119
- railties (>= 3.2, < 5.1)
120
- globalid (0.3.7)
121
- activesupport (>= 4.1.0)
122
- hashdiff (0.3.2)
123
- hashie (3.5.1)
124
- hirb (0.7.3)
125
- http-cookie (1.0.3)
126
- domain_name (~> 0.5)
127
- i18n (0.8.0)
128
- jquery-fileupload-rails (0.4.7)
129
- actionpack (>= 3.1)
130
- railties (>= 3.1)
131
- sass (>= 3.2)
132
- jquery-rails (4.2.2)
133
- rails-dom-testing (>= 1, < 3)
134
- railties (>= 4.2.0)
135
- thor (>= 0.14, < 2.0)
136
- jquery-turbolinks (2.1.0)
137
- railties (>= 3.1.0)
138
- turbolinks
139
- jquery-ui-rails (6.0.1)
140
- railties (>= 3.2.16)
141
- json (1.8.6)
142
- jwt (1.5.6)
143
- kaminari (1.0.1)
144
- activesupport (>= 4.1.0)
145
- kaminari-actionview (= 1.0.1)
146
- kaminari-activerecord (= 1.0.1)
147
- kaminari-core (= 1.0.1)
148
- kaminari-actionview (1.0.1)
149
- actionview
150
- kaminari-core (= 1.0.1)
151
- kaminari-activerecord (1.0.1)
152
- activerecord
153
- kaminari-core (= 1.0.1)
154
- kaminari-core (1.0.1)
155
- leaflet-rails (1.0.2)
156
- loofah (2.0.3)
157
- nokogiri (>= 1.5.9)
158
- mail (2.6.4)
159
- mime-types (>= 1.16, < 4)
160
- mime-types (2.99.3)
161
- mini_portile2 (2.1.0)
162
- minitest (5.10.1)
163
- multi_json (1.12.1)
164
- multi_xml (0.6.0)
165
- multipart-post (2.0.0)
166
- mysql2 (0.4.5)
167
- netrc (0.11.0)
168
- nokogiri (1.7.0.1)
169
- mini_portile2 (~> 2.1.0)
170
- oauth2 (1.3.0)
171
- faraday (>= 0.8, < 0.11)
172
- jwt (~> 1.0)
173
- multi_json (~> 1.3)
174
- multi_xml (~> 0.5)
175
- rack (>= 1.2, < 3)
176
- omniauth (1.2.2)
177
- hashie (>= 1.2, < 4)
178
- rack (~> 1.0)
179
- omniauth-google-oauth2 (0.2.10)
180
- addressable (~> 2.3)
181
- jwt (~> 1.0)
182
- multi_json (~> 1.3)
183
- omniauth (>= 1.1.1)
184
- omniauth-oauth2 (~> 1.3.1)
185
- omniauth-oauth2 (1.3.1)
186
- oauth2 (~> 1.0)
187
- omniauth (~> 1.2)
188
- omniauth-orcid (1.0.38)
189
- omniauth-oauth2 (~> 1.3.1)
190
- omniauth-shibboleth (1.2.1)
191
- omniauth (>= 1.0.0)
192
- parser (2.3.3.1)
193
- ast (~> 2.2)
194
- powerpack (0.1.1)
195
- public_suffix (2.0.5)
196
- rack (1.6.5)
197
- rack-test (0.6.3)
198
- rack (>= 1.0)
199
- rails (4.2.7.1)
200
- actionmailer (= 4.2.7.1)
201
- actionpack (= 4.2.7.1)
202
- actionview (= 4.2.7.1)
203
- activejob (= 4.2.7.1)
204
- activemodel (= 4.2.7.1)
205
- activerecord (= 4.2.7.1)
206
- activesupport (= 4.2.7.1)
207
- bundler (>= 1.3.0, < 2.0)
208
- railties (= 4.2.7.1)
209
- sprockets-rails
210
- rails-deprecated_sanitizer (1.0.3)
211
- activesupport (>= 4.2.0.alpha)
212
- rails-dom-testing (1.0.8)
213
- activesupport (>= 4.2.0.beta, < 5.0)
214
- nokogiri (~> 1.6)
215
- rails-deprecated_sanitizer (>= 1.0.1)
216
- rails-html-sanitizer (1.0.3)
217
- loofah (~> 2.0)
218
- railties (4.2.7.1)
219
- actionpack (= 4.2.7.1)
220
- activesupport (= 4.2.7.1)
221
- rake (>= 0.8.7)
222
- thor (>= 0.18.1, < 2.0)
223
- rainbow (2.2.1)
224
- rake (10.5.0)
225
- redcarpet (3.4.0)
226
- responders (2.3.0)
227
- railties (>= 4.2.0, < 5.1)
228
- rest-client (2.0.0)
229
- http-cookie (>= 1.0.2, < 2.0)
230
- mime-types (>= 1.16, < 4.0)
231
- netrc (~> 0.8)
232
- rspec (3.5.0)
233
- rspec-core (~> 3.5.0)
234
- rspec-expectations (~> 3.5.0)
235
- rspec-mocks (~> 3.5.0)
236
- rspec-core (3.5.4)
237
- rspec-support (~> 3.5.0)
238
- rspec-expectations (3.5.0)
239
- diff-lcs (>= 1.2.0, < 2.0)
240
- rspec-support (~> 3.5.0)
241
- rspec-mocks (3.5.0)
242
- diff-lcs (>= 1.2.0, < 2.0)
243
- rspec-support (~> 3.5.0)
244
- rspec-support (3.5.0)
245
- rubocop (0.47.1)
246
- parser (>= 2.3.3.1, < 3.0)
247
- powerpack (~> 0.1)
248
- rainbow (>= 1.99.1, < 3.0)
249
- ruby-progressbar (~> 1.7)
250
- unicode-display_width (~> 1.0, >= 1.0.1)
251
- ruby-progressbar (1.8.1)
252
- rubyzip (1.2.0)
253
- safe_yaml (1.0.4)
254
- sass (3.4.23)
255
- simplecov (0.9.2)
256
- docile (~> 1.1.0)
257
- multi_json (~> 1.0)
258
- simplecov-html (~> 0.9.0)
259
- simplecov-console (0.2.0)
260
- colorize
261
- hirb
262
- simplecov
263
- simplecov-html (0.9.0)
264
- sprockets (3.7.1)
265
- concurrent-ruby (~> 1.0)
266
- rack (> 1, < 3)
267
- sprockets-rails (3.2.0)
268
- actionpack (>= 4.0)
269
- activesupport (>= 4.0)
270
- sprockets (>= 3.0.0)
271
- stash-sword (0.1.5)
272
- rest-client (~> 2.0, = 2.0.0)
273
- typesafe_enum (~> 0.1, >= 0.1.7)
274
- xml-mapping_extensions (~> 0.4, >= 0.4.1)
275
- stash-wrapper (0.1.11.1)
276
- typesafe_enum (~> 0.1, >= 0.1.7)
277
- xml-mapping_extensions (~> 0.4, >= 0.4.2)
278
- stash_ezid_datacite (0.1.5)
279
- ezid-client (~> 1.5)
280
- thor (0.19.4)
281
- thread_safe (0.3.5)
282
- turbolinks (5.0.1)
283
- turbolinks-source (~> 5)
284
- turbolinks-source (5.0.0)
285
- typesafe_enum (0.1.7)
286
- tzinfo (1.2.2)
287
- thread_safe (~> 0.1)
288
- unf (0.1.4)
289
- unf_ext
290
- unf_ext (0.0.7.2)
291
- unicode-display_width (1.1.3)
292
- webmock (1.24.6)
293
- addressable (>= 2.3.6)
294
- crack (>= 0.3.2)
295
- hashdiff
296
- wicked_pdf (1.1.0)
297
- wkhtmltopdf-binary (0.12.3.1)
298
- xml-mapping (0.10.0)
299
- xml-mapping_extensions (0.4.7)
300
- mime-types (~> 2.5)
301
- typesafe_enum (~> 0.1, >= 0.1.5)
302
- xml-mapping (~> 0.10)
303
- yard (0.9.8)
304
-
305
- PLATFORMS
306
- ruby
307
-
308
- DEPENDENCIES
309
- bundler (~> 1.7)
310
- database_cleaner (~> 1.5)
311
- diffy (~> 3.1)
312
- equivalent-xml (~> 0.6.0)
313
- mysql2 (~> 0.3)
314
- rake (~> 10.4)
315
- rspec (~> 3.2)
316
- rubocop (~> 0.47)
317
- simplecov (~> 0.9.2)
318
- simplecov-console (~> 0.2.0)
319
- stash-merritt!
320
- stash_datacite!
321
- stash_engine!
322
- webmock (~> 1.24)
323
- yard (~> 0.8)
324
-
325
- BUNDLED WITH
326
- 1.13.7