bulkrax 3.3.0 → 3.4.0

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: 4c6719caedaf4adb707986e0b6771f1025ce1e08d0bf46afa78a85d99faded2b
4
- data.tar.gz: 7af41a63f79c6d9792066cf545f35bb723c7667970f0ea1e3a87c04dceda28d0
3
+ metadata.gz: f0ee151bc10b7485eb716463b2c4895165d6df9d73c3dd60813d2eb4de8161d1
4
+ data.tar.gz: f4e5ddfb5ac602eb20a85850f8ec5a9286a9a668f8c83548dd049db4d91a2a0e
5
5
  SHA512:
6
- metadata.gz: 7ed10c67e81885b4ff3b40d2731b93b790495e19cad51fb9dfb0dcc5bebcd4c60fecc86fe0932f058d100a7937cedab43c1df050c98efd2107c086fdb2fd93a2
7
- data.tar.gz: 5a81d4cd7d0289b5d27a13876f20c29b0b40f0989ecbac7caaf26599a1cbdea5c27a2473f759783690562345e8b5d7c515a4f4a0f92d5241803897887e2e9214
6
+ metadata.gz: a5b029da7feaee11c8a3eb58e0c7150abcb06b6ca08f9d102134d5e1c9eef3049ae85b0084d74934b7504688da7d4958a0dc425c705b42101c1a3ce62a57d0c7
7
+ data.tar.gz: c807b68265c0d88b9e7faea4f6efdf94b3bcf90e965f5cc97cc259202bc55db976944eea8e4bf99876723f881d29d2fa7004dbd9985f7f8164648df517722133
@@ -61,6 +61,7 @@ module Bulkrax
61
61
  work_actor.update(environment(attrs))
62
62
  end
63
63
  end
64
+ object.apply_depositor_metadata(@user) && object.save! if object.depositor.nil?
64
65
  log_updated(object)
65
66
  end
66
67
 
@@ -107,6 +108,7 @@ module Bulkrax
107
108
  end
108
109
  end
109
110
  end
111
+ object.apply_depositor_metadata(@user) && object.save! if object.depositor.nil?
110
112
  log_created(object)
111
113
  end
112
114
 
@@ -141,7 +143,6 @@ module Bulkrax
141
143
  attrs = clean_attrs(attrs)
142
144
  attrs = collection_type(attrs)
143
145
  object.attributes = attrs
144
- object.apply_depositor_metadata(@user)
145
146
  object.save!
146
147
  end
147
148
 
@@ -33,7 +33,7 @@ module Bulkrax
33
33
  # is the child in the relationship, and vice versa if a child_identifier is passed.
34
34
  def perform(parent_identifier:, importer_run_id:) # rubocop:disable Metrics/AbcSize
35
35
  pending_relationships = Bulkrax::PendingRelationship.find_each.select do |rel|
36
- rel.bulkrax_importer_run_id == importer_run_id && rel.parent_id == parent_identifier
36
+ rel.importer_run_id == importer_run_id && rel.parent_id == parent_identifier
37
37
  end.sort_by(&:order)
38
38
 
39
39
  @importer_run_id = importer_run_id
@@ -6,26 +6,26 @@ module Bulkrax
6
6
 
7
7
  def perform(*args)
8
8
  entry = Entry.find(args[0])
9
+ exporter_run = ExporterRun.find(args[1])
9
10
  begin
10
11
  entry.build
11
12
  entry.save
12
13
  rescue StandardError
13
14
  # rubocop:disable Rails/SkipsModelValidations
14
- ExporterRun.find(args[1]).increment!(:failed_records)
15
- ExporterRun.find(args[1]).decrement!(:enqueued_records)
15
+ exporter_run.increment!(:failed_records)
16
+ exporter_run.decrement!(:enqueued_records) unless exporter_run.enqueued_records <= 0
16
17
  raise
17
18
  else
18
19
  if entry.failed?
19
- ExporterRun.find(args[1]).increment!(:failed_records)
20
- ExporterRun.find(args[1]).decrement!(:enqueued_records)
20
+ exporter_run.increment!(:failed_records)
21
+ exporter_run.decrement!(:enqueued_records) unless exporter_run.enqueued_records <= 0
21
22
  raise entry.reload.current_status.error_class.constantize
