sufia 0.1.0 → 1.0.0

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.
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: