iiif_print 3.0.2 → 3.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 157690b7a7cc4421d63f7097e28136c642c5ca5b97a598124fca1304cedcda5f
4
- data.tar.gz: 31bc61900538c311562a7274d2e419d9fa7370ef0d49bfb65d43a7861679306e
3
+ metadata.gz: 424c547bda36b69486e37cb77a20db7589461661ea4a0d28a40f253deb67c8ba
4
+ data.tar.gz: b60819a280d68aa91750303ffb7dc36d1933782c7530669e72821c66bf7cdbfe
5
5
  SHA512:
6
- metadata.gz: 6a92f15f5b538c393de264fd7330fc841257bfa6bcded9ddccfa9fa84a2686fed1bf4b28cd7d80f87788fe2009433d15489574e58e7fadc76ef655921541be04
7
- data.tar.gz: bc559c66f29d3d9596b47496c6d251526f2d0ded5f4697cae689d7e8d926fd9ce31f9bd340faaaf2701cdc9aead9f4de8a8329e14f0ee50d3463d4c1d71a85ca
6
+ metadata.gz: 1ca32d96012dddbb1a9a113e1cee089165ce19401f4739c11e1e82b0580f5e5bd30f492732755c809f7d7f46fc7e9d8f6f491a2c5425c1de1cd2460a90bbb614
7
+ data.tar.gz: 43fe8f6658bcaa7001d9c0696ea3ff7c270168e7b3200c9f8ab5ce5c148987b23a9060c82aac64edbb356e0f49942ce175301a98b89147f531780f9547febf8b
data/CONTRIBUTING.md CHANGED
@@ -172,6 +172,20 @@ This is your chance for a mentoring moment of another developer. Take time to gi
172
172
  - Did the Continuous Integration tests complete successfully?
173
173
 
174
174
  If you are uncertain, bring other contributors into the conversation by assigning them as a reviewer.
175
+ ### Release a New Gem Version
176
+
177
+ After all changes are merged:
178
+ - Pull the newest code to your local repo, and rebuild docker if needed.
179
+ - Run `bundle exec rake` to verify that rubocop and specs pass.
180
+ - Update the tag in the version file, and bundle.
181
+ - Create a PR with the updated version & Gemfile.lock file.
182
+ - Merge into main.
183
+ - Create a new release & tag on github with this new version number.
184
+ - Pull main to your local repo to get the release & tag.
185
+ - Inside your docker container, run `bundle exec rake release`. This will build the gem and push it to rubygems.org.
186
+
187
+ (Note, you must have configured your rubygems login previously for this to work).
188
+ It may be possible to build the gem outside of docker, but this requires the ability to bundle outside of docker which can be very problematic.
175
189
 
176
190
  # Additional Resources
177
191
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /app/samvera/hyrax-webapp
3
3
  specs:
4
- iiif_print (3.0.2)
4
+ iiif_print (3.0.4)
5
5
  blacklight_iiif_search (>= 1.0, < 3.0)
6
6
  derivative-rodeo (~> 0.5)
7
7
  hyrax (>= 2.5, < 6)
@@ -65,7 +65,7 @@ GEM
65
65
  activemodel (= 5.2.8.1)
66
66
  activesupport (= 5.2.8.1)
67
67
  arel (>= 9.0)
68
- activerecord-import (2.0.0)
68
+ activerecord-import (2.1.0)
69
69
  activerecord (>= 4.2)
70
70
  activestorage (5.2.8.1)
71
71
  actionpack (= 5.2.8.1)
@@ -87,20 +87,21 @@ GEM
87
87
  awesome_nested_set (3.8.0)
88
88
  activerecord (>= 4.0.0, < 8.1)
89
89
  aws-eventstream (1.3.0)
90
- aws-partitions (1.1043.0)
91
- aws-sdk-core (3.217.0)
90
+ aws-partitions (1.1048.0)
91
+ aws-sdk-core (3.218.1)
92
92
  aws-eventstream (~> 1, >= 1.3.0)
93
93
  aws-partitions (~> 1, >= 1.992.0)
94
94
  aws-sigv4 (~> 1.9)
95
+ base64
95
96
  jmespath (~> 1, >= 1.6.1)