22
23
  else
23
- ExporterRun.find(args[1]).increment!(:processed_records)
24
- ExporterRun.find(args[1]).decrement!(:enqueued_records)
24
+ exporter_run.increment!(:processed_records)
25
+ exporter_run.decrement!(:enqueued_records) unless exporter_run.enqueued_records <= 0
25
26
  end
26
27
  # rubocop:enable Rails/SkipsModelValidations
27
28
  end
28
- exporter_run = ExporterRun.find(args[1])
29
29
  return entry if exporter_run.enqueued_records.positive?
30
30
 
31
31
  if exporter_run.failed_records.positive?
@@ -12,6 +12,8 @@ module Bulkrax
12
12
  import(importer, only_updates_since_last_import)
13
13
  update_current_run_counters(importer)
14
14
  schedule(importer) if importer.schedulable?
15
+ rescue CSV::MalformedCSVError => e
16
+ importer.status_info(e)
15
17
  end
16
18
 
17
19
  def import(importer, only_updates_since_last_import)
@@ -114,9 +114,10 @@ module Bulkrax
114
114
  def build_files_metadata
115
115
  file_mapping = key_for_export('file')
116
116
  file_sets = hyrax_record.file_set? ? Array.wrap(hyrax_record) : hyrax_record.file_sets
117
- filenames = file_sets.map { |fs| filename(fs).to_s if filename(fs).present? }.compact
117
+ filenames = map_file_sets(file_sets)
118
118
 
119
119
  handle_join_on_export(file_mapping, filenames, mapping['file']&.[]('join')&.present?)
120
+ build_thumbnail_files if hyrax_record.work?
120
121
  end
121
122
 
122
123
  def build_relationship_metadata
@@ -219,15 +220,6 @@ module Bulkrax
219
220
  end
220
221
  end
221
222
 
222
- def build_files
223
- file_mapping = mapping['file']&.[]('from')&.first || 'file'
224
- file_sets = hyrax_record.file_set? ? Array.wrap(hyrax_record) : hyrax_record.file_sets
225
-
226
- filenames = map_file_sets(file_sets)
227
- handle_join_on_export(file_mapping, filenames, mapping['file']&.[]('join')&.present?)
228
- build_thumbnail_files if hyrax_record.work?
229
- end
230
-
231
223
  def build_thumbnail_files
232
224
  return unless importerexporter.include_thumbnails
233
225
 
@@ -14,13 +14,15 @@ module Bulkrax
14
14
  validates :name, presence: true
15
15
  validates :parser_klass, presence: true
16
16
 
17
- delegate :write, :create_from_collection, :create_from_importer, :create_from_worktype, :create_from_all, to: :parser
17
+ delegate :write, :create_from_collection, :create_from_collections_metadata, :create_from_importer, :create_from_worktype, :create_from_all, to: :parser
18
18
 
19
19
  def export
20
20
  current_run && setup_export_path
21
21
  case self.export_from
22
22
  when 'collection'
23
23
  create_from_collection
24
+ when 'collections metadata'
25
+ create_from_collections_metadata
24
26
  when 'importer'
25
27
  create_from_importer
26
28
  when 'worktype'
@@ -87,6 +89,7 @@ module Bulkrax
87
89
  [
88
90
  [I18n.t('bulkrax.exporter.labels.importer'), 'importer'],
89
91
  [I18n.t('bulkrax.exporter.labels.collection'), 'collection'],
92
+ [I18n.t('bulkrax.exporter.labels.collections_metadata'), 'collections metadata'],
90
93
  [I18n.t('bulkrax.exporter.labels.worktype'), 'worktype'],
91
94
  [I18n.t('bulkrax.exporter.labels.all'), 'all']
92
95
  ]
@@ -96,16 +96,19 @@ module Bulkrax
96
96
  end
97
97
 
98
98
  def current_run
99
- @current_run ||= if file? && zip?
100
- self.importer_runs.create!
101
- else
102
- entry_counts = {
103
- total_work_entries: self.limit || parser.works_total,
104
- total_collection_entries: parser.collections_total,
105
- total_file_set_entries: parser.file_sets_total
106
- }
107
- self.importer_runs.create!(entry_counts)
108
- end
99
+ return @current_run if @current_run.present?
100
+
101
+ @current_run = self.importer_runs.create!
102
+ return @current_run if file? && zip?
103
+
104
+ entry_counts = {
105
+ total_work_entries: self.limit || parser.works_total,
106
+ total_collection_entries: parser.collections_total,
107
+ total_file_set_entries: parser.file_sets_total
108
+ }
109
+ @current_run.update!(entry_counts)
110
+
111
+ @current_run
109
112
  end
110
113
 
111
114
  def last_run
@@ -4,9 +4,10 @@ module Bulkrax
4
4
  class ImporterRun < ApplicationRecord
5
5
  belongs_to :importer
6
6
  has_many :statuses, as: :runnable, dependent: :destroy
7
+ has_many :pending_relationships, dependent: :destroy
7
8
 
8
9
  def parents
9
- PendingRelationship.where(bulkrax_importer_run_id: id).pluck(:parent_id).uniq
10
+ pending_relationships.pluck(:parent_id).uniq
10
11
  end
11
12
  end
12
13
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Bulkrax
4
4
  class PendingRelationship < ApplicationRecord
5
- belongs_to :bulkrax_importer_run, class_name: "::Bulkrax::ImporterRun"
5
+ belongs_to :importer_run
6
6
  end
7
7
  end
@@ -51,7 +51,7 @@ module Bulkrax
51
51
  fn = file_set.original_file.file_name.first
52
52
  mime = Mime::Type.lookup(file_set.original_file.mime_type)
53
53
  ext_mime = MIME::Types.of(file_set.original_file.file_name).first
54
- if fn.include?(file_set.id) || importerexporter.metadata_only? || importerexporter.parser_klass.include?('Bagit')
54
+ if fn.include?(file_set.id) || importerexporter.metadata_only?
55
55
  filename = "#{fn}.#{mime.to_sym}"
56
56
  filename = fn if mime.to_s == ext_mime.to_s
57
57
  else
@@ -50,7 +50,7 @@ module Bulkrax
50
50
  self.parsed_metadata[related_parents_parsed_mapping].each do |parent_identifier|
51
51
  next if parent_identifier.blank?
52
52
 
53
- PendingRelationship.create!(child_id: self.identifier, parent_id: parent_identifier, bulkrax_importer_run_id: importerexporter.last_run.id, order: self.id)
53
+ PendingRelationship.create!(child_id: self.identifier, parent_id: parent_identifier, importer_run_id: importerexporter.last_run.id, order: self.id)
54
54
  end
55
55
  end
56
56
 
@@ -58,7 +58,7 @@ module Bulkrax
58
58
  self.parsed_metadata[related_children_parsed_mapping].each do |child_identifier|
59
59
  next if child_identifier.blank?
60
60
 
61
- PendingRelationship.create!(parent_id: self.identifier, child_id: child_identifier, bulkrax_importer_run_id: importerexporter.last_run.id, order: self.id)
61
+ PendingRelationship.create!(parent_id: self.identifier, child_id: child_identifier, importer_run_id: importerexporter.last_run.id, order: self.id)
62
62
  end
63
63
  end
64
64
 
@@ -18,7 +18,7 @@ module Bulkrax
18
18
  end
19
19
 
20
20
  def failed?
21
- current_status&.status_message&.match(/fail/i)
21
+ current_status&.status_message&.eql?('Failed')
22
22
  end
23
23
 
24
24
  def succeeded?
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'zip'
2
3
 
3
4
  module Bulkrax
4
5
  class ApplicationParser # rubocop:disable Metrics/ClassLength
@@ -19,8 +19,14 @@ module Bulkrax
19
19
  rdf_format = parser_fields&.[]('metadata_format') == "Bulkrax::RdfEntry"
20
20
  rdf_format ? RdfEntry : CsvEntry
21
21
  end
22
- alias collection_entry_class entry_class
23
- alias file_set_entry_class entry_class
22
+
23
+ def collection_entry_class
24
+ CsvCollectionEntry
25
+ end
26
+
27
+ def file_set_entry_class
28
+ CsvFileSetEntry
29
+ end
24
30
 
