sufia 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.travis.yml +6 -0
  4. data/Gemfile +5 -2
  5. data/History.md +6 -0
  6. data/README.md +40 -0
  7. data/Rakefile +4 -0
  8. data/app/assets/javascripts/sufia.js +3 -115
  9. data/app/assets/javascripts/sufia/batch_select_all.js +179 -0
  10. data/app/assets/javascripts/sufia/edit_metadata.js +86 -0
  11. data/app/assets/javascripts/sufia/multiForm.js +57 -0
  12. data/app/assets/javascripts/terms_of_service.js +7 -0
  13. data/app/assets/stylesheets/audio-js.css +3 -0
  14. data/app/assets/stylesheets/dashboard.css.scss +51 -0
  15. data/app/assets/stylesheets/generic_files.css +36 -0
  16. data/app/assets/stylesheets/sufia.css.scss +2 -0
  17. data/app/controllers/batch_controller.rb +11 -0
  18. data/app/controllers/batch_edits_controller.rb +1 -77
  19. data/app/controllers/generic_files_controller.rb +1 -0
  20. data/app/controllers/mailbox_controller.rb +1 -1
  21. data/app/controllers/single_use_link_controller.rb +11 -7
  22. data/app/helpers/generic_file_helper.rb +11 -3
  23. data/app/helpers/sufia_helper.rb +13 -10
  24. data/app/models/batch.rb +1 -1
  25. data/app/models/datastreams/fits_datastream.rb +2 -2
  26. data/app/models/datastreams/generic_file_rdf_datastream.rb +22 -18
  27. data/app/models/datastreams/properties_datastream.rb +2 -2
  28. data/app/views/_user_util_links.html.erb +2 -2
  29. data/app/views/batch/_metadata.html.erb +82 -0
  30. data/app/views/batch/_more_metadata.html.erb +6 -0
  31. data/app/views/batch/edit.html.erb +1 -8
  32. data/app/views/batch_edits/_check_all.html.erb +0 -157
  33. data/app/views/batch_edits/edit.html.erb +0 -29
  34. data/app/views/catalog/_index_partials/_list_files.html.erb +8 -10
  35. data/app/views/catalog/_recent_document.html.erb +9 -18
  36. data/app/views/catalog/_results_pagination.html.erb +1 -1
  37. data/app/views/contact_form/new.html.erb +1 -1
  38. data/app/views/dashboard/_index_partials/_default_group.html.erb +1 -1
  39. data/app/views/dashboard/_index_partials/_list_files.html.erb +12 -14
  40. data/app/views/dashboard/_index_partials/_thumbnail_display.html.erb +9 -19
  41. data/app/views/dashboard/_results_pagination.html.erb +1 -1
  42. data/app/views/dashboard/index.html.erb +6 -82
  43. data/app/views/error/single_use_error.html.erb +35 -0
  44. data/app/views/generic_files/_descriptions.html.erb +2 -2
  45. data/app/views/generic_files/_extra_fields_modal.html.erb +1 -1
  46. data/app/views/generic_files/_field_form.html.erb +2 -5
  47. data/app/views/generic_files/_media_display.html.erb +8 -6
  48. data/app/views/generic_files/_permission.html.erb +2 -2
  49. data/app/views/generic_files/_rights_modal.html.erb +1 -1
  50. data/app/views/generic_files/_show_actions.html.erb +1 -1
  51. data/app/views/generic_files/_show_details.html.erb +11 -6
  52. data/app/views/generic_files/edit.html.erb +0 -8
  53. data/app/views/generic_files/edit_fields/_type.html.erb +1 -1
  54. data/app/views/generic_files/show.html.erb +5 -8
  55. data/app/views/generic_files/show_fields/_based_near.html.erb +4 -1
  56. data/app/views/generic_files/show_fields/_contributor.html.erb +4 -1
  57. data/app/views/generic_files/show_fields/_creator.html.erb +4 -1
  58. data/app/views/generic_files/show_fields/_date_created.html.erb +4 -1
  59. data/app/views/generic_files/show_fields/_description.html.erb +4 -1
  60. data/app/views/generic_files/show_fields/_language.html.erb +1 -1
  61. data/app/views/generic_files/show_fields/_publisher.html.erb +4 -1
  62. data/app/views/generic_files/show_fields/_related_url.html.erb +3 -1
  63. data/app/views/generic_files/show_fields/_resource_type.html.erb +1 -1
  64. data/app/views/generic_files/show_fields/_subject.html.erb +4 -1
  65. data/app/views/generic_files/show_fields/_tag.html.erb +1 -1
  66. data/app/views/generic_files/show_fields/_title.html.erb +4 -1
  67. data/app/views/layouts/error.html.erb +0 -4
  68. data/app/views/layouts/hydra-head.html.erb +2 -6
  69. data/app/views/single_use_link/show.html.erb +1 -1
  70. data/app/views/users/index.html.erb +1 -1
  71. data/app/views/users/show.html.erb +1 -1
  72. data/config/locales/sufia.en.yml +1 -0
  73. data/config/routes.rb +11 -4
  74. data/lib/generators/sufia/sufia_generator.rb +2 -1
  75. data/lib/generators/sufia/templates/catalog_controller.rb +143 -117
  76. data/lib/generators/sufia/templates/config/resque_admin.rb +10 -0
  77. data/lib/generators/sufia/templates/config/sufia.rb +8 -0
  78. data/lib/sufia.rb +4 -14
  79. data/lib/sufia/batch_edits_controller_behavior.rb +89 -0
  80. data/lib/sufia/controller.rb +7 -5
  81. data/lib/sufia/downloads_controller_behavior.rb +14 -19
  82. data/lib/sufia/file_content/extract_metadata.rb +11 -4
  83. data/lib/sufia/files_controller_behavior.rb +63 -44
  84. data/lib/sufia/generic_file.rb +29 -11
  85. data/lib/sufia/generic_file/audit.rb +1 -1
  86. data/lib/sufia/generic_file/thumbnail.rb +51 -26
  87. data/lib/sufia/id_service.rb +28 -11
  88. data/lib/sufia/jobs/batch_update_job.rb +2 -2
  89. data/lib/sufia/jobs/characterize_job.rb +11 -3
  90. data/lib/sufia/jobs/ffmpeg_transcode_job.rb +61 -0
  91. data/lib/sufia/jobs/resolrize_job.rb +1 -1
  92. data/lib/sufia/jobs/transcode_audio_job.rb +40 -0
  93. data/lib/sufia/jobs/transcode_video_job.rb +9 -49
  94. data/lib/sufia/queue/resque.rb +2 -2
  95. data/lib/sufia/single_use_error.rb +4 -0
  96. data/lib/sufia/solr_document_behavior.rb +108 -1
  97. data/lib/sufia/version.rb +1 -1
  98. data/solr_conf/conf/schema.xml +332 -652
  99. data/solr_conf/conf/solrconfig.xml +60 -196
  100. data/spec/controllers/batch_controller_spec.rb +4 -5
  101. data/spec/controllers/catalog_controller_spec.rb +13 -13
  102. data/spec/controllers/dashboard_controller_spec.rb +2 -2
  103. data/spec/controllers/downloads_controller_spec.rb +74 -62
  104. data/spec/controllers/generic_files_controller_spec.rb +10 -8
  105. data/spec/controllers/single_use_link_controller_spec.rb +12 -4
  106. data/spec/fixtures/Example.ogg +0 -0
  107. data/spec/fixtures/piano_note.wav +0 -0
  108. data/spec/fixtures/sufia_generic_stub.descMeta.txt +1 -1
  109. data/spec/helpers/sufia_helper_spec.rb +12 -0
  110. data/spec/models/characterize_job_spec.rb +89 -0
  111. data/spec/models/checksum_audit_log_spec.rb +1 -0
  112. data/spec/models/event_jobs_spec.rb +9 -9
  113. data/spec/models/file_content_datastream_spec.rb +16 -10
  114. data/spec/models/fits_datastream_spec.rb +2 -8
  115. data/spec/models/generic_file_spec.rb +131 -60
  116. data/spec/models/solr_document_spec.rb +21 -0
  117. data/spec/models/transcode_audio_job_spec.rb +81 -0
  118. data/spec/models/transcode_video_job_spec.rb +2 -2
  119. data/spec/models/unzip_job_spec.rb +3 -3
  120. data/spec/spec_helper.rb +21 -0
  121. data/spec/support/Gemfile +7 -3
  122. data/sufia.gemspec +8 -11
  123. data/tasks/cucumber.rake +1 -2
  124. data/tasks/sufia-dev.rake +13 -2
  125. data/tasks/sufia.rake +1 -1
  126. metadata +77 -118
  127. data/app/views/batch_edits/_metadata.html.erb +0 -180
  128. data/lib/generators/sufia/templates/config/hydra_config.rb +0 -32
  129. data/lib/kaminari/helpers/tag.rb +0 -11
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe SolrDocument do
4
+ describe "when mime-type is 'application/mxf'" do
5
+ before do
6
+ subject['mime_type_tesim'] = ['application/mxf']
7
+ end
8
+ it "should be a video" do
9
+ subject.should be_video
10
+ end
11
+ end
12
+
13
+ describe "date_uploaded" do
14
+ before do
15
+ subject['desc_metadata__date_uploaded_dtsi'] = '2013-03-14T00:00:00Z'
16
+ end
17
+ it "should be a date" do
18
+ subject.date_uploaded.should == '03/14/2013'
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,81 @@
1
+ require 'spec_helper'
2
+
3
+ describe TranscodeAudioJob, :if => Sufia::Engine.config.enable_ffmpeg do
4
+ before do
5
+ @generic_file = GenericFile.new
6
+ @generic_file.apply_depositor_metadata('jcoyne@example.com')
7
+ @generic_file.stub(:characterize_if_changed).and_yield
8
+ end
9
+
10
+ after do
11
+ @generic_file.delete
12
+ end
13
+
14
+ subject { TranscodeAudioJob.new(@generic_file.id, 'content')}
15
+
16
+
17
+ describe "with a wav file" do
18
+ before do
19
+ @generic_file.add_file_datastream(File.new(fixture_path + '/piano_note.wav'), :dsid=>'content')
20
+ @generic_file.save!
21
+ end
22
+
23
+ it "should transcode to mp3 and ogg" do
24
+ subject.run
25
+ reloaded = GenericFile.find(@generic_file.pid)
26
+ derivative = reloaded.datastreams['mp3']
27
+ derivative.should_not be_nil
28
+ derivative.content.should_not be_nil
29
+ derivative.mimeType.should == 'audio/mp3'
30
+
31
+ derivative2 = reloaded.datastreams['ogg']
32
+ derivative2.should_not be_nil
33
+ derivative2.content.should_not be_nil
34
+ derivative2.mimeType.should == 'audio/ogg'
35
+ end
36
+ end
37
+
38
+ describe "with an mp3 file" do
39
+ before do
40
+ @generic_file.add_file_datastream(File.new(fixture_path + '/sufia/sufia_test5.mp3'), :dsid=>'content')
41
+ @generic_file.characterize # so that the mime_type is set
42
+ @generic_file.save!
43
+ end
44
+
45
+ it "should copy the content to the mp3 datastream and transcode to ogg" do
46
+ subject.run
47
+ reloaded = GenericFile.find(@generic_file.pid)
48
+ derivative = reloaded.datastreams['mp3']
49
+ derivative.should_not be_nil
50
+ derivative.content.should == reloaded.content.content
51
+ derivative.mimeType.should == 'audio/mp3'
52
+
53
+ derivative2 = reloaded.datastreams['ogg']
54
+ derivative2.should_not be_nil
55
+ derivative2.content.should_not be_nil
56
+ derivative2.mimeType.should == 'audio/ogg'
57
+ end
58
+ end
59
+ describe "with an ogg file" do
60
+ before do
61
+ @generic_file.add_file_datastream(File.new(fixture_path + '/Example.ogg'), :dsid=>'content')
62
+ @generic_file.characterize # so that the mime_type is set
63
+ @generic_file.save!
64
+ end
65
+
66
+ it "should copy the content to the ogg datastream and transcode to mp3" do
67
+ subject.run
68
+ reloaded = GenericFile.find(@generic_file.pid)
69
+ derivative = reloaded.datastreams['mp3']
70
+ derivative.should_not be_nil
71
+ derivative.content.should_not be_nil
72
+ derivative.mimeType.should == 'audio/mp3'
73
+
74
+ derivative2 = reloaded.datastreams['ogg']
75
+ derivative2.should_not be_nil
76
+ #derivative2.content.should == reloaded.content.content
77
+ derivative2.mimeType.should == 'audio/ogg'
78
+ end
79
+ end
80
+ end
81
+
@@ -1,10 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe TranscodeVideoJob do
3
+ describe TranscodeVideoJob, :if => Sufia::Engine.config.enable_ffmpeg do
4
4
  before do
5
5
  @generic_file = GenericFile.new
6
6
  @generic_file.apply_depositor_metadata('jcoyne@example.com')
7
7
  @generic_file.add_file_datastream(File.new(fixture_path + '/countdown.avi'), :dsid=>'content')
8
+ @generic_file.stub(:characterize_if_changed).and_yield
8
9
  @generic_file.save!
9
10
  end
10
11
 
@@ -27,4 +28,3 @@ describe TranscodeVideoJob do
27
28
  derivative2.mimeType.should == 'video/mp4'
28
29
  end
29
30
  end
30
-
@@ -15,16 +15,16 @@
15
15
  require 'spec_helper'
16
16
 
17
17
  describe UnzipJob do
18
- before(:all) do
18
+ before do
19
19
  @batch = Batch.create
20
- GenericFile.any_instance.stub(:terms_of_service).and_return('1')
21
20
  @generic_file = GenericFile.new(:batch=>@batch)
22
21
  @generic_file.add_file_datastream(File.new(fixture_path + '/icons.zip'), :dsid=>'content')
23
22
  @generic_file.apply_depositor_metadata('mjg36')
23
+ @generic_file.stub(:characterize_if_changed).and_yield #don't run characterization
24
24
  @generic_file.save
25
25
  end
26
26
 
