iiif_print 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +18 -0
  3. data/.github/PULL_REQUEST_TEMPLATE.md +16 -0
  4. data/.github/workflows/build-lint-test-action.yaml +4 -5
  5. data/.gitignore +5 -4
  6. data/.rubocop.yml +1 -0
  7. data/.solargraph.yml +19 -0
  8. data/Gemfile.lock +1025 -0
  9. data/README.md +98 -9
  10. data/Rakefile +6 -0
  11. data/app/actors/iiif_print/actors/cleanup_file_sets_actor_decorator.rb +24 -0
  12. data/app/actors/iiif_print/actors/file_set_actor_decorator.rb +30 -28
  13. data/app/controllers/iiif_print/split_pdfs_controller.rb +38 -0
  14. data/app/helpers/iiif_print/iiif_helper_decorator.rb +32 -0
  15. data/app/helpers/iiif_print/iiif_print_helper_behavior.rb +23 -0
  16. data/app/helpers/iiif_print_helper.rb +0 -20
  17. data/app/indexers/concerns/iiif_print/child_indexer.rb +9 -3
  18. data/app/indexers/concerns/iiif_print/file_set_indexer.rb +17 -4
  19. data/app/models/concerns/iiif_print/set_child_flag.rb +9 -0
  20. data/app/models/concerns/iiif_print/solr/document.rb +14 -0
  21. data/app/models/iiif_print/iiif_search_decorator.rb +35 -0
  22. data/app/models/iiif_print/iiif_search_response_decorator.rb +25 -2
  23. data/app/models/iiif_print/pending_relationship.rb +3 -0
  24. data/app/presenters/iiif_print/iiif_manifest_presenter_behavior.rb +120 -0
  25. data/app/presenters/iiif_print/iiif_manifest_presenter_factory_behavior.rb +1 -1
  26. data/app/presenters/iiif_print/work_show_presenter_decorator.rb +19 -10
  27. data/app/search_builders/concerns/iiif_print/allinson_flex_fields.rb +15 -0
  28. data/app/search_builders/concerns/iiif_print/highlight_search_params.rb +2 -1
  29. data/app/services/iiif_print/derivative_rodeo_service.rb +382 -0
  30. data/app/services/iiif_print/manifest_builder_service_behavior.rb +88 -31
  31. data/app/services/iiif_print/pluggable_derivative_service.rb +3 -9
  32. data/app/views/catalog/_index_header_list_default.html.erb +13 -0
  33. data/app/views/hyrax/base/_representative_media.html.erb +4 -3
  34. data/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb +1 -1
  35. data/app/views/hyrax/file_sets/_actions.html.erb +2 -1
  36. data/app/views/hyrax/file_sets/_show_actions.html.erb +24 -0
  37. data/config/locales/iiif_print.en.yml +4 -0
  38. data/config/routes.rb +3 -0
  39. data/db/migrate/20231110163052_add_model_details_to_iiif_print_pending_relationships.rb +7 -0
  40. data/docker-compose.yml +2 -2
  41. data/iiif_print.gemspec +10 -9
  42. data/lib/generators/iiif_print/install_generator.rb +21 -1
  43. data/lib/generators/iiif_print/templates/config/initializers/iiif_print.rb +11 -4
  44. data/lib/generators/iiif_print/templates/helpers/iiif_print_helper.rb +5 -0
  45. data/lib/iiif_print/base_derivative_service.rb +2 -1
  46. data/lib/iiif_print/blacklight_iiif_search/annotation_decorator.rb +57 -5
  47. data/lib/iiif_print/catalog_search_builder.rb +5 -1
  48. data/lib/iiif_print/configuration.rb +145 -8
  49. data/lib/iiif_print/data/fileset_helper.rb +1 -1
  50. data/lib/iiif_print/data/work_derivatives.rb +3 -3
  51. data/lib/iiif_print/engine.rb +7 -13
  52. data/lib/iiif_print/errors.rb +18 -0
  53. data/lib/iiif_print/homepage_search_builder.rb +17 -0
  54. data/lib/iiif_print/image_tool.rb +12 -8
  55. data/lib/iiif_print/jobs/child_works_from_pdf_job.rb +74 -33
  56. data/lib/iiif_print/jobs/create_relationships_job.rb +80 -31
  57. data/lib/iiif_print/jobs/request_split_pdf_job.rb +31 -0
  58. data/lib/iiif_print/lineage_service.rb +29 -8
  59. data/lib/iiif_print/metadata.rb +67 -48
  60. data/lib/iiif_print/split_pdfs/base_splitter.rb +142 -0
  61. data/lib/iiif_print/split_pdfs/child_work_creation_from_pdf_service.rb +68 -32
  62. data/lib/iiif_print/split_pdfs/derivative_rodeo_splitter.rb +166 -0
  63. data/lib/iiif_print/split_pdfs/destroy_pdf_child_works_service.rb +33 -0
  64. data/lib/iiif_print/split_pdfs/pages_to_jpgs_splitter.rb +19 -0
  65. data/lib/iiif_print/split_pdfs/pages_to_pngs_splitter.rb +26 -0
  66. data/lib/iiif_print/split_pdfs/pages_to_tiffs_splitter.rb +41 -0
  67. data/lib/iiif_print/split_pdfs/pdf_image_extraction_service.rb +64 -59
  68. data/lib/iiif_print/text_extraction/hocr_reader.rb +7 -3
  69. data/lib/iiif_print/text_extraction/page_ocr.rb +5 -4
  70. data/lib/iiif_print/version.rb +1 -1
  71. data/lib/iiif_print.rb +167 -12
  72. data/lib/samvera/derivatives/configuration.rb +83 -0
  73. data/lib/samvera/derivatives/hyrax.rb +129 -0
  74. data/lib/samvera/derivatives.rb +238 -0
  75. data/spec/factories/newspaper_page_solr_document.rb +9 -1
  76. data/spec/fixtures/authorities/licenses.yml +4 -0
  77. data/spec/fixtures/authorities/rights_statements.yml +4 -0
  78. data/spec/iiif_print/base_derivative_service_spec.rb +20 -3
  79. data/spec/iiif_print/blacklight_iiif_search/annotation_decorator_spec.rb +11 -3
  80. data/spec/iiif_print/catalog_search_builder_spec.rb +1 -1
  81. data/spec/iiif_print/configuration_spec.rb +141 -15
  82. data/spec/iiif_print/jobs/child_works_from_pdf_job_spec.rb +7 -2
  83. data/spec/iiif_print/jobs/create_relationships_job_spec.rb +110 -9
  84. data/spec/iiif_print/lineage_service_spec.rb +1 -1
  85. data/spec/iiif_print/metadata_spec.rb +157 -23
  86. data/spec/iiif_print/split_pdfs/base_splitter_spec.rb +27 -0
  87. data/spec/iiif_print/split_pdfs/derivative_rodeo_splitter_spec.rb +80 -0
  88. data/spec/iiif_print/split_pdfs/destroy_pdf_child_works_service_spec.rb +92 -0
  89. data/spec/iiif_print/split_pdfs/pages_to_jpgs_splitter_spec.rb +22 -0
  90. data/spec/iiif_print/split_pdfs/pages_to_pngs_splitter_spec.rb +18 -0
  91. data/spec/iiif_print/split_pdfs/pages_to_tiffs_splitter_spec.rb +19 -0
  92. data/spec/iiif_print/text_extraction/hocr_reader_spec.rb +2 -2
  93. data/spec/iiif_print_spec.rb +125 -5
  94. data/spec/models/iiif_print/iiif_search_decorator_spec.rb +27 -0
  95. data/spec/presenters/iiif_print/iiif_manifest_presenter_behavior_spec.rb +51 -0
  96. data/spec/samvera/derivatives/configuration_spec.rb +41 -0
  97. data/spec/samvera/derivatives/hyrax_spec.rb +62 -0
  98. data/spec/samvera/derivatives_spec.rb +54 -0
  99. data/spec/services/iiif_print/derivative_rodeo_service_spec.rb +103 -0
  100. data/spec/services/iiif_print/manifest_builder_service_behavior_spec.rb +20 -0
  101. data/spec/services/iiif_print/pluggable_derivative_service_spec.rb +8 -11
  102. data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
  103. data/tasks/copy_authorities_to_test_app.rake +11 -0
  104. data/tasks/iiif_print_dev.rake +4 -4
  105. metadata +123 -35
  106. data/app/helpers/hyrax/iiif_helper.rb +0 -22
  107. data/lib/iiif_print/split_pdfs/pages_into_images_service.rb +0 -130
  108. data/spec/iiif_print/split_pdfs/pages_into_images_service_spec.rb +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42c50b5d98cf0600631b822085a97d517cdd1fd227711d1e87f03cc70fa5f190
