From 672dc9b18a1312663198fe8040a2cc7a20927e3f Mon Sep 17 00:00:00 2001 From: Rob Kaufman Date: Thu, 1 Feb 2024 10:53:42 -0800 Subject: [PATCH 1/6] get fixes from adventist --- .github/workflows/build-test-lint.yaml | 2 + .gitignore | 3 +- Dockerfile | 18 +- Gemfile | 10 + LICENSE | 212 +++++++++++++++++- .../hyku_knapsack/application_controller.rb | 2 + .../hyku_knapsack/application_helper.rb | 2 + app/jobs/hyku_knapsack/application_job.rb | 2 + .../hyku_knapsack/application_mailer.rb | 2 + .../hyku_knapsack/application_record.rb | 4 +- bin/knapsacker | 17 +- bin/rails | 26 +-- db-migrate-seed.sh | 1 - docker-compose.yml | 15 +- hyku_knapsack.gemspec | 2 + hyrax-webapp | 2 +- lib/hyku_knapsack/engine.rb | 81 ++++++- lib/hyku_knapsack/version.rb | 2 + lib/tasks/hyku_knapsack_tasks.rake | 1 + 19 files changed, 347 insertions(+), 57 deletions(-) diff --git a/.github/workflows/build-test-lint.yaml b/.github/workflows/build-test-lint.yaml index c00fa92..2bdf3c6 100644 --- a/.github/workflows/build-test-lint.yaml +++ b/.github/workflows/build-test-lint.yaml @@ -31,6 +31,7 @@ jobs: confdir: '/app/samvera/hyrax-webapp/solr/conf' webTarget: hyku-web workerTarget: hyku-worker + rspec_cmd: "cd .. && gem install semaphore_test_boosters && bundle && rspec_booster --job $CI_NODE_INDEX/$CI_NODE_TOTAL" lint: needs: build @@ -38,3 +39,4 @@ jobs: with: webTarget: hyku-web workerTarget: hyku-worker + rubocop_cmd: "cd .. && bundle && bundle exec rubocop --parallel --format progress" diff --git a/.gitignore b/.gitignore index 65bcc70..e00f97c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ scratch.md *~undo-tree~ .env.* .DS_Store -/file_cache/ + +/coverage diff --git a/Dockerfile b/Dockerfile index 82e2f5c..9cb9e52 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,23 @@ -FROM ghcr.io/samvera/hyku/base:latest as hyku-web +FROM ghcr.io/samvera/hyku/base:latest as hyku-knap-base # This is specifically NOT $APP_PATH but the parent directory COPY --chown=1001:101 . /app/samvera +ENV BUNDLE_LOCAL__HYKU_KNAPSACK=/app/samvera +ENV BUNDLE_DISABLE_LOCAL_BRANCH_CHECK=true + +# Ensure root permissions for installing Tesseract data +USER root + +# Install "best" training data for Tesseract +RUN echo "📚 Installing Tesseract Best (training data)!" && \ + wget https://github.com/tesseract-ocr/tessdata_best/raw/main/eng.traineddata -O /usr/share/tessdata/eng_best.traineddata + +# Switch back to the non-root user for running the application +USER app + +FROM hyku-knap-base as hyku-web +RUN RAILS_ENV=production SECRET_KEY_BASE=`bin/rake secret` DB_ADAPTER=nulldb DB_URL='postgresql://fake' bundle exec rake assets:precompile && yarn install + CMD ./bin/web FROM hyku-web as hyku-worker diff --git a/Gemfile b/Gemfile index 7d62fd6..43c274d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } @@ -6,3 +8,11 @@ gemspec # Start debugger with binding.b [https://github.com/ruby/debug] # gem "debug", ">= 1.0.0" + +gemfile_path = File.expand_path("hyrax-webapp/Gemfile", __dir__) +if File.exist?(gemfile_path) + gemfile = File.read(gemfile_path).split("\n").reject { |l| l.match('knapsack') } + # rubocop:disable Security/Eval + eval(gemfile.join("\n"), binding) + # rubocop:enable Security/Eval +end diff --git a/LICENSE b/LICENSE index 11d45a3..6fb4e41 100644 --- a/LICENSE +++ b/LICENSE @@ -1,15 +1,205 @@ -Copyright 2023 The Assay Depot Inc. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -Additional copyright may be held by others, as reflected in the commit history. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + 1. Definitions. - http://www.apache.org/licenses/LICENSE-2.0 + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2012 Penn State University + Copyright 2013 University of Notre Dame, Northwestern University, and Data Curation Experts + Copyright 2014 Data Curation Experts + Additional copyright may be held by others, as reflected in the commit log + + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/app/controllers/hyku_knapsack/application_controller.rb b/app/controllers/hyku_knapsack/application_controller.rb index 14fef20..2883029 100644 --- a/app/controllers/hyku_knapsack/application_controller.rb +++ b/app/controllers/hyku_knapsack/application_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module HykuKnapsack class ApplicationController < ActionController::Base end diff --git a/app/helpers/hyku_knapsack/application_helper.rb b/app/helpers/hyku_knapsack/application_helper.rb index ff7a1a2..80b31de 100644 --- a/app/helpers/hyku_knapsack/application_helper.rb +++ b/app/helpers/hyku_knapsack/application_helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module HykuKnapsack module ApplicationHelper end diff --git a/app/jobs/hyku_knapsack/application_job.rb b/app/jobs/hyku_knapsack/application_job.rb index cdf3c0a..79eb6b6 100644 --- a/app/jobs/hyku_knapsack/application_job.rb +++ b/app/jobs/hyku_knapsack/application_job.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module HykuKnapsack class ApplicationJob < ActiveJob::Base end diff --git a/app/mailers/hyku_knapsack/application_mailer.rb b/app/mailers/hyku_knapsack/application_mailer.rb index 4c099b8..32535de 100644 --- a/app/mailers/hyku_knapsack/application_mailer.rb +++ b/app/mailers/hyku_knapsack/application_mailer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module HykuKnapsack class ApplicationMailer < ActionMailer::Base default from: "from@example.com" diff --git a/app/models/hyku_knapsack/application_record.rb b/app/models/hyku_knapsack/application_record.rb index c04775b..61ee1e1 100644 --- a/app/models/hyku_knapsack/application_record.rb +++ b/app/models/hyku_knapsack/application_record.rb @@ -1,4 +1,6 @@ -module HykuKnapsac +# frozen_string_literal: true + +module HykuKnapsack class ApplicationRecord < ActiveRecord::Base self.abstract_class = true end diff --git a/bin/knapsacker b/bin/knapsacker index 2617e7c..b177eab 100755 --- a/bin/knapsacker +++ b/bin/knapsacker @@ -1,6 +1,6 @@ #!/usr/bin/env ruby -wU -# The purpose of this script is to quickly assess which files should: +# The purpose of this script is to quickly assess which specs should: # # - be removed (e.g. duplicate in Knapsack and Hyku) # - be reviewed (e.g. differences between Knapsack and Hyku) @@ -65,11 +65,10 @@ end # TODO: This is not generally working. dir_glob_patterns_to_check.each do |pattern| - Dir.glob(File.join(yours, pattern)).each do |your_path| - path = your_path.sub(File.join(yours, '/'), '') - upstream_path = File.join(upstream, path) - if File.exist?(upstream_path) - results = `diff #{your_path} #{upstream_path}`.strip + Dir.glob(pattern).each do |path| + hyku_path = File.join(upstream, path) + if File.exist?(hyku_path) + results = `diff #{path} #{hyku_path}`.strip if results.empty? duplicates << path else @@ -95,7 +94,7 @@ end puts "" puts "------------------------------------------------------------------" -puts "Files in \"yours\" that are exact duplicates of \"upstream\" files" +puts "Files in your Hyku that are exact duplicates of upstream Hyku file" puts "They are prefixed with a `='" puts "------------------------------------------------------------------" duplicates.each do |path| @@ -108,7 +107,7 @@ end puts "" puts "----------------------------------------------------" -puts "Files that are in \"yours\" but not in \"upstream\" " +puts "Files that are in your Hyku but not in upstream Hyku" puts "They are prefixed with a `+'" puts "----------------------------------------------------" in_yours_but_not_in_upstream.each do |path| @@ -118,7 +117,7 @@ end puts "" puts "-------------------------------------------------------------" -puts "Files that are changed in \"yours\" relative to \"upstream\"" +puts "Files that are changed in your Hyku relative to upstream Hyku" puts "They are prefixed with a `Δ'" puts "-------------------------------------------------------------" changed_in_yours.each do |path| diff --git a/bin/rails b/bin/rails index d1137e3..0739660 100755 --- a/bin/rails +++ b/bin/rails @@ -1,24 +1,4 @@ #!/usr/bin/env ruby -# This command will automatically be run when you run "rails" with Rails gems -# installed from the root of your application. - -ENGINE_ROOT = File.expand_path("..", __dir__) -ENGINE_PATH = File.expand_path("../lib/hyku_knapsack/engine", __dir__) -APP_PATH = File.expand_path("../hyrax-webapp/config/application", __dir__) - -# Set up gems listed in the Gemfile. -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) -require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"]) - -require "rails" -# Pick the frameworks you want: -require "active_model/railtie" -require "active_job/railtie" -require "active_record/railtie" -require "active_storage/engine" -require "action_controller/railtie" -require "action_mailer/railtie" -require "action_view/railtie" -require "action_cable/engine" -# require "rails/test_unit/railtie" -require "rails/engine/commands" +APP_PATH = File.expand_path('../config/application', __dir__) +require_relative '../config/boot' +require 'rails/commands' diff --git a/db-migrate-seed.sh b/db-migrate-seed.sh index 6e8b081..eeecf94 100755 --- a/db-migrate-seed.sh +++ b/db-migrate-seed.sh @@ -10,7 +10,6 @@ db-wait.sh "$SOLR_HOST:$SOLR_PORT" migrations_run=`PGPASSWORD=$DB_PASSWORD psql -h $DB_HOST -U $DB_USER $DB_NAME -t -c "SELECT version FROM schema_migrations ORDER BY schema_migrations" | wc -c` migrations_fs=`ls -l db/migrate/ | awk '{print $9}' | grep -o '[0-9]\+' | wc -c` if [[ "$migrations_run" -lt "$migrations_fs" ]]; then - bundle bundle exec rails db:create bundle exec rails db:migrate bundle exec rails db:seed diff --git a/docker-compose.yml b/docker-compose.yml index f538db4..1dccd2e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -70,8 +70,8 @@ services: extends: file: hyrax-webapp/docker-compose.yml service: web - # command left commented for situations where the Gemfile.lock needs to be updated before the app starts - # command: bash -l -c "sleep infinity" + # Uncomment command to access container with out starting bin/web. Useful for debugging or updating Gemfile.lock + # command: sleep infinity environment: # This line is what makes the knapsack include use the local code instead of the remote gem - BUNDLE_LOCAL__HYKU_KNAPSACK=/app/samvera @@ -84,7 +84,18 @@ services: extends: file: hyrax-webapp/docker-compose.yml service: worker + build: + context: . + target: hyku-worker + cache_from: + - ghcr.io/samvera/hyku/base:latest + - ghcr.io/samvera-labs/hyku_knapsack/worker:latest + args: + BUILDKIT_INLINE_CACHE: 1 + APP_PATH: ./hyrax-webapp image: ghcr.io/samvera-labs/hyku_knapsack/worker:${TAG:-latest} + # Uncomment command to access container with out starting bin/worker. Useful for debugging or updating Gemfile.lock + # command: sleep infinity volumes: - node_modules:/app/samvera/hyrax-webapp/node_modules:cached - uploads:/app/samvera/hyrax-webapp/public/uploads:cached diff --git a/hyku_knapsack.gemspec b/hyku_knapsack.gemspec index 959fcf2..ffc994a 100644 --- a/hyku_knapsack.gemspec +++ b/hyku_knapsack.gemspec @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative "lib/hyku_knapsack/version" Gem::Specification.new do |spec| diff --git a/hyrax-webapp b/hyrax-webapp index 391a7a3..e60efac 160000 --- a/hyrax-webapp +++ b/hyrax-webapp @@ -1 +1 @@ -Subproject commit 391a7a32faec0cd1f56af70c171833f27b617dc3 +Subproject commit e60efacb694ccdde973a6abd0e376e7dc9c74bf6 diff --git a/lib/hyku_knapsack/engine.rb b/lib/hyku_knapsack/engine.rb index 1ba2361..74de876 100644 --- a/lib/hyku_knapsack/engine.rb +++ b/lib/hyku_knapsack/engine.rb @@ -1,13 +1,28 @@ +# frozen_string_literal: true + module HykuKnapsack class Engine < ::Rails::Engine isolate_namespace HykuKnapsack + def self.load_translations! + HykuKnapsack::Engine.root.glob("config/locales/**/*.yml").each do |path| + I18n.load_path << path.to_s + end + + # Let's have unique load_paths. Later entries in the I18n.load_path array take precendence + # over earlier entries (e.g. lower array index means lower precedence). So we need to reverse + # the array, then call uniq (which will drop duplicates that show up later in the array). + # Then reverse again. (You know, kind of like an Uno reverse battle.) + I18n.load_path = I18n.load_path.reverse.uniq.reverse + I18n.backend.reload! + end + initializer :append_migrations do |app| # only add the migrations if they are not already copied # via the rake task. Allows gem to work both with the install:migrations # and without it. if !app.root.to_s.match(root.to_s) && - app.root.join('db/migrate').children.none? {|path| path.fnmatch?("*.hyku_knapsack.rb")} + app.root.join('db/migrate').children.none? { |path| path.fnmatch?("*.hyku_knapsack.rb") } config.paths["db/migrate"].expanded.each do |expanded_path| app.config.paths["db/migrate"] << expanded_path end @@ -16,16 +31,68 @@ class Engine < ::Rails::Engine config.before_initialize do config.i18n.load_path += Dir["#{config.root}/config/locales/**/*.yml"] + + #if Hyku::Application.respond_to?(:user_devise_parameters=) + # Hyku::Application.user_devise_parameters = %i[ + # database_authenticatable + # invitable + # recoverable + # rememberable + # trackable + # validatable + # omniauthable + # ] + #end end config.after_initialize do - my_engine_root = HykuKnapsack::Engine.root.to_s - paths = ActionController::Base.view_paths.collect{|p| p.to_s} - # This is the opposite of what you usually want to do. Normally app views override engine views - # but in our case things in the Knapsack override what is in the application - paths = [my_engine_root + '/app/views'] + paths - ActionController::Base.view_paths = paths.uniq + # need collection model first + collection_decorator = HykuKnapsack::Engine.root.join("app", "models", "collection_decorator.rb").to_s + Rails.configuration.cache_classes ? require(collection_decorator) : load(collection_decorator) + + HykuKnapsack::Engine.root.glob("app/**/*_decorator*.rb").sort.each do |c| + Rails.configuration.cache_classes ? require(c) : load(c) + end + + HykuKnapsack::Engine.root.glob("lib/**/*_decorator*.rb").sort.each do |c| + Rails.configuration.cache_classes ? require(c) : load(c) + end + + # By default plain text files are not processed for text extraction. In adding + # Adventist::TextFileTextExtractionService to the beginning of the services array we are + # enabling text extraction from plain text files. + # + # https://github.com/scientist-softserv/adventist-dl/blob/97bd05946345926b2b6c706bd90e183a9d78e8ef/config/application.rb#L68-L73 + Hyrax::DerivativeService.services = [ + Adventist::TextFileTextExtractionService, + IiifPrint::PluggableDerivativeService + ] + + # This is the opposite of what you usually want to do. Normally app views override engine + # views but in our case things in the Knapsack override what is in the application. + # Furthermore we need to account for when the ApplicationController and it's descendants set + # their individual view_paths. By looping through all descendants, we ensure that we have + # the Knapsack views at the beginning of the list of view_paths. + # + # In the load sequence, when we load ApplicationController, we establish the view_path for all + # future descendants. When we then encounter a descendant, we copy the + # ApplicationController's view_path to the descendant; then later after we've encountered most + # all of the descendants we updated the ApplicationController's view_path, but that does not + # propogate to the descendants' copied view_path. + ([::ApplicationController] + ::ApplicationController.descendants).each do |klass| + paths = klass.view_paths.collect(&:to_s) + paths = [HykuKnapsack::Engine.root.join('app', 'views').to_s] + paths + klass.view_paths = paths.uniq + end ::ApplicationController.send :helper, HykuKnapsack::Engine.helpers + + ## + # Ensure that all knapsack locales are the "first choice" of keys. We've already done this in + # the catalog controller to appease the Blacklight constraint of having translations loaded. + # However, between loading those translations in the catalog controller and now, the + # underlying application and even other engines might have further amended the load path. + # This is our "best" chance to do it at the latest possible moment. + HykuKnapsack::Engine.load_translations! end end end diff --git a/lib/hyku_knapsack/version.rb b/lib/hyku_knapsack/version.rb index 0521d65..1942f9b 100644 --- a/lib/hyku_knapsack/version.rb +++ b/lib/hyku_knapsack/version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module HykuKnapsack VERSION = "0.0.1" TEST = 'five' diff --git a/lib/tasks/hyku_knapsack_tasks.rake b/lib/tasks/hyku_knapsack_tasks.rake index e6109e3..e36341a 100644 --- a/lib/tasks/hyku_knapsack_tasks.rake +++ b/lib/tasks/hyku_knapsack_tasks.rake @@ -1,3 +1,4 @@ +# frozen_string_literal: true # desc "Explaining what the task does" # task :hyku_knapsack do # # Task goes here From 9bc2dc40a58aada23227828c764d6a3c4d8f90bb Mon Sep 17 00:00:00 2001 From: Shana Moore Date: Tue, 20 Feb 2024 08:02:06 -0800 Subject: [PATCH 2/6] merge in main --- hyrax-webapp | 2 +- lib/hyku_knapsack/engine.rb | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/hyrax-webapp b/hyrax-webapp index e60efac..4717a5b 160000 --- a/hyrax-webapp +++ b/hyrax-webapp @@ -1 +1 @@ -Subproject commit e60efacb694ccdde973a6abd0e376e7dc9c74bf6 +Subproject commit 4717a5b576cdbc87ab000345465a8da4cf4774a8 diff --git a/lib/hyku_knapsack/engine.rb b/lib/hyku_knapsack/engine.rb index 74de876..1452de4 100644 --- a/lib/hyku_knapsack/engine.rb +++ b/lib/hyku_knapsack/engine.rb @@ -46,10 +46,6 @@ def self.load_translations! end config.after_initialize do - # need collection model first - collection_decorator = HykuKnapsack::Engine.root.join("app", "models", "collection_decorator.rb").to_s - Rails.configuration.cache_classes ? require(collection_decorator) : load(collection_decorator) - HykuKnapsack::Engine.root.glob("app/**/*_decorator*.rb").sort.each do |c| Rails.configuration.cache_classes ? require(c) : load(c) end @@ -64,7 +60,7 @@ def self.load_translations! # # https://github.com/scientist-softserv/adventist-dl/blob/97bd05946345926b2b6c706bd90e183a9d78e8ef/config/application.rb#L68-L73 Hyrax::DerivativeService.services = [ - Adventist::TextFileTextExtractionService, + # Adventist::TextFileTextExtractionService, IiifPrint::PluggableDerivativeService ] From 0363299113f4d2e1991c0e42213dd990bc64448b Mon Sep 17 00:00:00 2001 From: Shana Moore Date: Tue, 20 Feb 2024 08:59:11 -0800 Subject: [PATCH 3/6] revert Gemfile.lock commit: https://github.com/samvera-labs/hyku_knapsack/commit/5a7c54cace96881a3963ab2fd881ca6ea3f57372 which wasn't intentional bumped rails to 7+ --- Gemfile.lock | 176 +++++++++++++++++++++++---------------------------- 1 file changed, 78 insertions(+), 98 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 433cc6f..480a615 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,83 +7,60 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.0.8) - actionpack (= 7.0.8) - activesupport (= 7.0.8) + actioncable (5.2.8.1) + actionpack (= 5.2.8.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.8) - actionpack (= 7.0.8) - activejob (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.0.8) - actionpack (= 7.0.8) - actionview (= 7.0.8) - activejob (= 7.0.8) - activesupport (= 7.0.8) + actionmailer (5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.8) - actionview (= 7.0.8) - activesupport (= 7.0.8) - rack (~> 2.0, >= 2.2.4) + actionpack (5.2.8.1) + actionview (= 5.2.8.1) + activesupport (= 5.2.8.1) + rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.8) - actionpack (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - globalid (>= 0.6.0) - nokogiri (>= 1.8.5) - actionview (7.0.8) - activesupport (= 7.0.8) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.2.8.1) + activesupport (= 5.2.8.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.8) - activesupport (= 7.0.8) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.8.1) + activesupport (= 5.2.8.1) globalid (>= 0.3.6) - activemodel (7.0.8) - activesupport (= 7.0.8) - activerecord (7.0.8) - activemodel (= 7.0.8) - activesupport (= 7.0.8) - activestorage (7.0.8) - actionpack (= 7.0.8) - activejob (= 7.0.8) - activerecord (= 7.0.8) - activesupport (= 7.0.8) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.8) + activemodel (5.2.8.1) + activesupport (= 5.2.8.1) + activerecord (5.2.8.1) + activemodel (= 5.2.8.1) + activesupport (= 5.2.8.1) + arel (>= 9.0) + activestorage (5.2.8.1) + actionpack (= 5.2.8.1) + activerecord (= 5.2.8.1) + marcel (~> 1.0.0) + activesupport (5.2.8.1) concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + arel (9.0.0) builder (3.2.4) concurrent-ruby (1.2.2) crass (1.0.6) date (3.3.3) erubi (1.12.0) - globalid (1.2.1) - activesupport (>= 6.1) + globalid (1.1.0) + activesupport (>= 5.0) i18n (1.14.1) concurrent-ruby (~> 1.0) - loofah (2.21.4) + loofah (2.20.0) crass (~> 1.0.2) - nokogiri (>= 1.12.0) + nokogiri (>= 1.5.9) mail (2.8.1) mini_mime (>= 0.1.1) net-imap @@ -91,61 +68,64 @@ GEM net-smtp marcel (1.0.2) method_source (1.0.0) - mini_mime (1.1.5) - minitest (5.20.0) - net-imap (0.4.3) + mini_mime (1.1.2) + minitest (5.18.1) + net-imap (0.3.4) date net-protocol net-pop (0.1.2) net-protocol net-protocol (0.2.1) timeout - net-smtp (0.4.0) + net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.15.4-arm64-darwin) + nokogiri (1.14.4-arm64-darwin) racc (~> 1.4) - racc (1.7.2) - rack (2.2.8) + racc (1.6.2) + rack (2.2.7) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.8) - actioncable (= 7.0.8) - actionmailbox (= 7.0.8) - actionmailer (= 7.0.8) - actionpack (= 7.0.8) - actiontext (= 7.0.8) - actionview (= 7.0.8) - activejob (= 7.0.8) - activemodel (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - bundler (>= 1.15.0) - railties (= 7.0.8) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest + rails (5.2.8.1) + actioncable (= 5.2.8.1) + actionmailer (= 5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + activemodel (= 5.2.8.1) + activerecord (= 5.2.8.1) + activestorage (= 5.2.8.1) + activesupport (= 5.2.8.1) + bundler (>= 1.3.0) + railties (= 5.2.8.1) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.8) - actionpack (= 7.0.8) - activesupport (= 7.0.8) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (5.2.8.1) + actionpack (= 5.2.8.1) + activesupport (= 5.2.8.1) method_source - rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) - rake (13.1.0) - thor (1.3.0) - timeout (0.4.0) - tzinfo (2.0.6) + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rake (13.0.6) + sprockets (3.7.2) concurrent-ruby (~> 1.0) - websocket-driver (0.7.6) + rack (> 1, < 3) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + thor (1.2.1) + thread_safe (0.3.6) + timeout (0.3.2) + tzinfo (1.2.11) + thread_safe (~> 0.1) + websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.6.12) PLATFORMS ruby @@ -154,4 +134,4 @@ DEPENDENCIES hyku_knapsack! BUNDLED WITH - 2.1.4 + 2.1.4 \ No newline at end of file From 536c7c6c4baba12d63761b0bac2d5d0157bb4495 Mon Sep 17 00:00:00 2001 From: Shana Moore Date: Tue, 20 Feb 2024 09:35:27 -0800 Subject: [PATCH 4/6] Revert "revert Gemfile.lock" This reverts commit 0363299113f4d2e1991c0e42213dd990bc64448b. --- Gemfile.lock | 176 ++++++++++++++++++++++++++++----------------------- 1 file changed, 98 insertions(+), 78 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 480a615..433cc6f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,60 +7,83 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (5.2.8.1) - actionpack (= 5.2.8.1) + actioncable (7.0.8) + actionpack (= 7.0.8) + activesupport (= 7.0.8) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.8.1) - actionpack (= 5.2.8.1) - actionview (= 5.2.8.1) - activejob (= 5.2.8.1) + actionmailbox (7.0.8) + actionpack (= 7.0.8) + activejob (= 7.0.8) + activerecord (= 7.0.8) + activestorage (= 7.0.8) + activesupport (= 7.0.8) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.8) + actionpack (= 7.0.8) + actionview (= 7.0.8) + activejob (= 7.0.8) + activesupport (= 7.0.8) mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp rails-dom-testing (~> 2.0) - actionpack (5.2.8.1) - actionview (= 5.2.8.1) - activesupport (= 5.2.8.1) - rack (~> 2.0, >= 2.0.8) + actionpack (7.0.8) + actionview (= 7.0.8) + activesupport (= 7.0.8) + rack (~> 2.0, >= 2.2.4) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.8.1) - activesupport (= 5.2.8.1) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.8) + actionpack (= 7.0.8) + activerecord (= 7.0.8) + activestorage (= 7.0.8) + activesupport (= 7.0.8) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.8) + activesupport (= 7.0.8) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.2.8.1) - activesupport (= 5.2.8.1) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.8) + activesupport (= 7.0.8) globalid (>= 0.3.6) - activemodel (5.2.8.1) - activesupport (= 5.2.8.1) - activerecord (5.2.8.1) - activemodel (= 5.2.8.1) - activesupport (= 5.2.8.1) - arel (>= 9.0) - activestorage (5.2.8.1) - actionpack (= 5.2.8.1) - activerecord (= 5.2.8.1) - marcel (~> 1.0.0) - activesupport (5.2.8.1) + activemodel (7.0.8) + activesupport (= 7.0.8) + activerecord (7.0.8) + activemodel (= 7.0.8) + activesupport (= 7.0.8) + activestorage (7.0.8) + actionpack (= 7.0.8) + activejob (= 7.0.8) + activerecord (= 7.0.8) + activesupport (= 7.0.8) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.8) concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - arel (9.0.0) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) builder (3.2.4) concurrent-ruby (1.2.2) crass (1.0.6) date (3.3.3) erubi (1.12.0) - globalid (1.1.0) - activesupport (>= 5.0) + globalid (1.2.1) + activesupport (>= 6.1) i18n (1.14.1) concurrent-ruby (~> 1.0) - loofah (2.20.0) + loofah (2.21.4) crass (~> 1.0.2) - nokogiri (>= 1.5.9) + nokogiri (>= 1.12.0) mail (2.8.1) mini_mime (>= 0.1.1) net-imap @@ -68,64 +91,61 @@ GEM net-smtp marcel (1.0.2) method_source (1.0.0) - mini_mime (1.1.2) - minitest (5.18.1) - net-imap (0.3.4) + mini_mime (1.1.5) + minitest (5.20.0) + net-imap (0.4.3) date net-protocol net-pop (0.1.2) net-protocol net-protocol (0.2.1) timeout - net-smtp (0.3.3) + net-smtp (0.4.0) net-protocol nio4r (2.5.9) - nokogiri (1.14.4-arm64-darwin) + nokogiri (1.15.4-arm64-darwin) racc (~> 1.4) - racc (1.6.2) - rack (2.2.7) + racc (1.7.2) + rack (2.2.8) rack-test (2.1.0) rack (>= 1.3) - rails (5.2.8.1) - actioncable (= 5.2.8.1) - actionmailer (= 5.2.8.1) - actionpack (= 5.2.8.1) - actionview (= 5.2.8.1) - activejob (= 5.2.8.1) - activemodel (= 5.2.8.1) - activerecord (= 5.2.8.1) - activestorage (= 5.2.8.1) - activesupport (= 5.2.8.1) - bundler (>= 1.3.0) - railties (= 5.2.8.1) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) + rails (7.0.8) + actioncable (= 7.0.8) + actionmailbox (= 7.0.8) + actionmailer (= 7.0.8) + actionpack (= 7.0.8) + actiontext (= 7.0.8) + actionview (= 7.0.8) + activejob (= 7.0.8) + activemodel (= 7.0.8) + activerecord (= 7.0.8) + activestorage (= 7.0.8) + activesupport (= 7.0.8) + bundler (>= 1.15.0) + railties (= 7.0.8) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (5.2.8.1) - actionpack (= 5.2.8.1) - activesupport (= 5.2.8.1) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + railties (7.0.8) + actionpack (= 7.0.8) + activesupport (= 7.0.8) method_source - rake (>= 0.8.7) - thor (>= 0.19.0, < 2.0) - rake (13.0.6) - sprockets (3.7.2) + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rake (13.1.0) + thor (1.3.0) + timeout (0.4.0) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - sprockets (>= 3.0.0) - thor (1.2.1) - thread_safe (0.3.6) - timeout (0.3.2) - tzinfo (1.2.11) - thread_safe (~> 0.1) - websocket-driver (0.7.5) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) + zeitwerk (2.6.12) PLATFORMS ruby @@ -134,4 +154,4 @@ DEPENDENCIES hyku_knapsack! BUNDLED WITH - 2.1.4 \ No newline at end of file + 2.1.4 From 01c95c14bbc503d92f2ed713843c61cf2ccd4c47 Mon Sep 17 00:00:00 2001 From: Shana Moore Date: Tue, 20 Feb 2024 10:17:50 -0800 Subject: [PATCH 5/6] Revert "Updating knapsack's Gemfile.lock" This reverts commit 5a7c54cace96881a3963ab2fd881ca6ea3f57372. --- Gemfile.lock | 178 +++++++++++++++++++++++---------------------------- 1 file changed, 79 insertions(+), 99 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 433cc6f..3461ff2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,89 +1,66 @@ PATH remote: . specs: - hyku_knapsack (0.0.1) + hyku-knapsack (0.0.1) rails (>= 5.2.0) GEM remote: https://rubygems.org/ specs: - actioncable (7.0.8) - actionpack (= 7.0.8) - activesupport (= 7.0.8) + actioncable (5.2.8.1) + actionpack (= 5.2.8.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.8) - actionpack (= 7.0.8) - activejob (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.0.8) - actionpack (= 7.0.8) - actionview (= 7.0.8) - activejob (= 7.0.8) - activesupport (= 7.0.8) + actionmailer (5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.8) - actionview (= 7.0.8) - activesupport (= 7.0.8) - rack (~> 2.0, >= 2.2.4) + actionpack (5.2.8.1) + actionview (= 5.2.8.1) + activesupport (= 5.2.8.1) + rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.8) - actionpack (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - globalid (>= 0.6.0) - nokogiri (>= 1.8.5) - actionview (7.0.8) - activesupport (= 7.0.8) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (5.2.8.1) + activesupport (= 5.2.8.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.8) - activesupport (= 7.0.8) + rails-html-sanitizer (~> 1.0, >= 1.0.3) + activejob (5.2.8.1) + activesupport (= 5.2.8.1) globalid (>= 0.3.6) - activemodel (7.0.8) - activesupport (= 7.0.8) - activerecord (7.0.8) - activemodel (= 7.0.8) - activesupport (= 7.0.8) - activestorage (7.0.8) - actionpack (= 7.0.8) - activejob (= 7.0.8) - activerecord (= 7.0.8) - activesupport (= 7.0.8) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.8) + activemodel (5.2.8.1) + activesupport (= 5.2.8.1) + activerecord (5.2.8.1) + activemodel (= 5.2.8.1) + activesupport (= 5.2.8.1) + arel (>= 9.0) + activestorage (5.2.8.1) + actionpack (= 5.2.8.1) + activerecord (= 5.2.8.1) + marcel (~> 1.0.0) + activesupport (5.2.8.1) concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + arel (9.0.0) builder (3.2.4) concurrent-ruby (1.2.2) crass (1.0.6) date (3.3.3) erubi (1.12.0) - globalid (1.2.1) - activesupport (>= 6.1) + globalid (1.1.0) + activesupport (>= 5.0) i18n (1.14.1) concurrent-ruby (~> 1.0) - loofah (2.21.4) + loofah (2.20.0) crass (~> 1.0.2) - nokogiri (>= 1.12.0) + nokogiri (>= 1.5.9) mail (2.8.1) mini_mime (>= 0.1.1) net-imap @@ -91,67 +68,70 @@ GEM net-smtp marcel (1.0.2) method_source (1.0.0) - mini_mime (1.1.5) - minitest (5.20.0) - net-imap (0.4.3) + mini_mime (1.1.2) + minitest (5.18.1) + net-imap (0.3.4) date net-protocol net-pop (0.1.2) net-protocol net-protocol (0.2.1) timeout - net-smtp (0.4.0) + net-smtp (0.3.3) net-protocol nio4r (2.5.9) - nokogiri (1.15.4-arm64-darwin) + nokogiri (1.14.4-arm64-darwin) racc (~> 1.4) - racc (1.7.2) - rack (2.2.8) + racc (1.6.2) + rack (2.2.7) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.8) - actioncable (= 7.0.8) - actionmailbox (= 7.0.8) - actionmailer (= 7.0.8) - actionpack (= 7.0.8) - actiontext (= 7.0.8) - actionview (= 7.0.8) - activejob (= 7.0.8) - activemodel (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - bundler (>= 1.15.0) - railties (= 7.0.8) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest + rails (5.2.8.1) + actioncable (= 5.2.8.1) + actionmailer (= 5.2.8.1) + actionpack (= 5.2.8.1) + actionview (= 5.2.8.1) + activejob (= 5.2.8.1) + activemodel (= 5.2.8.1) + activerecord (= 5.2.8.1) + activestorage (= 5.2.8.1) + activesupport (= 5.2.8.1) + bundler (>= 1.3.0) + railties (= 5.2.8.1) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.8) - actionpack (= 7.0.8) - activesupport (= 7.0.8) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (5.2.8.1) + actionpack (= 5.2.8.1) + activesupport (= 5.2.8.1) method_source - rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) - rake (13.1.0) - thor (1.3.0) - timeout (0.4.0) - tzinfo (2.0.6) + rake (>= 0.8.7) + thor (>= 0.19.0, < 2.0) + rake (13.0.6) + sprockets (3.7.2) concurrent-ruby (~> 1.0) - websocket-driver (0.7.6) + rack (> 1, < 3) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + thor (1.2.1) + thread_safe (0.3.6) + timeout (0.3.2) + tzinfo (1.2.11) + thread_safe (~> 0.1) + websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.6.12) PLATFORMS ruby DEPENDENCIES - hyku_knapsack! + hyku-knapsack! BUNDLED WITH 2.1.4 From 96a43bf64ceb155f83fe7250bb985fb3f2d4cb80 Mon Sep 17 00:00:00 2001 From: Shana Moore Date: Tue, 20 Feb 2024 11:03:12 -0800 Subject: [PATCH 6/6] Update Gemfile.lock --- Gemfile.lock | 1290 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1267 insertions(+), 23 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3461ff2..fd96a5d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,60 @@ +GIT + remote: https://github.com/active-elastic-job/active-elastic-job.git + revision: ec51c5d9dedc4a1b47f2db41f26d5fceb251e979 + ref: ec51c5d9dedc4a1b47f2db41f26d5fceb251e979 + specs: + active_elastic_job (2.0.1) + aws-sdk-sqs (~> 1) + rails (>= 4.2) + +GIT + remote: https://github.com/samvera-labs/hyrax-doi.git + revision: 8fb839af0517096bb05f09925fe1aa77fe32b84a + branch: main + specs: + hyrax-doi (0.2.0) + bolognese (~> 1.8, >= 1.8.6) + flipflop (~> 2.3) + hyrax (>= 2.9, < 4.0) + rails (~> 5.2.4, >= 5.2.4.3) + +GIT + remote: https://github.com/samvera-labs/hyrax-iiif_av.git + revision: 6273f90016c153d2add33f85cc24285d51a25382 + branch: main + specs: + hyrax-iiif_av (0.2.0) + blacklight + hyrax (>= 2.9, < 4.0) + iiif_manifest (> 0.5) + rails (~> 5.1) + +GIT + remote: https://github.com/scientist-softserv/iiif_print.git + revision: b39296dc066867a0017f0ab1dbfcf44d7e656e50 + branch: main + specs: + iiif_print (1.0.0) + blacklight_iiif_search (>= 1.0, < 3.0) + derivative-rodeo (~> 0.5) + hyrax (>= 2.5, < 6) + nokogiri (>= 1.13.2) + rdf-vocab (~> 3.0) + +GIT + remote: https://github.com/stanhu/omniauth-cas.git + revision: 4211e6d05941b4a981f9a36b49ec166cecd0e271 + ref: 4211e6d05941b4a981f9a36b49ec166cecd0e271 + specs: + omniauth-cas (2.0.0) + addressable (~> 2.3) + nokogiri (~> 1.5) + omniauth (>= 1.2, < 3) + PATH remote: . specs: - hyku-knapsack (0.0.1) + hyku_knapsack (0.0.1) rails (>= 5.2.0) GEM @@ -30,15 +83,41 @@ GEM erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) + active-fedora (13.3.0) + active-triples (>= 0.11.0, < 2.0.0) + activemodel (>= 5.1) + activesupport (>= 5.1) + deprecation + faraday (~> 0.12) + faraday-encoding (>= 0.0.5) + ldp (>= 0.7.0, < 2) + rsolr (>= 1.1.2, < 3) + ruby-progressbar (~> 1.0) + active-triples (1.2.0) + activemodel (>= 3.0.0) + activesupport (>= 3.0.0) + rdf (>= 2.0.2, < 4.0) + rdf-vocab (>= 2.0, < 4.0) + active_encode (0.8.2) + rails + sprockets (< 4) activejob (5.2.8.1) activesupport (= 5.2.8.1) globalid (>= 0.3.6) activemodel (5.2.8.1) activesupport (= 5.2.8.1) + activemodel-serializers-xml (1.0.2) + activemodel (> 5.x) + activesupport (> 5.x) + builder (~> 3.1) activerecord (5.2.8.1) activemodel (= 5.2.8.1) activesupport (= 5.2.8.1) arel (>= 9.0) + activerecord-import (1.5.1) + activerecord (>= 4.2) + activerecord-nulldb-adapter (1.0.1) + activerecord (>= 5.2.0, < 7.2) activestorage (5.2.8.1) actionpack (= 5.2.8.1) activerecord (= 5.2.8.1) @@ -48,44 +127,796 @@ GEM i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) + aes_key_wrap (1.1.0) + almond-rails (0.3.0) + rails (>= 4.2) + amazing_print (1.5.0) + apartment (2.2.1) + activerecord (>= 3.1.2, < 6.0) + parallel (>= 0.7.1) + public_suffix (>= 2) + rack (>= 1.3.6) arel (9.0.0) + ast (2.4.2) + attr_required (1.0.2) + autoprefixer-rails (10.4.16.0) + execjs (~> 2) + awesome_nested_set (3.6.0) + activerecord (>= 4.0.0, < 7.2) + aws-eventstream (1.3.0) + aws-partitions (1.894.0) + aws-sdk-core (3.191.2) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.8) + base64 + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.77.0) + aws-sdk-core (~> 3, >= 3.191.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.143.0) + aws-sdk-core (~> 3, >= 3.191.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.8) + aws-sdk-sqs (1.70.0) + aws-sdk-core (~> 3, >= 3.191.0) + aws-sigv4 (~> 1.1) + aws-sigv4 (1.8.0) + aws-eventstream (~> 1, >= 1.0.2) + babel-source (5.8.35) + babel-transpiler (0.7.0) + babel-source (>= 4.0, < 6) + execjs (~> 2.0) + bagit (0.4.6) + docopt (~> 0.5.0) + validatable (~> 1.6) + base64 (0.2.0) + bcp47 (0.3.3) + i18n + bcrypt (3.1.20) + benchmark_methods (0.7) + better_html (1.0.16) + actionview (>= 4.0) + activesupport (>= 4.0) + ast (~> 2.0) + erubi (~> 1.4) + html_tokenizer (~> 0.0.6) + parser (>= 2.4) + smart_properties + bibtex-ruby (6.1.0) + latex-decode (~> 0.0) + racc (~> 1.7) + bigdecimal (3.1.6) + bindata (2.5.0) + bindex (0.8.1) + blacklight (6.25.0) + bootstrap-sass (~> 3.2) + deprecation + globalid + jbuilder (~> 2.7) + kaminari (>= 0.15) + nokogiri (~> 1.6) + rails (>= 4.2, < 6) + rsolr (>= 1.0.6, < 3) + twitter-typeahead-rails (= 0.11.1.pre.corejavascript) + blacklight-access_controls (0.6.2) + blacklight (~> 6.0) + cancancan (~> 1.8) + deprecation (~> 1.0) + blacklight-gallery (0.12.0) + blacklight (~> 6.3) + bootstrap-sass (~> 3.0) + openseadragon (>= 0.2.0) + rails + blacklight_iiif_search (1.0.0) + blacklight (~> 6.0) + iiif-presentation + rails (>= 4.2, < 6) + blacklight_oai_provider (6.1.1) + blacklight (~> 6.0) + oai (~> 1.0) + bolognese (1.11.5) + activesupport (>= 4.2.5) + benchmark_methods (~> 0.7) + bibtex-ruby (>= 5.1.0) + builder (~> 3.2, >= 3.2.2) + citeproc-ruby (~> 1.1, >= 1.1.12) + colorize (~> 0.8.1) + concurrent-ruby (~> 1.1, >= 1.1.5) + csl-styles (~> 1.0, >= 1.0.1.10) + edtf (~> 3.0, >= 3.0.4) + gender_detector (~> 0.1.2) + iso8601 (~> 0.9.1) + json-ld-preloaded (~> 3.1, >= 3.1.3) + jsonlint (~> 0.3.0) + loofah (~> 2.0, >= 2.0.3) + maremma (>= 4.9.4, < 5) + namae (~> 1.0) + nokogiri (>= 1.13.2, < 1.14) + oj (~> 3.10) + oj_mimic_json (~> 1.0, >= 1.0.1) + postrank-uri (~> 1.0, >= 1.0.18) + rdf-rdfxml (~> 3.1) + rdf-turtle (~> 3.1) + thor (>= 0.19) + bootstrap-datepicker-rails (1.10.0.1) + railties (>= 3.0) + bootstrap-sass (3.4.1) + autoprefixer-rails (>= 5.2.1) + sassc (>= 2.0.0) + breadcrumbs_on_rails (3.0.1) + browse-everything (1.3.0) + addressable (~> 2.5) + aws-sdk-s3 + dropbox_api (>= 0.1.20) + google-apis-drive_v3 + googleauth (>= 0.6.6, < 2.0) + rails (>= 4.2, < 7.2) + ruby-box + signet (~> 0.8) + typhoeus builder (3.2.4) - concurrent-ruby (1.2.2) + bulkrax (5.5.1) + bagit (~> 0.4) + coderay + iso8601 (~> 0.9.0) + kaminari + language_list (~> 1.2, >= 1.2.1) + libxml-ruby (~> 3.2.4) + loofah (>= 2.2.3) + oai (>= 0.4, < 2.x) + rack (>= 2.0.6) + rails (>= 5.1.6) + rdf (>= 2.0.2, < 4.0) + rubyzip + simple_form + byebug (11.1.3) + cancancan (1.17.0) + capybara (3.39.2) + addressable + matrix + mini_mime (>= 0.1.3) + nokogiri (~> 1.8) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + capybara-screenshot (1.0.26) + capybara (>= 1.0, < 4) + launchy + carrierwave (1.3.4) + activemodel (>= 4.0.0) + activesupport (>= 4.0.0) + mime-types (>= 1.16) + ssrf_filter (~> 1.0, < 1.1.0) + carrierwave-aws (1.4.0) + aws-sdk-s3 (~> 1.0) + carrierwave (>= 0.7, < 2.1) + citeproc (1.0.10) + namae (~> 1.0) + citeproc-ruby (1.1.14) + citeproc (~> 1.0, >= 1.0.9) + csl (~> 1.6) + clipboard-rails (1.7.1) + cocoon (1.2.15) + codemirror-rails (5.16.0) + railties (>= 3.0, < 6.0) + coderay (1.1.3) + coffee-rails (4.2.2) + coffee-script (>= 2.2.0) + railties (>= 4.0.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.12.2) + colorize (0.8.1) + concurrent-ruby (1.2.3) + connection_pool (2.4.1) + crack (1.0.0) + bigdecimal + rexml crass (1.0.6) - date (3.3.3) + csl (1.6.0) + namae (~> 1.0) + rexml + csl-styles (1.0.1.11) + csl (~> 1.0) + database_cleaner (2.0.2) + database_cleaner-active_record (>= 2, < 3) + database_cleaner-active_record (2.1.0) + activerecord (>= 5.a) + database_cleaner-core (~> 2.0.0) + database_cleaner-core (2.0.1) + date (3.3.4) + declarative (0.0.20) + declarative-builder (0.1.0) + declarative-option (< 0.2.0) + declarative-option (0.1.0) + deprecation (1.1.0) + activesupport + derivative-rodeo (0.5.3) + activesupport (>= 5) + aws-sdk-s3 + aws-sdk-sqs + httparty + marcel + mime-types + mini_magick + nokogiri + devise (4.9.3) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0) + responders + warden (~> 1.2.3) + devise-guests (0.8.2) + devise + devise-i18n (1.12.0) + devise (>= 4.9.0) + devise_invitable (1.7.5) + actionmailer (>= 4.1.0) + devise (>= 4.0.0) + diff-lcs (1.5.1) + disposable (0.4.7) + declarative (>= 0.0.9, < 1.0.0) + declarative-builder (< 0.2.0) + declarative-option (< 0.2.0) + representable (>= 2.4.0, <= 3.1.0) + uber (< 0.2.0) + docile (1.4.0) + docopt (0.5.0) + draper (4.0.2) + actionpack (>= 5.0) + activemodel (>= 5.0) + activemodel-serializers-xml (>= 1.0) + activesupport (>= 5.0) + request_store (>= 1.0) + ruby2_keywords + dropbox_api (0.1.21) + faraday (< 3.0) + oauth2 (~> 1.1) + dry-configurable (0.16.1) + dry-core (~> 0.6) + zeitwerk (~> 2.6) + dry-container (0.11.0) + concurrent-ruby (~> 1.0) + dry-core (0.9.1) + concurrent-ruby (~> 1.0) + zeitwerk (~> 2.6) + dry-equalizer (0.3.0) + dry-events (0.2.0) + concurrent-ruby (~> 1.0) + dry-core (~> 0.4) + dry-equalizer (~> 0.2) + dry-inflector (0.3.0) + dry-initializer (3.1.1) + dry-logic (1.3.0) + concurrent-ruby (~> 1.0) + dry-core (~> 0.9, >= 0.9) + zeitwerk (~> 2.6) + dry-matcher (0.9.0) + dry-core (~> 0.4, >= 0.4.8) + dry-monads (1.4.0) + concurrent-ruby (~> 1.0) + dry-core (~> 0.7) + dry-schema (1.11.3) + concurrent-ruby (~> 1.0) + dry-configurable (~> 0.16, >= 0.16) + dry-core (~> 0.9, >= 0.9) + dry-initializer (~> 3.0) + dry-logic (~> 1.3) + dry-types (~> 1.6) + zeitwerk (~> 2.6) + dry-struct (1.5.2) + dry-core (~> 0.9, >= 0.9) + dry-types (~> 1.6) + ice_nine (~> 0.11) + zeitwerk (~> 2.6) + dry-transaction (0.13.3) + dry-container (>= 0.2.8) + dry-events (>= 0.1.0) + dry-matcher (>= 0.7.0) + dry-monads (>= 0.4.0) + dry-types (1.6.1) + concurrent-ruby (~> 1.0) + dry-container (~> 0.3) + dry-core (~> 0.9, >= 0.9) + dry-inflector (~> 0.1, >= 0.1.2) + dry-logic (~> 1.3, >= 1.3) + zeitwerk (~> 2.6) + dry-validation (1.9.0) + concurrent-ruby (~> 1.0) + dry-container (~> 0.7, >= 0.7.1) + dry-core (~> 0.9, >= 0.9) + dry-initializer (~> 3.0) + dry-schema (~> 1.11, >= 1.11.0) + zeitwerk (~> 2.6) + easy_translate (0.5.1) + thread + thread_safe + ebnf (2.2.1) + amazing_print (~> 1.2) + htmlentities (~> 4.3) + rdf (~> 3.1) + scanf (~> 1.0) + sxp (~> 1.1) + unicode-types (~> 1.6) + edtf (3.1.1) + activesupport (>= 3.0, < 8.0) + equivalent-xml (0.6.0) + nokogiri (>= 1.4.3) erubi (1.12.0) + ethon (0.16.0) + ffi (>= 1.15.0) + excon (0.71.1) + execjs (2.9.1) + factory_bot (6.4.5) + activesupport (>= 5.0.0) + factory_bot_rails (6.4.3) + factory_bot (~> 6.4) + railties (>= 5.0.0) + faraday (0.17.6) + multipart-post (>= 1.2, < 3) + faraday-encoding (0.0.5) + faraday + faraday_middleware (0.14.0) + faraday (>= 0.7.4, < 1.0) + fcrepo_wrapper (0.9.0) + ruby-progressbar + ffi (1.16.3) + flipflop (2.6.0) + activesupport (>= 4.0) + flot-rails (0.0.7) + jquery-rails + flutie (2.2.0) + font-awesome-rails (4.7.0.8) + railties (>= 3.2, < 8.0) + gender_detector (0.1.2) + unicode_utils (>= 1.3.0) + geocoder (1.8.2) globalid (1.1.0) activesupport (>= 5.0) + google-apis-core (0.11.3) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + google-apis-drive_v3 (0.46.0) + google-apis-core (>= 0.11.0, < 2.a) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + haml (5.2.2) + temple (>= 0.8.0) + tilt + hamster (3.0.0) + concurrent-ruby (~> 1.0) + hashdiff (1.1.0) + hashie (5.0.0) + highline (2.1.0) + hiredis (0.6.3) + html_tokenizer (0.0.7) + htmlentities (4.3.4) + http_logger (0.7.0) + httparty (0.21.0) + mini_mime (>= 1.0.0) + multi_xml (>= 0.5.2) + httpclient (2.8.3) + hydra-access-controls (11.0.7) + active-fedora (>= 10.0.0) + activesupport (>= 4, < 6) + blacklight (>= 5.16) + blacklight-access_controls (~> 0.6.0) + cancancan (~> 1.8) + deprecation (~> 1.0) + hydra-core (11.0.7) + hydra-access-controls (= 11.0.7) + railties (>= 4.0.0, < 6) + hydra-derivatives (3.7.0) + active-fedora (>= 11.5.6, != 13.2.1, != 13.2.0, != 13.1.3, != 13.1.2, != 13.1.1, != 13.1.0, != 13.0.0, != 12.2.1, != 12.2.0, != 12.1.1, != 12.1.0, != 12.0.3, != 12.0.2, != 12.0.1, != 12.0.0) + active_encode (~> 0.1) + activesupport (>= 4.0, < 7) + addressable (~> 2.5) + deprecation + mime-types (> 2.0, < 4.0) + mini_magick (>= 3.2, < 5) + hydra-editor (5.0.5) + active-fedora (>= 9.0.0) + activerecord (~> 5.0) + almond-rails (~> 0.1) + cancancan (~> 1.8) + rails (>= 5, < 6) + simple_form (>= 4.1.0, < 6.0) + sprockets (~> 3.7) + sprockets-es6 + hydra-file_characterization (1.1.2) + activesupport (>= 3.0.0) + hydra-head (11.0.7) + hydra-access-controls (= 11.0.7) + hydra-core (= 11.0.7) + rails (>= 5.2, < 6.1) + hydra-pcdm (1.3.0) + active-fedora (>= 10, < 15) + mime-types (>= 1) + rdf-vocab + hydra-works (2.1.0) + activesupport (>= 5.2, < 7.1) + hydra-derivatives (~> 3.6) + hydra-file_characterization (~> 1.0) + hydra-pcdm (>= 0.9) + hyrax (3.5.0) + active-fedora (~> 13.1, >= 13.1.2) + almond-rails (~> 0.1) + awesome_nested_set (~> 3.1) + blacklight (~> 6.14) + blacklight-gallery (~> 0.7) + breadcrumbs_on_rails (~> 3.0) + browse-everything (>= 0.16, < 2.0) + carrierwave (~> 1.0) + clipboard-rails (~> 1.5) + draper (~> 4.0) + dry-equalizer (~> 0.2) + dry-events (~> 0.2.0) + dry-monads (< 1.5) + dry-struct (~> 1.0) + dry-transaction (~> 0.11) + dry-validation (~> 1.3) + flipflop (~> 2.3) + flot-rails (~> 0.0.6) + font-awesome-rails (~> 4.2) + hydra-derivatives (~> 3.3) + hydra-editor (~> 5.0, >= 5.0.4) + hydra-file_characterization (~> 1.1.2) + hydra-head (~> 11.0, >= 11.0.1) + hydra-works (>= 0.16) + iiif_manifest (>= 0.3, < 2.0) + jquery-datatables-rails (~> 3.4) + jquery-ui-rails (~> 6.0) + json-ld (< 3.2) + json-schema + kaminari_route_prefix (~> 0.1.1) + legato (~> 0.3) + linkeddata + mailboxer (~> 0.12) + nest (~> 3.1) + noid-rails (~> 3.0.0) + oauth + oauth2 (~> 1.2) + posix-spawn + power_converter (~> 0.1, >= 0.1.2) + psych (~> 3.3) + qa (~> 5.5, >= 5.5.1) + rails (~> 5.0) + rails_autolink (~> 1.1) + rdf-rdfxml + rdf-vocab (~> 3.0) + redis (~> 4.0) + redis-namespace (~> 1.5) + redlock (>= 0.1.2) + reform (~> 2.3) + reform-rails (~> 0.2.0) + retriable (>= 2.9, < 4.0) + samvera-nesting_indexer (~> 2.0) + sass-rails (~> 5.0) + select2-rails (~> 3.5) + signet + tinymce-rails (~> 5.10) + valkyrie (~> 2, >= 2.1.1) i18n (1.14.1) concurrent-ruby (~> 1.0) - loofah (2.20.0) + i18n-debug (1.2.0) + i18n (< 2) + i18n-tasks (1.0.12) + activesupport (>= 4.0.2) + ast (>= 2.1.0) + better_html (>= 1.0, < 3.0) + erubi + highline (>= 2.0.0) + i18n + parser (>= 2.2.3.0) + rails-i18n + rainbow (>= 2.2.2, < 4.0) + terminal-table (>= 1.5.1) + ice_nine (0.11.2) + iiif-presentation (1.1.0) + activesupport (>= 3.2.18) + faraday (>= 0.9) + json + iiif_manifest (1.4.0) + activesupport (>= 4) + iso-639 (0.3.6) + iso8601 (0.9.1) + jbuilder (2.11.5) + actionview (>= 5.0.0) + activesupport (>= 5.0.0) + jmespath (1.6.2) + jquery-datatables-rails (3.4.0) + actionpack (>= 3.1) + jquery-rails + railties (>= 3.1) + sass-rails + jquery-rails (4.6.0) + rails-dom-testing (>= 1, < 3) + railties (>= 4.2.0) + thor (>= 0.14, < 2.0) + jquery-ui-rails (6.0.1) + railties (>= 3.2.16) + json (2.7.1) + json-canonicalization (0.3.1) + json-jwt (1.15.3) + activesupport (>= 4.2) + aes_key_wrap + bindata + httpclient + json-ld (3.1.10) + htmlentities (~> 4.3) + json-canonicalization (~> 0.2) + link_header (~> 0.0, >= 0.0.8) + multi_json (~> 1.14) + rack (~> 2.0) + rdf (~> 3.1) + json-ld-preloaded (3.1.6) + json-ld (~> 3.1) + rdf (~> 3.1) + json-schema (4.1.1) + addressable (>= 2.8) + jsonlint (0.3.0) + oj (~> 3) + optimist (~> 3) + jwt (2.8.0) + base64 + kaminari (1.2.2) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) + actionview + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) + activerecord + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) + kaminari_route_prefix (0.1.1) + kaminari (~> 1.0) + language_list (1.2.1) + latex-decode (0.4.0) + launchy (2.5.2) + addressable (~> 2.8) + ld-patch (3.1.3) + ebnf (~> 2.1) + rdf (~> 3.1) + rdf-xsd (~> 3.1) + sparql (~> 3.1) + sxp (~> 1.1) + ldp (1.0.3) + deprecation + faraday + http_logger + json-ld + rdf (>= 1.1) + rdf-isomorphic + rdf-turtle + rdf-vocab (>= 0.8) + slop + ldpath (1.2.0) + nokogiri (~> 1.8) + parslet + rdf (~> 3.0) + rdf-vocab (~> 3.0) + legato (0.7.0) + multi_json + libxml-ruby (3.2.4) + link_header (0.0.8) + linkeddata (3.1.6) + equivalent-xml (~> 0.6) + json-ld (~> 3.1, >= 3.1.10) + json-ld-preloaded (~> 3.1, >= 3.1.6) + ld-patch (~> 3.1, >= 3.1.3) + nokogiri (~> 1.12) + rdf (~> 3.1, >= 3.1.15) + rdf-aggregate-repo (~> 3.1) + rdf-isomorphic (~> 3.1, >= 3.1.1) + rdf-json (~> 3.1) + rdf-microdata (~> 3.1, >= 3.1.4) + rdf-n3 (~> 3.1, >= 3.1.2) + rdf-normalize (~> 0.4) + rdf-ordered-repo (~> 3.1, >= 3.1.1) + rdf-rdfa (~> 3.1, >= 3.1.3) + rdf-rdfxml (~> 3.1, >= 3.1.1) + rdf-reasoner (~> 0.7, >= 0.7.2) + rdf-tabular (~> 3.1, >= 3.1.1) + rdf-trig (~> 3.1, >= 3.1.2) + rdf-trix (~> 3.1, >= 3.1.1) + rdf-turtle (~> 3.1, >= 3.1.3) + rdf-vocab (~> 3.1, >= 3.1.14) + rdf-xsd (~> 3.1, >= 3.1.1) + shacl (~> 0.1, >= 0.1.1) + shex (~> 0.6, >= 0.6.4) + sparql (~> 3.1, >= 3.1.8) + sparql-client (~> 3.1, >= 3.1.2) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + logger (1.6.0) + lograge (0.14.0) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) + loofah (2.22.0) crass (~> 1.0.2) - nokogiri (>= 1.5.9) + nokogiri (>= 1.12.0) mail (2.8.1) mini_mime (>= 0.1.1) net-imap net-pop net-smtp + mailboxer (0.15.1) + carrierwave (>= 0.5.8) + rails (>= 5.0.0) marcel (1.0.2) + maremma (4.9.8) + activesupport (>= 4.2.5) + addressable (>= 2.3.6) + builder (~> 3.2, >= 3.2.2) + excon (~> 0.71.0) + faraday (~> 0.17.3) + faraday-encoding (~> 0.0.4) + faraday_middleware (~> 0.14.0) + nokogiri (>= 1.11.2, < 1.14.0) + oj (>= 2.8.3) + oj_mimic_json (~> 1.0, >= 1.0.1) + matrix (0.4.2) method_source (1.0.0) - mini_mime (1.1.2) - minitest (5.18.1) - net-imap (0.3.4) + mime-types (3.5.2) + mime-types-data (~> 3.2015) + mime-types-data (3.2024.0206) + mini_magick (4.12.0) + mini_mime (1.1.5) + mini_portile2 (2.8.5) + minitest (5.22.2) + mods (2.4.1) + edtf + iso-639 + nokogiri (>= 1.6.6) + nom-xml (~> 1.0) + multi_json (1.15.0) + multi_xml (0.6.0) + multipart-post (2.4.0) + namae (1.2.0) + racc (~> 1.7) + negative_captcha (0.5) + actionpack + activesupport + nest (3.2.0) + redic + net-http-persistent (4.0.2) + connection_pool (~> 2.2) + net-imap (0.4.10) date net-protocol net-pop (0.1.2) net-protocol - net-protocol (0.2.1) + net-protocol (0.2.2) timeout - net-smtp (0.3.3) + net-smtp (0.4.0.1) net-protocol - nio4r (2.5.9) - nokogiri (1.14.4-arm64-darwin) + nio4r (2.7.0) + noid (0.9.0) + noid-rails (3.0.3) + actionpack (>= 5.0.0, < 7) + noid (~> 0.9) + nokogiri (1.13.10) + mini_portile2 (~> 2.8.0) racc (~> 1.4) - racc (1.6.2) - rack (2.2.7) - rack-test (2.1.0) - rack (>= 1.3) + nom-xml (1.2.0) + i18n + nokogiri + oai (1.1.0) + builder (>= 3.1.0) + faraday + faraday_middleware + oauth (1.1.0) + oauth-tty (~> 1.0, >= 1.0.1) + snaky_hash (~> 2.0) + version_gem (~> 1.1) + oauth-tty (1.0.5) + version_gem (~> 1.1, >= 1.1.1) + oauth2 (1.4.11) + faraday (>= 0.17.3, < 3.0) + jwt (>= 1.0, < 3.0) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (>= 1.2, < 4) + oj (3.16.3) + bigdecimal (>= 3.0) + oj_mimic_json (1.0.1) + okcomputer (1.18.5) + omniauth (2.1.2) + hashie (>= 3.4.6) + rack (>= 2.2.3) + rack-protection + omniauth-multi-provider (0.4.0) + omniauth + omniauth-rails_csrf_protection (1.0.1) + actionpack (>= 4.2) + omniauth (~> 2.0) + omniauth-saml (2.1.0) + omniauth (~> 2.0) + ruby-saml (~> 1.12) + omniauth_openid_connect (0.6.1) + omniauth (>= 1.9, < 3) + openid_connect (~> 1.1) + openid_connect (1.4.2) + activemodel + attr_required (>= 1.0.0) + json-jwt (>= 1.15.0) + net-smtp + rack-oauth2 (~> 1.21) + swd (~> 1.3) + tzinfo + validate_email + validate_url + webfinger (~> 1.2) + openseadragon (0.6.0) + rails (> 3.2.0) + optimist (3.1.0) + orm_adapter (0.5.0) + os (1.1.4) + parallel (1.24.0) + parser (2.5.3.0) + ast (~> 2.4.0) + parslet (2.0.0) + pg (1.5.5) + posix-spawn (0.3.15) + postrank-uri (1.1) + addressable (>= 2.4.0) + nokogiri (>= 1.8.0) + public_suffix (>= 4.0.0, < 5) + power_converter (0.1.2) + powerpack (0.1.3) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + psych (3.3.4) + public_suffix (4.0.7) + puma (5.6.8) + nio4r (~> 2.0) + qa (5.11.0) + activerecord-import + deprecation + faraday (< 3.0, != 2.0.0) + geocoder + ldpath + nokogiri (~> 1.6) + rails (>= 5.0, < 7.2) + rdf + racc (1.7.3) + rack (2.2.8) + rack-oauth2 (1.21.3) + activesupport + attr_required + httpclient + json-jwt (>= 1.11.0) + rack (>= 2.1.0) + rack-protection (3.2.0) + base64 (>= 0.1.0) + rack (~> 2.2, >= 2.2.4) + rack-test (0.7.0) + rack (>= 1.0, < 3) rails (5.2.8.1) actioncable (= 5.2.8.1) actionmailer (= 5.2.8.1) @@ -99,39 +930,452 @@ GEM bundler (>= 1.3.0) railties (= 5.2.8.1) sprockets-rails (>= 2.0.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) + rails-controller-testing (1.0.5) + actionpack (>= 5.0.1.rc1) + actionview (>= 5.0.1.rc1) + activesupport (>= 5.0.1.rc1) + rails-dom-testing (2.2.0) + activesupport (>= 5.0.0) + minitest nokogiri (>= 1.6) rails-html-sanitizer (1.5.0) loofah (~> 2.19, >= 2.19.1) + rails-i18n (5.1.3) + i18n (>= 0.7, < 2) + railties (>= 5.0, < 6) + rails_autolink (1.1.8) + actionview (> 3.1) + activesupport (> 3.1) + railties (> 3.1) railties (5.2.8.1) actionpack (= 5.2.8.1) activesupport (= 5.2.8.1) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) - rake (13.0.6) + rainbow (3.1.1) + rake (13.1.0) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rdf (3.1.15) + hamster (~> 3.0) + link_header (~> 0.0, >= 0.0.8) + rdf-aggregate-repo (3.1.0) + rdf (~> 3.1) + rdf-isomorphic (3.1.1) + rdf (~> 3.1) + rdf-json (3.1.0) + rdf (~> 3.1) + rdf-microdata (3.1.4) + htmlentities (~> 4.3) + nokogiri (~> 1.12) + rdf (~> 3.1, >= 3.1.13) + rdf-rdfa (~> 3.1, >= 3.1.3) + rdf-xsd (~> 3.1) + rdf-n3 (3.1.2) + ebnf (~> 2.1) + rdf (~> 3.1, >= 3.1.8) + sparql (~> 3.1, >= 3.1.4) + sxp (~> 1.1) + rdf-normalize (0.4.0) + rdf (~> 3.1) + rdf-ordered-repo (3.1.1) + rdf (~> 3.1) + rdf-rdfa (3.1.3) + haml (~> 5.2) + htmlentities (~> 4.3) + rdf (~> 3.1, >= 3.1.13) + rdf-aggregate-repo (~> 3.1) + rdf-vocab (~> 3.1, >= 3.1.11) + rdf-xsd (~> 3.1) + rdf-rdfxml (3.1.1) + htmlentities (~> 4.3) + rdf (~> 3.1) + rdf-rdfa (~> 3.1) + rdf-xsd (~> 3.1) + rdf-reasoner (0.7.2) + rdf (~> 3.1, >= 3.1.12) + rdf-xsd (~> 3.1) + rdf-tabular (3.1.1) + addressable (~> 2.3) + bcp47 (~> 0.3, >= 0.3.3) + json-ld (~> 3.1) + rdf (~> 3.1) + rdf-vocab (~> 3.1) + rdf-xsd (~> 3.1) + rdf-trig (3.1.2) + ebnf (~> 2.1) + rdf (~> 3.1) + rdf-turtle (~> 3.1) + rdf-trix (3.1.1) + rdf (~> 3.1) + rdf-xsd (~> 3.1) + rdf-turtle (3.1.3) + ebnf (~> 2.1) + rdf (~> 3.1, >= 3.1.8) + rdf-vocab (3.1.14) + rdf (~> 3.1, >= 3.1.12) + rdf-xsd (3.1.1) + rdf (~> 3.1) + rexml (~> 3.2) + redic (1.5.3) + hiredis + redis (4.8.1) + redis-namespace (1.11.0) + redis (>= 4) + redlock (1.3.2) + redis (>= 3.0.0, < 6.0) + reform (2.5.0) + disposable (>= 0.4.2, < 0.5.0) + representable (>= 2.4.0, < 3.1.0) + uber (< 0.2.0) + reform-rails (0.2.6) + activemodel (>= 5.0) + reform (>= 2.3.1, < 3.0.0) + regexp_parser (2.9.0) + representable (3.0.4) + declarative (< 0.1.0) + declarative-option (< 0.2.0) + uber (< 0.2.0) + request_store (1.6.0) + rack (>= 1.4) + responders (3.1.1) + actionpack (>= 5.2) + railties (>= 5.2) + retriable (3.1.2) + rexml (3.2.6) + riiif (1.7.1) + deprecation (>= 1.0.0) + railties (>= 4.2, < 6) + rolify (6.0.1) + rsolr (2.5.0) + builder (>= 2.1.2) + faraday (>= 0.9, < 3, != 2.0.0) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-activemodel-mocks (1.2.0) + activemodel (>= 3.0) + activesupport (>= 3.0) + rspec-mocks (>= 2.99, < 4.0) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-its (1.3.0) + rspec-core (>= 3.0.0) + rspec-expectations (>= 3.0.0) + rspec-mocks (3.13.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-rails (5.1.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + railties (>= 5.2) + rspec-core (~> 3.10) + rspec-expectations (~> 3.10) + rspec-mocks (~> 3.10) + rspec-support (~> 3.10) + rspec-retry (0.6.2) + rspec-core (> 3.3) + rspec-support (3.13.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rubocop (0.52.1) + parallel (~> 1.10) + parser (>= 2.4.0.2, < 3.0) + powerpack (~> 0.1) + rainbow (>= 2.2.2, < 4.0) + ruby-progressbar (~> 1.7) + unicode-display_width (~> 1.0, >= 1.0.1) + rubocop-rspec (1.22.2) + rubocop (>= 0.52.1) + ruby-box (1.15.0) + addressable + json + multipart-post + oauth2 + ruby-progressbar (1.13.0) + ruby-saml (1.16.0) + nokogiri (>= 1.13.10) + rexml + ruby2_keywords (0.0.5) + ruby_dep (1.5.0) + rubyzip (2.3.2) + samvera-nesting_indexer (2.0.0) + dry-equalizer + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sass-rails (5.1.0) + railties (>= 5.2.0) + sass (~> 3.1) + sprockets (>= 2.8, < 4.0) + sprockets-rails (>= 2.0, < 4.0) + tilt (>= 1.1, < 3) + sassc (2.4.0) + ffi (~> 1.9) + scanf (1.0.0) + scss_lint (0.60.0) + sass (~> 3.5, >= 3.5.5) + secure_headers (6.5.0) + select2-rails (3.5.11) + selenium-webdriver (4.8.1) + rexml (~> 3.2, >= 3.2.5) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) + shacl (0.1.1) + json-ld (~> 3.1, >= 3.1.7) + rdf (~> 3.1, >= 3.1.8) + sparql (~> 3.1) + sxp (~> 1.1) + shex (0.6.4) + ebnf (~> 2.1, >= 2.2) + htmlentities (~> 4.3) + json-ld (~> 3.1) + json-ld-preloaded (~> 3.1) + rdf (~> 3.1) + rdf-xsd (~> 3.1) + sparql (~> 3.1) + sxp (~> 1.1) + shoulda-matchers (4.5.1) + activesupport (>= 4.2.0) + sidekiq (6.5.12) + connection_pool (>= 2.2.5, < 3) + rack (~> 2.0) + redis (>= 4.5.0, < 5) + signet (0.19.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simple_form (5.3.0) + actionpack (>= 5.2) + activemodel (>= 5.2) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.4) + slop (4.10.1) + smart_properties (1.17.0) + snaky_hash (2.0.1) + hashie + version_gem (~> 1.1, >= 1.1.1) + solr_wrapper (2.2.0) + faraday + retriable + ruby-progressbar + rubyzip + sparql (3.1.8) + builder (~> 3.2) + ebnf (~> 2.1) + logger (~> 1.4) + rdf (~> 3.1, >= 3.1.14) + rdf-aggregate-repo (~> 3.1) + rdf-xsd (~> 3.1) + sparql-client (~> 3.1, >= 3.1.2) + sxp (~> 1.1) + sparql-client (3.1.2) + net-http-persistent (~> 4.0, >= 4.0.1) + rdf (~> 3.1) + spring (1.7.2) + spring-watcher-listen (2.0.1) + listen (>= 2.7, < 4.0) + spring (>= 1.2, < 3.0) sprockets (3.7.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) + sprockets-es6 (0.9.2) + babel-source (>= 5.8.11) + babel-transpiler + sprockets (>= 3.0.0) sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - thor (1.2.1) + ssrf_filter (1.0.8) + swd (1.3.0) + activesupport (>= 3) + attr_required (>= 0.0.5) + httpclient (>= 2.4) + sxp (1.1.0) + rdf (~> 3.1) + temple (0.10.3) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + terser (1.2.0) + execjs (>= 0.3.0, < 3) + tether-rails (1.4.0) + rails (>= 3.1) + thor (1.3.0) + thread (0.2.2) thread_safe (0.3.6) - timeout (0.3.2) + tilt (2.3.0) + timeout (0.4.1) + tinymce-rails (5.10.9) + railties (>= 3.1.1) + turbolinks (5.2.1) + turbolinks-source (~> 5.2) + turbolinks-source (5.2.0) + twitter-typeahead-rails (0.11.1.pre.corejavascript) + actionpack (>= 3.1) + jquery-rails + railties (>= 3.1) + typhoeus (1.4.1) + ethon (>= 0.9.0) tzinfo (1.2.11) thread_safe (~> 0.1) - websocket-driver (0.7.5) + uber (0.1.0) + unicode-display_width (1.8.0) + unicode-types (1.9.0) + unicode_utils (1.4.0) + validatable (1.6.7) + validate_email (0.1.6) + activemodel (>= 3.0) + mail (>= 2.2.5) + validate_url (1.0.15) + activemodel (>= 3.0.0) + public_suffix + valkyrie (2.2.0) + activemodel + activesupport + disposable (~> 0.4.5) + draper + dry-struct + dry-types (~> 1.0) + faraday (< 1.0) + json + json-ld + railties + rdf (~> 3.0, >= 3.0.10) + rdf-vocab + reform (~> 2.2) + reform-rails + version_gem (1.1.3) + warden (1.2.9) + rack (>= 2.0.9) + web-console (3.7.0) + actionview (>= 5.0) + activemodel (>= 5.0) + bindex (>= 0.4.0) + railties (>= 5.0) + webdrivers (4.7.0) + nokogiri (~> 1.6) + rubyzip (>= 1.3.0) + selenium-webdriver (> 3.141, < 5.0) + webfinger (1.2.0) + activesupport + httpclient (>= 2.4) + webmock (3.21.2) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket (1.2.10) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) + xpath (3.2.0) + nokogiri (~> 1.8) + zeitwerk (2.6.13) PLATFORMS ruby DEPENDENCIES - hyku-knapsack! + active-fedora (>= 11.1.4) + active_elastic_job! + activerecord-nulldb-adapter + addressable (= 2.8.1) + apartment + aws-sdk-sqs + blacklight (~> 6.7) + blacklight_oai_provider (~> 6.1, >= 6.1.1) + bolognese (>= 1.9.10) + bootstrap-datepicker-rails + bulkrax (~> 5.3) + byebug + capybara + capybara-screenshot (~> 1.0) + carrierwave-aws (~> 1.3) + cocoon + codemirror-rails + coffee-rails (~> 4.2) + database_cleaner + devise + devise-guests (~> 0.3) + devise-i18n + devise_invitable (~> 1.6) + dry-monads (~> 1.4.0) + easy_translate + factory_bot_rails + fcrepo_wrapper (~> 0.4) + flipflop (~> 2.6.0) + flutie + hyku_knapsack! + hyrax (~> 3.5.0) + hyrax-doi! + hyrax-iiif_av! + i18n-debug + i18n-tasks + iiif_print! + jbuilder (~> 2.5) + jquery-rails + json-canonicalization (= 0.3.1) + launchy + listen (>= 3.0.5, < 3.2) + lograge + mods (~> 2.4) + negative_captcha + okcomputer + omniauth-cas! + omniauth-multi-provider + omniauth-rails_csrf_protection (~> 1.0) + omniauth-saml (~> 2.1) + omniauth_openid_connect + parser (~> 2.5.3) + pg + postrank-uri (>= 1.0.24) + pry-byebug + puma (~> 5.6) + rack-test (= 0.7.0) + rails (~> 5.2.5) + rails-controller-testing + rdf (~> 3.1.15) + redlock (>= 0.1.2, < 2.0) + riiif (~> 1.1) + rolify + rsolr (~> 2.0) + rspec + rspec-activemodel-mocks + rspec-its + rspec-rails (>= 3.6.0) + rspec-retry + rspec_junit_formatter + rubocop (~> 0.50, <= 0.52.1) + rubocop-rspec (~> 1.22, <= 1.22.2) + sass-rails (~> 5.0) + scss_lint + secure_headers + selenium-webdriver (= 4.8.1) + shoulda-matchers (~> 4.0) + sidekiq (< 7.0) + simplecov + solr_wrapper (~> 2.0) + spring (~> 1.7) + spring-watcher-listen (~> 2.0.0) + terser + tether-rails + turbolinks (~> 5) + web-console (>= 3.3.0) + webdrivers (~> 4.7.0) + webmock BUNDLED WITH 2.1.4