27
- after(:all) do
27
+ after do
28
28
  @batch.delete
29
29
  @generic_file.delete
30
30
  end
@@ -21,6 +21,27 @@ require 'rspec/autorun'
21
21
  require 'capybara/rspec'
22
22
  require 'capybara/rails'
23
23
 
24
+ if ENV['COVERAGE']
25
+ require 'simplecov'
26
+ SimpleCov.start 'rails'
27
+ SimpleCov.command_name "spec"
28
+ end
29
+
30
+ $in_travis = !ENV['TRAVIS'].nil? && ENV['TRAVIS'] == 'true'
31
+
32
+ if $in_travis
33
+ # Monkey-patches the FITS runner to return the PDF FITS fixture
34
+ module Sufia
35
+ module FileContent
36
+ module ExtractMetadata
37
+ def run_fits!(path)
38
+ File.open(File.join(File.expand_path('../fixtures', __FILE__), 'pdf_fits.xml')).read
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+
24
45
  Resque.inline = Rails.env.test?
25
46
 
26
47
  FactoryGirl.definition_file_paths = [File.expand_path("../factories", __FILE__)]
@@ -1,12 +1,13 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '3.2.11'
3
+ gem 'rails', '3.2.13'
4
4
 
5
5
  gem 'sqlite3'
6
6
 
7
7
  gem 'devise' #BL adds this later, so check to see if we can remove this
8
8
  gem 'blacklight'
9
- gem "hydra-head"
9
+ gem 'hydra-head'
10
+
10
11
 
11
12
  gem 'sufia', :path=>'../../'
12
13
  gem 'rspec-rails', :group=>:test
@@ -15,5 +16,8 @@ gem 'capybara', :group=>:test
15
16
  gem 'factory_girl'
16
17
 
17
18
  group :assets do
18
- gem 'sass-rails', '~> 3.2.0'
19
+ gem 'sass-rails', '~> 3.2.3'
20
+ gem 'coffee-rails', '~> 3.2.1'
21
+ gem 'jquery-rails'
22
+ gem 'font-awesome-sass-rails'
19
23
  end
@@ -15,20 +15,17 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Sufia::VERSION
17
17
 
18
- gem.add_dependency 'rails', '~> 3.2.8'
19
- gem.add_dependency 'blacklight', '~> 4.0.0'
18
+ gem.add_dependency 'rails', '~> 3.2.13'
19
+ gem.add_dependency 'blacklight', '~> 4.0'
20
20
  gem.add_dependency 'blacklight_advanced_search'
21
- gem.add_dependency "hydra-head", ">= 5.3"
22
- gem.add_dependency "active-fedora", ">= 5.5"
21
+ gem.add_dependency "hydra-head", "~> 6.0"
23
22
 
24
- gem.add_dependency 'noid', '0.5.5'
25
- gem.add_dependency 'hydra-batch-edit', '~> 0.1.0'
23
+ gem.add_dependency 'noid', '~> 0.6.6'
24
+ gem.add_dependency 'hydra-batch-edit', '~> 0.3'
26
25
 
27
- # Other components
28
26
  gem.add_dependency 'resque', '~> 1.23.0'#, :require => 'resque/server'
29
27
  gem.add_dependency 'resque-pool', '0.3.0'
30
- # NOTE: the :require arg is necessary on Linux-based hosts
31
- gem.add_dependency 'rmagick', '2.13.1'#, :require => 'RMagick'
28
+ gem.add_dependency 'rmagick'
32
29
  gem.add_dependency 'devise'
33
30
  gem.add_dependency 'paperclip', '3.3.0'
34
31
  gem.add_dependency 'daemons', '1.1.9'
@@ -41,6 +38,6 @@ Gem::Specification.new do |gem|
41
38
  gem.add_dependency 'yaml_db', '0.2.3'
42
39
  gem.add_dependency 'mailboxer', '0.8.0'
43
40
  gem.add_dependency 'rainbow', '1.1.4'
44
- gem.add_dependency 'activerecord-import'
45
- gem.add_dependency 'font-awesome-sass-rails', '~>2.0'
41
+ gem.add_dependency 'activerecord-import', '0.3.0' # 0.3.1 caused a bug in testing: "SQLite3::SQLException: near ",": syntax error: INSERT INTO..."
42
+ gem.add_dependency 'font-awesome-sass-rails', '~>3.0'
46
43
  end
@@ -49,11 +49,10 @@ begin
49
49
  ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')
50
50
  end
51
51
  end
52
+
52
53
  desc 'Alias for cucumber:ok'
53
54
  task :cucumber => 'cucumber:ok'
54
55
 
55
- task :default => :cucumber
56
-
57
56
  task :features => :cucumber do
58
57
  STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
59
58
  end
@@ -4,8 +4,19 @@ APP_ROOT="." # for jettywrapper
4
4
  require 'jettywrapper'
5
5
  ENV["RAILS_ROOT"] ||= 'spec/internal'
6
6
 
7
+ desc 'Spin up hydra-jetty and run specs'
8
+ task :ci => ['jetty:config'] do
9
+ puts 'running continuous integration'
10
+ jetty_params = Jettywrapper.load_config
11
+ error = Jettywrapper.wrap(jetty_params) do
12
+ Rake::Task['spec'].invoke
13
+ end
14
+ raise "test failures: #{error}" if error
15
+ end
16
+
7
17
  desc "Run specs"
8
18
  RSpec::Core::RakeTask.new(:spec => [:generate]) do |t|
19
+ puts 'running specs'
9
20
  # if ENV['COVERAGE'] and RUBY_VERSION =~ /^1.8/
10
21
  # t.rcov = true
11
22
  # t.rcov_opts = %w{--exclude spec\/*,gems\/*,ruby\/* --aggregate coverage.data}
@@ -45,7 +56,7 @@ task :generate do
45
56
  end
46
57
  end
47
58
  end
48
- puts "Running specs"
59
+ puts "Done generating test app"
49
60
  end
50
61
 
51
62
  desc "Clean out the test rails app"
@@ -59,7 +70,7 @@ def within_test_app
59
70
  yield
60
71
  FileUtils.cd('../..')
61
72
  end
62
-
73
+
63
74
  namespace :meme do
64
75
  desc "configure jetty to generate checksums"
65
76
  task :config do
@@ -103,7 +103,7 @@ namespace :sufia do
103
103
 
104
104
  desc "Re-solrize all objects"
105
105
  task :resolrize => :environment do
106
- Resque.enqueue(ResolrizeJob)
106
+ Sufia.queue.push(ResolrizeJob.new)
107
107
  end
108
108
 
109
109
  namespace :export do
metadata CHANGED
@@ -1,148 +1,116 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sufia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Justin Coyne
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-04 00:00:00.000000000 Z
11
+ date: 2013-04-17 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - "~>"
17
+ - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 3.2.8
19
+ version: 3.2.13
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - "~>"
24
+ - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: 3.2.8
26
+ version: 3.2.13
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: blacklight
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - "~>"
31
+ - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: 4.0.0
33
+ version: '4.0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - "~>"
38
+ - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: 4.0.0
40
+ version: '4.0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: blacklight_advanced_search
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ">="
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ">="
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: hydra-head
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ">="
59
+ - - ~>
68
60
  - !ruby/object:Gem::Version
69
- version: '5.3'
61
+ version: '6.0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ">="
66
+ - - ~>
76
67
  - !ruby/object:Gem::Version
77
- version: '5.3'
78
- - !ruby/object:Gem::Dependency
79
- name: active-fedora
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- version: '5.5'
86
- type: :runtime
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- version: '5.5'
68
+ version: '6.0'
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: noid
96
71
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
72
  requirements:
99
- - - '='
73
+ - - ~>
100
74
  - !ruby/object:Gem::Version
101
- version: 0.5.5
75
+ version: 0.6.6
102
76
  type: :runtime
103
77
  prerelease: false
104
78
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
79
  requirements:
107
- - - '='
80
+ - - ~>
108
81
  - !ruby/object:Gem::Version
109
- version: 0.5.5
82
+ version: 0.6.6
110
83
  - !ruby/object:Gem::Dependency
111
84
  name: hydra-batch-edit
112
85
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
86
  requirements:
115
- - - "~>"
87
+ - - ~>
116
88
  - !ruby/object:Gem::Version
117
- version: 0.1.0
89
+ version: '0.3'
118
90
  type: :runtime
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
93
  requirements:
123
- - - "~>"
94
+ - - ~>
124
95
  - !ruby/object:Gem::Version
125
- version: 0.1.0
96
+ version: '0.3'
126
97
  - !ruby/object:Gem::Dependency
127
98
  name: resque
128
99
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
100
  requirements:
131
- - - "~>"
101
+ - - ~>
132
102
  - !ruby/object:Gem::Version
133
103
  version: 1.23.0
134
104
  type: :runtime
135
105
  prerelease: false
136
106
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
107
  requirements:
139
- - - "~>"
108
+ - - ~>
140
109
  - !ruby/object:Gem::Version
141
110
  version: 1.23.0
142
111
  - !ruby/object:Gem::Dependency
143
112
  name: resque-pool
144
113
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
114
  requirements:
147
115
  - - '='
148
116
  - !ruby/object:Gem::Version
@@ -150,7 +118,6 @@ dependencies:
150
118
  type: :runtime
151
119
  prerelease: false
152
120
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
121
  requirements:
155
122
  - - '='
156
123
  - !ruby/object:Gem::Version
@@ -158,39 +125,34 @@ dependencies:
158
125
  - !ruby/object:Gem::Dependency
159
126
  name: rmagick
160
127
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
128
  requirements:
163
- - - '='
129
+ - - '>='
164
130
  - !ruby/object:Gem::Version
165
- version: 2.13.1
131
+ version: '0'
166
132
  type: :runtime
167
133
  prerelease: false
168
134
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
135
  requirements:
171
- - - '='
136
+ - - '>='
172
137
  - !ruby/object:Gem::Version
173
- version: 2.13.1
138
+ version: '0'
174
139
  - !ruby/object:Gem::Dependency
175
140
  name: devise
176
141
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
142
  requirements:
179
- - - ">="
143
+ - - '>='
180
144
  - !ruby/object:Gem::Version
181
145
  version: '0'
182
146
  type: :runtime
183
147
  prerelease: false
184
148
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
149
  requirements:
187
- - - ">="
150
+ - - '>='
188
151
  - !ruby/object:Gem::Version
189
152
  version: '0'
190
153
  - !ruby/object:Gem::Dependency
191
154
  name: paperclip
192
155
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
156
  requirements:
195
157
  - - '='
196
158
  - !ruby/object:Gem::Version
@@ -198,7 +160,6 @@ dependencies:
198
160
  type: :runtime
199
161
  prerelease: false
200
162
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
163
  requirements:
203
164
  - - '='
204
165
  - !ruby/object:Gem::Version
@@ -206,7 +167,6 @@ dependencies:
206
167
  - !ruby/object:Gem::Dependency
207
168
  name: daemons
208
169
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
170
  requirements:
211
171
  - - '='
212
172
  - !ruby/object:Gem::Version
@@ -214,7 +174,6 @@ dependencies:
214
174
  type: :runtime
215
175
  prerelease: false
216
176
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
177
  requirements:
219
178
  - - '='
220
179
  - !ruby/object:Gem::Version
@@ -222,7 +181,6 @@ dependencies:
222
181
  - !ruby/object:Gem::Dependency
223
182
  name: zipruby
224
183
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
184
  requirements:
227
185
  - - '='
228
186
  - !ruby/object:Gem::Version
@@ -230,7 +188,6 @@ dependencies:
230
188
  type: :runtime
231
189
  prerelease: false
232
190
  version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
191
  requirements:
235
192
  - - '='
236
193
  - !ruby/object:Gem::Version
@@ -238,23 +195,20 @@ dependencies:
238
195
  - !ruby/object:Gem::Dependency
239
196
  name: mail_form
240
197
  requirement: !ruby/object:Gem::Requirement
241
- none: false
242
198
  requirements:
243
- - - ">="
199
+ - - '>='
244
200
  - !ruby/object:Gem::Version
245
201
  version: '0'
246
202
  type: :runtime
247
203
  prerelease: false
248
204
  version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
205
  requirements:
251
- - - ">="
206
+ - - '>='
252
207
  - !ruby/object:Gem::Version
253
208
  version: '0'
254
209
  - !ruby/object:Gem::Dependency
255
210
  name: rails_autolink
256
211
  requirement: !ruby/object:Gem::Requirement
257
- none: false
258
212
  requirements:
259
213
  - - '='
260
214
  - !ruby/object:Gem::Version
@@ -262,7 +216,6 @@ dependencies:
262
216
  type: :runtime
263
217
  prerelease: false
264
218
  version_requirements: !ruby/object:Gem::Requirement
265
- none: false
266
219
  requirements:
267
220
  - - '='
268
221
  - !ruby/object:Gem::Version
@@ -270,7 +223,6 @@ dependencies:
270
223
  - !ruby/object:Gem::Dependency
271
224
  name: acts_as_follower
272
225
  requirement: !ruby/object:Gem::Requirement
273
- none: false
274
226
  requirements:
275
227
  - - '='
276
228
  - !ruby/object:Gem::Version