4
- data.tar.gz: 40dbba530fc35e795e318bcc0c721c5cfe74b64cd6a779735f00992ef7d6e7d7
3
+ metadata.gz: 25d3d965d8ac8495fd610cb98428ba86090fbdd5c84a60953eeb38c5031c5500
4
+ data.tar.gz: e7df5c7d69bd03300d4c4ea79c0e4023b072e3ecd9ff1eb87c8d8e5dee8e1779
5
5
  SHA512:
6
- metadata.gz: b7b962d06ec2a9fd377420d5961513119cd1164265a3f4f9cd7f7d8dd4a030ab87b65afd977c93bfd2072d1e87a16ce77b2da6ae29e1b4fc7221d2d7aeda4754
7
- data.tar.gz: e1406a351b67b7715ac5b924b999724a3e626356b8a7b8f88798dffd6a671c217e2d317b755511b1a214a781587791ede8450a62494cb153ebd34fbae4b79a79
6
+ metadata.gz: feaf33f9dfb535617f3952955904671b4ae20a0043553005c436d5b6ee1fbb2939717b75b1cf8dd7069cddd83599968e9002ec7a69c65d5069c4223a17adafa4
7
+ data.tar.gz: 10afb034b806bf09f48b22fe355a74bc1e508802f821f3246444e17b7876023f5503c507078d2283960132d035d0f81740ddad2a9f872cb290a4f4d93461bb2b
@@ -0,0 +1,18 @@
1
+ # Story
2
+
3
+ # Acceptance Criteria
4
+
5
+ - [ ]
6
+
7
+ # Screenshots / Video
8
+
9
+ <details>
10
+ <summary></summary>
11
+
12
+ </details>
13
+
14
+ # Testing Instructions and Sample Files
15
+
16
+ -
17
+
18
+ # Notes
@@ -0,0 +1,16 @@
1
+ # Story
2
+
3
+ Refs #issuenumber
4
+
5
+ # Expected Behavior Before Changes
6
+
7
+ # Expected Behavior After Changes
8
+
9
+ # Screenshots / Video
10
+
11
+ <details>
12
+ <summary></summary>
13
+
14
+ </details>
15
+
16
+ # Notes
@@ -16,7 +16,7 @@ on:
16
16
 