25
31
  # Take a random sample of 10 metadata_paths and work out the import fields from that
26
32
  def import_fields
@@ -95,7 +101,15 @@ module Bulkrax
95
101
  end
96
102
 
97
103
  def total
98
- importerexporter.entries.count
104
+ @total = importer.parser_fields['total'] || 0 if importer?
105
+
106
+ @total = if exporter?
107
+ limit.nil? || limit.zero? ? current_record_ids.count : limit
108
+ end
109
+
110
+ return @total || 0
111
+ rescue StandardError
112
+ @total = 0
99
113
  end
100
114
 
101
115
  def extra_filters
@@ -118,7 +132,6 @@ module Bulkrax
118
132
  case importerexporter.export_from
119
133
  when 'all'
120
134
  @work_ids = ActiveFedora::SolrService.query("has_model_ssim:(#{Hyrax.config.curation_concerns.join(' OR ')}) #{extra_filters}", method: :post, rows: 2_147_483_647).map(&:id)
121
- @collection_ids = ActiveFedora::SolrService.query("has_model_ssim:Collection #{extra_filters}", method: :post, rows: 2_147_483_647).map(&:id)
122
135
  @file_set_ids = ActiveFedora::SolrService.query("has_model_ssim:FileSet #{extra_filters}", method: :post, rows: 2_147_483_647).map(&:id)
123
136
  when 'collection'
124
137
  @work_ids = ActiveFedora::SolrService.query("member_of_collection_ids_ssim:#{importerexporter.export_source + extra_filters}", method: :post, rows: 2_000_000_000).map(&:id)
@@ -127,7 +140,6 @@ module Bulkrax
127
140
  when 'importer'
128
141
  set_ids_for_exporting_from_importer
129
142
  end
130
-
131
143
  @work_ids + @collection_ids + @file_set_ids
132
144
  end
133
145
 
@@ -155,6 +167,8 @@ module Bulkrax
155
167
  end
156
168
  end
157
169
 
170
+ # export methods
171
+
158
172
  def create_new_entries
159
173
  current_record_ids.each_with_index do |id, index|
160
174
  break if limit_reached?(limit, index)
@@ -182,34 +196,44 @@ module Bulkrax
182
196
  alias create_from_worktype create_new_entries
183
197
  alias create_from_all create_new_entries
184
198
 
185
- # export methods
186
-
187
- # rubocop:disable Metrics/AbcSize
199
+ # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
188
200
  def write_files
189
201
  require 'open-uri'
190
202
  require 'socket'
191
- importerexporter.entries.where(identifier: current_record_ids)[0..limit || total].each do |e|
192
- bag = BagIt::Bag.new setup_bagit_folder(e.identifier)
193
- w = ActiveFedora::Base.find(e.identifier)
194
- next unless Hyrax.config.curation_concerns.include?(w.class)
203
+ importerexporter.entries.where(identifier: current_record_ids)[0..limit || total].each do |entry|
204
+ work = ActiveFedora::Base.find(entry.identifier)
205
+ next unless Hyrax.config.curation_concerns.include?(work.class)
206
+ bag = BagIt::Bag.new setup_bagit_folder(entry.identifier)
207
+ bag_entries = [entry]
208
+
209
+ work.file_sets.each do |fs|
210
+ if @file_set_ids.present?
211
+ file_set_entry = Bulkrax::CsvFileSetEntry.where("parsed_metadata LIKE '%#{fs.id}%'").first
212
+ bag_entries << file_set_entry unless file_set_entry.nil?
213
+ end
195
214
 
196
- w.file_sets.each do |fs|
197
215
  file_name = filename(fs)
198
216
  next if file_name.blank?
199
217
  io = open(fs.original_file.uri)
200
218
  file = Tempfile.new([file_name, File.extname(file_name)], binmode: true)
201
219
  file.write(io.read)
202
220
  file.close
203
- bag.add_file(file_name, file.path)
221
+ begin
222
+ bag.add_file(file_name, file.path)
223
+ rescue => e
224
+ entry.status_info(e)
225
+ status_info(e)
226
+ end
204
227
  end
