bulkrax 3.3.2 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/jobs/bulkrax/export_work_job.rb +7 -7
- data/app/models/bulkrax/exporter.rb +4 -1
- data/app/models/concerns/bulkrax/export_behavior.rb +1 -1
- data/app/parsers/bulkrax/application_parser.rb +1 -1
- data/app/parsers/bulkrax/bagit_parser.rb +42 -18
- data/app/parsers/bulkrax/csv_parser.rb +4 -0
- data/app/views/bulkrax/exporters/_form.html.erb +10 -10
- data/app/views/bulkrax/exporters/show.html.erb +5 -0
- data/config/locales/bulkrax.en.yml +1 -0
- data/db/migrate/20220609001128_rename_bulkrax_importer_run_to_importer_run.rb +11 -1
- data/lib/bulkrax/version.rb +1 -1
- data/lib/generators/bulkrax/install_generator.rb +1 -1
- metadata +64 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0ee151bc10b7485eb716463b2c4895165d6df9d73c3dd60813d2eb4de8161d1
|
4
|
+
data.tar.gz: f4e5ddfb5ac602eb20a85850f8ec5a9286a9a668f8c83548dd049db4d91a2a0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5b029da7feaee11c8a3eb58e0c7150abcb06b6ca08f9d102134d5e1c9eef3049ae85b0084d74934b7504688da7d4958a0dc425c705b42101c1a3ce62a57d0c7
|
7
|
+
data.tar.gz: c807b68265c0d88b9e7faea4f6efdf94b3bcf90e965f5cc97cc259202bc55db976944eea8e4bf99876723f881d29d2fa7004dbd9985f7f8164648df517722133
|
@@ -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
|
-
|
15
|
-
|
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
|
-
|
20
|
-
|
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
|
-
|
24
|
-
|
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?
|
@@ -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
|
]
|
@@ -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?
|
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
|
@@ -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
|
@@ -261,7 +262,6 @@ module Bulkrax
|
|
261
262
|
end
|
262
263
|
|
263
264
|
def zip
|
264
|
-
require 'zip'
|
265
265
|
FileUtils.rm_rf(exporter_export_zip_path)
|
266
266
|
Zip::File.open(exporter_export_zip_path, create: true) do |zip_file|
|
267
267
|
Dir["#{exporter_export_path}/**/**"].each do |file|
|
@@ -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
|
-
|
23
|
-
|
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
|
-
|
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
|
-
#
|
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 |
|
192
|
-
|
193
|
-
|
194
|
-
|
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
|
-
|
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
|
-
|
206
|
-
|
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(
|
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) %>
|
@@ -1,7 +1,17 @@
|
|
1
1
|
class RenameBulkraxImporterRunToImporterRun < ActiveRecord::Migration[5.2]
|
2
|
-
def
|
2
|
+
def up
|
3
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
|
+
|
4
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'
|
5
11
|
end
|
6
12
|
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
rename_column :bulkrax_pending_relationships, :importer_run_id, :bulkrax_importer_run_id
|
16
|
+
end
|
7
17
|
end
|
data/lib/bulkrax/version.rb
CHANGED
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.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Kaufman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
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:
|
28
|
+
name: bagit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
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:
|
40
|
+
version: '0.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: coderay
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
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:
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: iso8601
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
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:
|
68
|
+
version: 0.9.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: kaminari
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 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
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: language_list
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
90
|
-
- - "
|
89
|
+
version: '1.2'
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: 2.
|
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: '
|
100
|
-
- - "
|
99
|
+
version: '1.2'
|
100
|
+
- - ">="
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: 2.
|
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:
|
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:
|
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:
|
130
|
+
version: 2.2.3
|
137
131
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
132
|
+
name: oai
|
139
133
|
requirement: !ruby/object:Gem::Requirement
|
140
134
|
requirements:
|
141
135
|
- - ">="
|
142
136
|
- !ruby/object:Gem::Version
|
143
|
-
version:
|
137
|
+
version: '0.4'
|
144
138
|
- - "<"
|
145
139
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
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:
|
147
|
+
version: '0.4'
|
154
148
|
- - "<"
|
155
149
|
- !ruby/object:Gem::Version
|
156
|
-
version:
|
150
|
+
version: 2.x
|
157
151
|
- !ruby/object:Gem::Dependency
|
158
|
-
name:
|
152
|
+
name: rack
|
159
153
|
requirement: !ruby/object:Gem::Requirement
|
160
154
|
requirements:
|
161
|
-
- - "
|
155
|
+
- - ">="
|
162
156
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
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:
|
164
|
+
version: 2.0.6
|
171
165
|
- !ruby/object:Gem::Dependency
|
172
|
-
name:
|
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:
|
200
|
+
name: simple_form
|
187
201
|
requirement: !ruby/object:Gem::Requirement
|
188
202
|
requirements:
|
189
203
|
- - ">="
|