17
17
  jobs:
18
18
  build:
19
- uses: scientist-softserv/actions/.github/workflows/build.yaml@v0.0.7
19
+ uses: scientist-softserv/actions/.github/workflows/build.yaml@v0.0.13
20
20
  secrets: inherit
21
21
  with:
22
22
  platforms: "linux/amd64"
@@ -24,10 +24,9 @@ jobs:
24
24
  worker: false
25
25
  test:
26
26
  needs: build
27
- uses: scientist-softserv/actions/.github/workflows/test.yaml@v0.0.7
27
+ uses: scientist-softserv/actions/.github/workflows/test.yaml@v0.0.13
28
28
  with:
29
- setup_db_cmd: rake engine_cart:generate
29
+ setup_db_cmd: bundle exec rake prepare_and_run_tests
30
30
  lint:
31
31
  needs: build
32
- uses: scientist-softserv/actions/.github/workflows/lint.yaml@v0.0.7
33
-
32
+ uses: scientist-softserv/actions/.github/workflows/lint.yaml@v0.0.13
data/.gitignore CHANGED
@@ -36,9 +36,6 @@ fits.log
36
36
  # Ignore all RubyMine temp files
37
37
  .idea/
38
38
 
39
- # Ignore Gemfile.lock
40
- Gemfile.lock
41
-
42
39
  # Ignore wrapper downloads
43
40
  fcrepo-webapp-*
44
41
 
@@ -49,4 +46,8 @@ pkg/
49
46
  .DS_Store
50
47
 
51
48
  # ignore local config settings
52
- .vscode/settings.json
49
+ .vscode/settings.json
50
+
51
+ # yard generated files
52
+ .yardoc/
53
+ doc/
data/.rubocop.yml CHANGED
@@ -72,6 +72,7 @@ Metrics/MethodLength:
72
72
  - 'lib/generators/iiif_print/catalog_controller_generator.rb'
73
73
  - 'lib/iiif_print/ingest/ndnp/ndnp_mets_helper.rb'
74
74
  - 'lib/iiif_print/ingest/pdf_issue_ingester.rb'
75
+ - 'lib/iiif_print/jobs/create_relationships_job.rb'
75
76
  - 'spec/model_shared.rb'
76
77
 
77
78
  Naming/PredicateName:
data/.solargraph.yml ADDED
@@ -0,0 +1,19 @@
1
+ include:
2
+ - "**/*.rb"
3
+ exclude:
4
+ - spec/**/*
5
+ - test/**/*
6
+ - vendor/**/*
7
+ - ".bundle/**/*"
8
+ require:
9
+ - derivative-rodeo
10
+ - hyrax
11
+ - iiif-presentation
12
+ - iiif_manifest
13
+ - blacklight_iiif_search
14
+ - blacklight
15
+ domains: []
16
+ reporters:
17
+ - rubocop
18
+ - require_not_found
19
+ max_files: 5000