205
- CSV.open(setup_csv_metadata_export_file(e.identifier), "w", headers: export_headers, write_headers: true) do |csv|
206
- csv << e.parsed_metadata
228
+
229
+ CSV.open(setup_csv_metadata_export_file(entry.identifier), "w", headers: export_headers, write_headers: true) do |csv|
230
+ bag_entries.each { |csv_entry| csv << csv_entry.parsed_metadata }
207
231
  end
208
- write_triples(e)
232
+ write_triples(entry)
209
233
  bag.manifest!(algo: 'sha256')
210
234
  end
211
235
  end
212
- # rubocop:enable Metrics/AbcSize
236
+ # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
213
237
 
214
238
  def setup_csv_metadata_export_file(id)
215
239
  File.join(importerexporter.exporter_export_path, id, 'metadata.csv')
@@ -195,6 +195,9 @@ module Bulkrax
195
195
  @file_set_ids = ActiveFedora::SolrService.query("has_model_ssim:FileSet #{extra_filters}", method: :post, rows: 2_147_483_647).map(&:id)
196
196
  when 'collection'
197
197
  @work_ids = ActiveFedora::SolrService.query("member_of_collection_ids_ssim:#{importerexporter.export_source + extra_filters}", method: :post, rows: 2_000_000_000).map(&:id)
198
+ @collection_ids = ActiveFedora::SolrService.query("id:#{importerexporter.export_source} #{extra_filters}", method: :post, rows: 2_147_483_647).map(&:id)
199
+ when 'collections metadata'
200
+ @collection_ids = ActiveFedora::SolrService.query("has_model_ssim:Collection #{extra_filters}", method: :post, rows: 2_147_483_647).map(&:id)
198
201
  when 'worktype'
199
202
  @work_ids = ActiveFedora::SolrService.query("has_model_ssim:#{importerexporter.export_source + extra_filters}", method: :post, rows: 2_000_000_000).map(&:id)
200
203
  when 'importer'
@@ -251,6 +254,7 @@ module Bulkrax
251
254
  end
252
255
  end
253
256
  alias create_from_collection create_new_entries
257
+ alias create_from_collections_metadata create_new_entries
254
258
  alias create_from_importer create_new_entries
255
259
  alias create_from_worktype create_new_entries
256
260
  alias create_from_all create_new_entries
@@ -15,15 +15,15 @@
15
15
 
16
16
  <%= form.hidden_field :user_id, value: current_user.id %>
17
17
 
18
- <%= form.input :export_type,
19
- collection: form.object.export_type_list,
20
- label: t('bulkrax.exporter.labels.export_type'),
18
+ <%= form.input :export_type,
19
+ collection: form.object.export_type_list,
20
+ label: t('bulkrax.exporter.labels.export_type'),
21
21
  required: true,
22
22
  prompt: 'Please select an export type' %>
23
23
 
24
- <%= form.input :export_from,
25
- collection: form.object.export_from_list,
26
- label: t('bulkrax.exporter.labels.export_from'),
24
+ <%= form.input :export_from,
25
+ collection: form.object.export_from_list,
26
+ label: t('bulkrax.exporter.labels.export_from'),
27
27
  required: true,
28
28
  prompt: 'Please select an export source' %>
29
29
 
@@ -55,8 +55,8 @@
55
55
  input_html: { class: 'worktype export-source-option hidden' },
56
56
  collection: Hyrax.config.curation_concerns.map {|cc| [cc.to_s, cc.to_s] } %>
57
57
 
58
- <%= form.input :limit,
59
- as: :integer,
58
+ <%= form.input :limit,
59
+ as: :integer,
60
60
  hint: 'leave blank or 0 for all records',
61
61
  label: t('bulkrax.exporter.labels.limit') %>
62
62
 
@@ -90,8 +90,8 @@
90
90
  collection: form.object.workflow_status_list,
91
91
  label: t('bulkrax.exporter.labels.status') %>
92
92
 
93
- <%= form.input :parser_klass,
94
- collection: Bulkrax.parsers.map {|p| [p[:name], p[:class_name], {'data-partial' => p[:partial]}] if p[:class_name].constantize.export_supported? }.compact,
93
+ <%= form.input :parser_klass,
94
+ collection: Bulkrax.parsers.map {|p| [p[:name], p[:class_name], {'data-partial' => p[:partial]}] if p[:class_name].constantize.export_supported? }.compact,
95
95
  label: t('bulkrax.exporter.labels.export_format') %>