@@ -278,7 +230,6 @@ dependencies:
278
230
  type: :runtime
279
231
  prerelease: false
280
232
  version_requirements: !ruby/object:Gem::Requirement
281
- none: false
282
233
  requirements:
283
234
  - - '='
284
235
  - !ruby/object:Gem::Version
@@ -286,7 +237,6 @@ dependencies:
286
237
  - !ruby/object:Gem::Dependency
287
238
  name: nest
288
239
  requirement: !ruby/object:Gem::Requirement
289
- none: false
290
240
  requirements:
291
241
  - - '='
292
242
  - !ruby/object:Gem::Version
@@ -294,7 +244,6 @@ dependencies:
294
244
  type: :runtime
295
245
  prerelease: false
296
246
  version_requirements: !ruby/object:Gem::Requirement
297
- none: false
298
247
  requirements:
299
248
  - - '='
300
249
  - !ruby/object:Gem::Version
@@ -302,7 +251,6 @@ dependencies:
302
251
  - !ruby/object:Gem::Dependency
303
252
  name: sitemap
304
253
  requirement: !ruby/object:Gem::Requirement
305
- none: false
306
254
  requirements:
307
255
  - - '='
308
256
  - !ruby/object:Gem::Version
@@ -310,7 +258,6 @@ dependencies:
310
258
  type: :runtime
311
259
  prerelease: false
312
260
  version_requirements: !ruby/object:Gem::Requirement
313
- none: false
314
261
  requirements:
315
262
  - - '='
316
263
  - !ruby/object:Gem::Version
@@ -318,7 +265,6 @@ dependencies:
318
265
  - !ruby/object:Gem::Dependency
319
266
  name: yaml_db
320
267
  requirement: !ruby/object:Gem::Requirement
321
- none: false
322
268
  requirements:
323
269
  - - '='
324
270
  - !ruby/object:Gem::Version
@@ -326,7 +272,6 @@ dependencies:
326
272
  type: :runtime
327
273
  prerelease: false
328
274
  version_requirements: !ruby/object:Gem::Requirement
329
- none: false
330
275
  requirements:
331
276
  - - '='
332
277
  - !ruby/object:Gem::Version
@@ -334,7 +279,6 @@ dependencies:
334
279
  - !ruby/object:Gem::Dependency
335
280
  name: mailboxer
336
281
  requirement: !ruby/object:Gem::Requirement
337
- none: false
338
282
  requirements:
339
283
  - - '='
340
284
  - !ruby/object:Gem::Version
@@ -342,7 +286,6 @@ dependencies:
342
286
  type: :runtime
343
287
  prerelease: false
344
288
  version_requirements: !ruby/object:Gem::Requirement
345
- none: false
346
289
  requirements:
347
290
  - - '='
348
291
  - !ruby/object:Gem::Version
@@ -350,7 +293,6 @@ dependencies:
350
293
  - !ruby/object:Gem::Dependency
351
294
  name: rainbow
352
295
  requirement: !ruby/object:Gem::Requirement
353
- none: false
354
296
  requirements:
355
297
  - - '='
356
298
  - !ruby/object:Gem::Version
@@ -358,7 +300,6 @@ dependencies:
358
300
  type: :runtime
359
301
  prerelease: false
360
302
  version_requirements: !ruby/object:Gem::Requirement
361
- none: false
362
303
  requirements:
363
304
  - - '='
364
305
  - !ruby/object:Gem::Version
@@ -366,35 +307,31 @@ dependencies:
366
307
  - !ruby/object:Gem::Dependency
367
308
  name: activerecord-import
368
309
  requirement: !ruby/object:Gem::Requirement
369
- none: false
370
310
  requirements:
371
- - - ">="
311
+ - - '='
372
312
  - !ruby/object:Gem::Version
373
- version: '0'
313
+ version: 0.3.0
374
314
  type: :runtime
375
315
  prerelease: false
376
316
  version_requirements: !ruby/object:Gem::Requirement
377
- none: false
378
317
  requirements:
379
- - - ">="
318
+ - - '='
380
319
  - !ruby/object:Gem::Version
381
- version: '0'
320
+ version: 0.3.0
382
321
  - !ruby/object:Gem::Dependency
383
322
  name: font-awesome-sass-rails
384
323
  requirement: !ruby/object:Gem::Requirement
385
- none: false
386
324
  requirements:
387
- - - "~>"
325
+ - - ~>
388
326
  - !ruby/object:Gem::Version
389
- version: '2.0'
327
+ version: '3.0'
390
328
  type: :runtime
391
329
  prerelease: false
392
330
  version_requirements: !ruby/object:Gem::Requirement
393
- none: false
394
331
  requirements:
395
- - - "~>"
332
+ - - ~>
396
333
  - !ruby/object:Gem::Version
397
- version: '2.0'
334
+ version: '3.0'
398
335
  description: Sufia is a Rails engine for creating a self-deposit institutional repository
399
336
  email:
400
337
  - justin.coyne@yourmediashelf.com
@@ -403,10 +340,12 @@ executables:
403
340
  extensions: []
404
341
  extra_rdoc_files: []
405
342
  files:
406
- - ".gitignore"
407
- - ".gitmodules"
408
- - ".rspec"
343
+ - .gitignore
344
+ - .gitmodules
345
+ - .rspec
346
+ - .travis.yml
409
347
  - Gemfile
348
+ - History.md
410
349
  - LICENSE.md
411
350
  - README.md
412
351
  - Rakefile
@@ -472,13 +411,18 @@ files:
472
411
  - app/assets/images/video-still.png