96
- aws-sdk-kms (1.97.0)
97
+ aws-sdk-kms (1.98.0)
97
98
  aws-sdk-core (~> 3, >= 3.216.0)
98
99
  aws-sigv4 (~> 1.5)
99
- aws-sdk-s3 (1.179.0)
100
+ aws-sdk-s3 (1.180.0)
100
101
  aws-sdk-core (~> 3, >= 3.216.0)
101
102
  aws-sdk-kms (~> 1)
102
103
  aws-sigv4 (~> 1.5)
103
- aws-sdk-sqs (1.91.0)
104
+ aws-sdk-sqs (1.92.0)
104
105
  aws-sdk-core (~> 3, >= 3.216.0)
105
106
  aws-sigv4 (~> 1.5)
106
107
  aws-sigv4 (1.11.0)
@@ -579,7 +580,7 @@ GEM
579
580
  mime-types (3.6.0)
580
581
  logger
581
582
  mime-types-data (~> 3.2015)
582
- mime-types-data (3.2025.0107)
583
+ mime-types-data (3.2025.0204)
583
584
  mini_magick (4.13.2)
584
585
  mini_mime (1.1.5)
585
586
  mini_portile2 (2.8.5)
@@ -62,7 +62,8 @@ module IiifPrint
62
62
  # rubocop:disable Metrics/MethodLength
63
63
  def split_pdf(original_pdf_path, user, child_model, pdf_file_set)
64
64
  user = User.find_by_user_key(user) unless user.is_a?(User)
65
- image_files = @parent_work.iiif_print_config.pdf_splitter_service.call(original_pdf_path)
65
+ # split the pdf into individual pages; pdf_file_set needed for derivative rodeo splitter
66
+ image_files = @parent_work.iiif_print_config.pdf_splitter_service.call(original_pdf_path, file_set: pdf_file_set)
66
67
 
67
68
  # give as much info as possible if we don't have image files to work with.
68
69
  if image_files.blank?
@@ -86,7 +86,8 @@ module IiifPrint
86
86
  # Building a custom query to find these child works directly via the attribute would be more efficient.
87
87
  # However, it would require more effort for a lesser-used feature, and would not allow for the fallback
88
88
  # of finding child works by title.
89
- def self.destroy_children_split_from(file_set:, work:, _model:, user:)
89
+ # rubocop:disable Lint/UnusedMethodArgument, Metrics/AbcSize, Metrics/MethodLength
90
+ def self.destroy_children_split_from(file_set:, work:, model:, user:)
90
91
  all_child_works = Hyrax.custom_queries.find_child_works(resource: work)
91
92
  return if all_child_works.blank?
92
93
  # look first for children by the file set id they were split from
@@ -96,6 +97,15 @@ module IiifPrint
96
97
  children = all_child_works.select { |m| m.title.include?(file_set.label) && m.title.include?(work.to_param) }
97
98
  end
98
99
  return if children.blank?
100
+ # we have to update the work's members first, then delete the children
101
+ # otherwise Hyrax tries to save the parent as each child is deleted, resulting
102
+ # in failing jobs
103
+ remaining_members = work.member_ids - children.map(&:id)
104
+ work.member_ids = remaining_members
105
+ Hyrax.persister.save(resource: work)
106
+ Hyrax.index_adapter.save(resource: work)
107
+ Hyrax.publisher.publish('object.membership.updated', object: work, user: user)
108
+
99
109
  children.each do |rcd|
100
110
  Hyrax.persister.delete(resource: rcd)
101
111
  Hyrax.index_adapter.delete(resource: rcd)
@@ -103,6 +113,7 @@ module IiifPrint
103
113
  end
104
114
  true
105
115
  end
116
+ # rubocop:enable Lint/UnusedMethodArgument, Metrics/AbcSize, Metrics/MethodLength
106
117
 
107
118
  def self.pdf?(file_set)
108
119
  file_set.original_file&.pdf?
@@ -1,3 +1,3 @@
1
1
  module IiifPrint
2
- VERSION = '3.0.2'.freeze
2
+ VERSION = '3.0.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iiif_print
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Upton
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2025-01-30 00:00:00.000000000 Z
17
+ date: 2025-02-07 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: blacklight_iiif_search