96
96
  </div>
97
97
 
@@ -40,6 +40,11 @@
40
40
  <% when 'collection' %>
41
41
  <% collection = Collection.find(@exporter.export_source) %>
42
42
  <%= link_to collection&.title&.first, hyrax.dashboard_collection_path(collection.id) %>
43
+ <% when 'collections metadata' %>
44
+ <% collections = Collection.all %>
45
+ <% collections.each_with_index do |c, i| %>
46
+ <%= link_to c&.title&.first, hyrax.dashboard_collection_path(c.id) %><%= ',' if i != collections.count - 1 %>
47
+ <% end %>
43
48
  <% when 'importer' %>
44
49
  <% importer = Bulkrax::Importer.find(@exporter.export_source) %>
45
50
  <%= link_to importer.name, bulkrax.importer_path(importer.id) %>
@@ -8,6 +8,7 @@ en:
8
8
  labels:
9
9
  all: All
10
10
  collection: Collection
11
+ collections_metadata: All Collections' Metadata (only)
11
12
  export_format: Export Format
12
13
  export_from: Export From
13
14
  export_source: Export Source
@@ -0,0 +1,17 @@
1
+ class RenameBulkraxImporterRunToImporterRun < ActiveRecord::Migration[5.2]
2
+ def up
3
+ if column_exists?(:bulkrax_pending_relationships, :bulkrax_importer_run_id)
4
+ remove_foreign_key :bulkrax_pending_relationships, :bulkrax_importer_runs
5
+ remove_index :bulkrax_pending_relationships, column: :bulkrax_importer_run_id
6
+
7
+ rename_column :bulkrax_pending_relationships, :bulkrax_importer_run_id, :importer_run_id
8
+
9
+ add_foreign_key :bulkrax_pending_relationships, :bulkrax_importer_runs, column: :importer_run_id
10
+ add_index :bulkrax_pending_relationships, :importer_run_id, name: 'index_bulkrax_pending_relationships_on_importer_run_id'
11
+ end
12
+ end
13
+
14
+ def down
15
+ rename_column :bulkrax_pending_relationships, :importer_run_id, :bulkrax_importer_run_id
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bulkrax
4
- VERSION = '3.3.0'
4
+ VERSION = '3.4.0'
5
5
  end
@@ -10,7 +10,7 @@ class Bulkrax::InstallGenerator < Rails::Generators::Base
10
10
  end
11
11
 
12
12
  def add_to_gemfile
13
- gem 'willow_sword', github: 'notch8/willow_sword'
13
+ gem 'bulkrax'
14
14
 
15
15
  Bundler.with_clean_env do
16
16
  run "bundle install"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bulkrax
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Kaufman
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-08 00:00:00.000000000 Z
11
+ date: 2022-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -25,81 +25,81 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 5.1.6
27
27
  - !ruby/object:Gem::Dependency
28
- name: loofah
28
+ name: bagit
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.2.3
33
+ version: '0.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 2.2.3
40
+ version: '0.4'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rack
42
+ name: coderay
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 2.0.6
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 2.0.6
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: simple_form
56
+ name: iso8601
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.9.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 0.9.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: iso8601
70
+ name: kaminari
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.9.0
75
+ version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.9.0
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: oai
84
+ name: language_list
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.4'
90
- - - "<"
89
+ version: '1.2'
90
+ - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 2.x
92
+ version: 1.2.1
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - ">="
97
+ - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '0.4'
100
- - - "<"
99
+ version: '1.2'
100
+ - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 2.x
102
+ version: 1.2.1
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: libxml-ruby
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -115,61 +115,75 @@ dependencies:
115
115
  - !ruby/object:Gem::Version
116
116
  version: 3.1.0
117
117
  - !ruby/object:Gem::Dependency
118
- name: language_list
118
+ name: loofah
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '1.2'
124
121
  - - ">="
125
122
  - !ruby/object:Gem::Version