473
412
  - app/assets/javascripts/contact_form.js
474
413
  - app/assets/javascripts/sufia.js
414
+ - app/assets/javascripts/sufia/batch_select_all.js
415
+ - app/assets/javascripts/sufia/edit_metadata.js
416
+ - app/assets/javascripts/sufia/multiForm.js
475
417
  - app/assets/javascripts/sufia/permissions.js
476
418
  - app/assets/javascripts/sufia/tabs.js
477
419
  - app/assets/javascripts/sufia/trophy.js
478
420
  - app/assets/javascripts/terms_of_service.js
421
+ - app/assets/stylesheets/audio-js.css
479
422
  - app/assets/stylesheets/blacklight_more_facets.css
480
423
  - app/assets/stylesheets/bootstrap.min.css
481
424
  - app/assets/stylesheets/contact_form.css
425
+ - app/assets/stylesheets/dashboard.css.scss
482
426
  - app/assets/stylesheets/fileupload/application.css
483
427
  - app/assets/stylesheets/fileupload/jquery.fileupload-ui.css
484
428
  - app/assets/stylesheets/fileupload/pbar-ani.gif
@@ -546,10 +490,11 @@ files:
546
490
  - app/views/advanced/_facet_layout.html.erb
547
491
  - app/views/advanced/_facet_limit.html.erb
548
492
  - app/views/advanced/index.html.erb
493
+ - app/views/batch/_metadata.html.erb
494
+ - app/views/batch/_more_metadata.html.erb
549
495
  - app/views/batch/edit.html.erb
550
496
  - app/views/batch_edits/_check_all.html.erb
551
497
  - app/views/batch_edits/_delete_selected.html.erb
552
- - app/views/batch_edits/_metadata.html.erb
553
498
  - app/views/batch_edits/edit.html.erb
554
499
  - app/views/batch_edits/update_edit.js.erb
555
500
  - app/views/catalog/_bookmark_control.html.erb
@@ -632,6 +577,7 @@ files:
632
577
  - app/views/error/401.html.erb
633
578
  - app/views/error/404.html.erb
634
579
  - app/views/error/500.html.erb
580
+ - app/views/error/single_use_error.html.erb
635
581
  - app/views/generic_files/_asset_deleted_flash.html.erb
636
582
  - app/views/generic_files/_asset_permissions_denial_flash.html.erb
637
583
  - app/views/generic_files/_asset_saved_flash.html.erb
@@ -732,10 +678,10 @@ files:
732
678
  - lib/generators/sufia/templates/catalog_controller.rb
733
679
  - lib/generators/sufia/templates/config/action_dispatch_http_upload_monkey_patch.rb
734
680
  - lib/generators/sufia/templates/config/clamav.rb
735
- - lib/generators/sufia/templates/config/hydra_config.rb
736
681
  - lib/generators/sufia/templates/config/mailboxer.rb
737
682
  - lib/generators/sufia/templates/config/redis.yml
738
683
  - lib/generators/sufia/templates/config/redis_config.rb
684
+ - lib/generators/sufia/templates/config/resque_admin.rb
739
685
  - lib/generators/sufia/templates/config/resque_config.rb
740
686
  - lib/generators/sufia/templates/config/setup_mail.rb
741
687
  - lib/generators/sufia/templates/config/sufia.rb
@@ -749,10 +695,10 @@ files:
749
695
  - lib/generators/sufia/templates/migrations/create_single_use_links.rb
750
696
  - lib/generators/sufia/templates/migrations/create_trophies.rb
751
697
  - lib/generators/sufia/templates/migrations/create_version_committers.rb
752
- - lib/kaminari/helpers/tag.rb
753
698
  - lib/sufia.rb
754
699
  - lib/sufia/active_fedora/redis.rb
755
700
  - lib/sufia/active_record/redis.rb
701
+ - lib/sufia/batch_edits_controller_behavior.rb
756
702
  - lib/sufia/controller.rb
757
703
  - lib/sufia/downloads_controller_behavior.rb
758
704
  - lib/sufia/file_content.rb
@@ -776,7 +722,9 @@ files:
776
722
  - lib/sufia/jobs/content_restored_version_event_job.rb
777
723
  - lib/sufia/jobs/content_update_event_job.rb
778
724
  - lib/sufia/jobs/event_job.rb
725
+ - lib/sufia/jobs/ffmpeg_transcode_job.rb
779
726
  - lib/sufia/jobs/resolrize_job.rb
727
+ - lib/sufia/jobs/transcode_audio_job.rb
780
728
  - lib/sufia/jobs/transcode_video_job.rb
781
729
  - lib/sufia/jobs/unzip_job.rb
782
730
  - lib/sufia/jobs/user_edit_profile_event_job.rb
@@ -786,6 +734,7 @@ files:
786
734
  - lib/sufia/noid.rb
787
735
  - lib/sufia/queue/resque.rb
788
736
  - lib/sufia/role_mapper.rb
737
+ - lib/sufia/single_use_error.rb
789
738
  - lib/sufia/solr_document_behavior.rb
790
739
  - lib/sufia/user.rb
791
740
  - lib/sufia/utils.rb
@@ -814,6 +763,7 @@ files:
814
763
  - spec/factories/single_use_links.rb
815
764
  - spec/factories/users.rb
816
765
  - spec/fixtures/4-20.png
766
+ - spec/fixtures/Example.ogg
817
767
  - spec/fixtures/cities15000.tsv
818
768
  - spec/fixtures/countdown.avi
819
769
  - spec/fixtures/docx_fits.xml