126
- version: 1.2.1
123
+ version: 2.2.3
127
124
  type: :runtime
128
125
  prerelease: false
129
126
  version_requirements: !ruby/object:Gem::Requirement
130
127
  requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: '1.2'
134
128
  - - ">="
135
129
  - !ruby/object:Gem::Version
136
- version: 1.2.1
130
+ version: 2.2.3
137
131
  - !ruby/object:Gem::Dependency
138
- name: rdf
132
+ name: oai
139
133
  requirement: !ruby/object:Gem::Requirement
140
134
  requirements:
141
135
  - - ">="
142
136
  - !ruby/object:Gem::Version
143
- version: 2.0.2
137
+ version: '0.4'
144
138
  - - "<"
145
139
  - !ruby/object:Gem::Version
146
- version: '4.0'
140
+ version: 2.x
147
141
  type: :runtime
148
142
  prerelease: false
149
143
  version_requirements: !ruby/object:Gem::Requirement
150
144
  requirements:
151
145
  - - ">="
152
146
  - !ruby/object:Gem::Version
153
- version: 2.0.2
147
+ version: '0.4'
154
148
  - - "<"
155
149
  - !ruby/object:Gem::Version
156
- version: '4.0'
150
+ version: 2.x
157
151
  - !ruby/object:Gem::Dependency
158
- name: bagit
152
+ name: rack
159
153
  requirement: !ruby/object:Gem::Requirement
160
154
  requirements:
161
- - - "~>"
155
+ - - ">="
162
156
  - !ruby/object:Gem::Version
163
- version: '0.4'
157
+ version: 2.0.6
164
158
  type: :runtime
165
159
  prerelease: false
166
160
  version_requirements: !ruby/object:Gem::Requirement
167
161
  requirements:
168
- - - "~>"
162
+ - - ">="
169
163
  - !ruby/object:Gem::Version
170
- version: '0.4'
164
+ version: 2.0.6
171
165
  - !ruby/object:Gem::Dependency
172
- name: coderay
166
+ name: rdf
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: 2.0.2
172
+ - - "<"
173
+ - !ruby/object:Gem::Version
174
+ version: '4.0'
175
+ type: :runtime
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: 2.0.2
182
+ - - "<"
183
+ - !ruby/object:Gem::Version
184
+ version: '4.0'
185
+ - !ruby/object:Gem::Dependency
186
+ name: rubyzip
173
187
  requirement: !ruby/object:Gem::Requirement
174
188
  requirements:
175
189
  - - ">="
@@ -183,7 +197,7 @@ dependencies:
183
197
  - !ruby/object:Gem::Version
184
198
  version: '0'
185
199
  - !ruby/object:Gem::Dependency
186
- name: kaminari
200
+ name: simple_form
187
201
  requirement: !ruby/object:Gem::Requirement
188
202
  requirements:
189
203
  - - ">="
@@ -374,6 +388,7 @@ files:
374
388
  - db/migrate/20220303212810_add_order_to_bulkrax_pending_relationships.rb
375
389
  - db/migrate/20220412233954_add_include_thumbnails_to_bulkrax_exporters.rb
376
390
  - db/migrate/20220413180915_add_generated_metadata_to_bulkrax_exporters.rb
391
+ - db/migrate/20220609001128_rename_bulkrax_importer_run_to_importer_run.rb
377
392
  - lib/bulkrax.rb
378
393
  - lib/bulkrax/engine.rb
379
394
  - lib/bulkrax/version.rb
@@ -389,7 +404,7 @@ homepage: https://github.com/samvera-labs/bulkrax
389
404
  licenses:
390
405
  - Apache-2.0
391
406
  metadata: {}
392
- post_install_message:
407
+ post_install_message:
393
408
  rdoc_options: []
394
409
  require_paths:
395
410
  - lib
@@ -404,8 +419,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
404
419
  - !ruby/object:Gem::Version
405
420
  version: '0'
406
421
  requirements: []
407
- rubygems_version: 3.0.3
408
- signing_key:
422
+ rubygems_version: 3.1.4
423
+ signing_key:
409
424
  specification_version: 4
410
425
  summary: Import and export tool for Hyrax and Hyku
411
426
  test_files: []