@@ -828,6 +778,7 @@ files:
828
778
  - spec/fixtures/lexvo.rdf
829
779
  - spec/fixtures/mp3_fits.xml
830
780
  - spec/fixtures/pdf_fits.xml
781
+ - spec/fixtures/piano_note.wav
831
782
  - spec/fixtures/small_file.txt
832
783
  - spec/fixtures/sufia/.gitignore
833
784
  - spec/fixtures/sufia/bg_header.jpg
@@ -859,11 +810,13 @@ files:
859
810
  - spec/fixtures/xls_fits.xml
860
811
  - spec/fixtures/xml_fits.xml
861
812
  - spec/helpers/generic_file_helper_spec.rb
813
+ - spec/helpers/sufia_helper_spec.rb
862
814
  - spec/lib/sufia/id_service_spec.rb
863
815
  - spec/lib/sufia/role_mapper_spec.rb
864
816
  - spec/models/audit_job_spec.rb
865
817
  - spec/models/batch_spec.rb
866
818
  - spec/models/batch_update_job_spec.rb
819
+ - spec/models/characterize_job_spec.rb
867
820
  - spec/models/checksum_audit_log_spec.rb
868
821
  - spec/models/event_jobs_spec.rb
869
822
  - spec/models/file_content_datastream_spec.rb
@@ -871,6 +824,8 @@ files:
871
824
  - spec/models/generic_file_spec.rb
872
825
  - spec/models/local_authority_spec.rb
873
826
  - spec/models/single_use_link_spec.rb
827
+ - spec/models/solr_document_spec.rb
828
+ - spec/models/transcode_audio_job_spec.rb
874
829
  - spec/models/transcode_video_job_spec.rb
875
830
  - spec/models/trophy_spec.rb
876
831
  - spec/models/unzip_job_spec.rb
@@ -926,27 +881,26 @@ files:
926
881
  - vendor/plugins/.gitkeep
927
882
  homepage: ''
928
883
  licenses: []
884
+ metadata: {}
929
885
  post_install_message:
930
886
  rdoc_options: []
931
887
  require_paths:
932
888
  - lib
933
889
  required_ruby_version: !ruby/object:Gem::Requirement
934
- none: false
935
890
  requirements:
936
- - - ">="
891
+ - - '>='
937
892
  - !ruby/object:Gem::Version
938
893
  version: '0'
939
894
  required_rubygems_version: !ruby/object:Gem::Requirement
940
- none: false
941
895
  requirements:
942
- - - ">="
896
+ - - '>='
943
897
  - !ruby/object:Gem::Version
944
898
  version: '0'
945
899
  requirements: []
946
900
  rubyforge_project:
947
- rubygems_version: 1.8.25
901
+ rubygems_version: 2.0.3
948
902
  signing_key:
949
- specification_version: 3
903
+ specification_version: 4
950
904
  summary: Sufia was extracted from ScholarSphere developed by Penn State University
951
905
  test_files:
952
906
  - features/browse_dashboard_files.feature
@@ -982,6 +936,7 @@ test_files:
982
936
  - spec/factories/single_use_links.rb
983
937
  - spec/factories/users.rb
984
938
  - spec/fixtures/4-20.png
939
+ - spec/fixtures/Example.ogg
985
940
  - spec/fixtures/cities15000.tsv
986
941
  - spec/fixtures/countdown.avi
987
942
  - spec/fixtures/docx_fits.xml
@@ -996,6 +951,7 @@ test_files:
996
951
  - spec/fixtures/lexvo.rdf
997
952
  - spec/fixtures/mp3_fits.xml
998
953
  - spec/fixtures/pdf_fits.xml
954
+ - spec/fixtures/piano_note.wav
999
955
  - spec/fixtures/small_file.txt
1000
956
  - spec/fixtures/sufia/.gitignore
1001
957
  - spec/fixtures/sufia/bg_header.jpg
@@ -1027,11 +983,13 @@ test_files:
1027
983
  - spec/fixtures/xls_fits.xml
1028
984
  - spec/fixtures/xml_fits.xml
1029
985
  - spec/helpers/generic_file_helper_spec.rb
986
+ - spec/helpers/sufia_helper_spec.rb
1030
987
  - spec/lib/sufia/id_service_spec.rb
1031
988
  - spec/lib/sufia/role_mapper_spec.rb
1032
989
  - spec/models/audit_job_spec.rb
1033
990
  - spec/models/batch_spec.rb
1034
991
  - spec/models/batch_update_job_spec.rb
992
+ - spec/models/characterize_job_spec.rb
1035
993
  - spec/models/checksum_audit_log_spec.rb
1036
994
  - spec/models/event_jobs_spec.rb
1037
995
  - spec/models/file_content_datastream_spec.rb
@@ -1039,6 +997,8 @@ test_files:
1039
997
  - spec/models/generic_file_spec.rb
1040
998
  - spec/models/local_authority_spec.rb
1041
999
  - spec/models/single_use_link_spec.rb
1000
+ - spec/models/solr_document_spec.rb
1001
+ - spec/models/transcode_audio_job_spec.rb
1042
1002
  - spec/models/transcode_video_job_spec.rb
1043
1003
  - spec/models/trophy_spec.rb
1044
1004
  - spec/models/unzip_job_spec.rb
@@ -1054,4 +1014,3 @@ test_files:
1054
1014
  - spec/views/single_user_link/generate_download.html.erb_spec.rb
1055
1015
  - spec/views/single_user_link/generate_show.html.erb_spec.rb
1056
1016
  - spec/views/single_user_link/show.html.erb_spec.rb
1057
- has_rdoc: