zizia 3.0.0.alpha.01 → 3.1.0.alpha.01

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90b6fee12982a33482459065c8d486198ccacc9e98853e6a8654b57eee92334a
4
- data.tar.gz: 9dc25fad947cfa77a960831b9e9a3307a6c8bbcc27adaecce762c4255a0da239
3
+ metadata.gz: a24728641684b8789177ad48a5a3053089f58b10258dc17d2ff580d09da8ca3a
4
+ data.tar.gz: 0eda7cd8f1446c5565bb4720ac8d633babc30653ef242fdf61e65fae1dd924ee
5
5
  SHA512:
6
- metadata.gz: 25e92885a6e991097b1debec7c9f2c00a01bf0ad4ff58c94e01bdf86518ba62867233d72845959a51eebe2510e0f14f6bbb7e829e685462a23e0e6f4f8f1981b
7
- data.tar.gz: 36717ea07f9f8cb2e363d267afd759fcce3d7b50e2629eb6631a0895e2916387d77e174b93a48e46fc8db0641cfb93d98e5559f583a209136c5bb170993f7006
6
+ metadata.gz: 2aa309d328946d8bf4bcaeeb46a0445388941105107ff5b9d079bd15138b8ad3785bc210a1b11f7ea24c52a7ba5817becf41b0897640e32ee95ddb8be4e69b31
7
+ data.tar.gz: 2166ccfb776ea3ffd52a63fca25e5066ea3d867698f29bf02be4a51f33b7f4c360acb2da9d9e1588e3774b35e3d30d900d2584a82ef0065b65718c194c6308d3
data/.rubocop.yml CHANGED
@@ -64,6 +64,7 @@ RSpec/ExampleLength:
64
64
  Exclude:
65
65
  - 'spec/zizia/hyrax_basic_metadata_mapper_spec.rb'
66
66
  - 'spec/integration/import_hyrax_csv.rb'
67
+ - 'spec/integration/csv_import_detail_spec.rb'
67
68
 
68
69
  RSpec/MessageSpies:
69
70
  Exclude:
@@ -74,6 +75,7 @@ RSpec/MultipleExpectations:
74
75
  - 'spec/zizia/hyrax_basic_metadata_mapper_spec.rb'
75
76
  - 'spec/integration/import_hyrax_csv.rb'
76
77
  - 'spec/controllers/importer_documentation_controller_spec.rb'
78
+ - 'spec/integration/csv_import_detail_spec.rb'
77
79
 
78
80
  Style/StructInheritance:
79
81
  Enabled: false
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ module Zizia
3
+ class CsvImportDetail < ApplicationRecord
4
+ belongs_to :csv_import
5
+ has_many :pre_ingest_works
6
+ has_many :pre_ingest_files, through: :pre_ingest_works
7
+
8
+ def total_size
9
+ return 0 if pre_ingest_files.empty?
10
+ pre_ingest_files.map(&:size).sum
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ module Zizia
3
+ class PreIngestFile < ApplicationRecord
4
+ belongs_to :pre_ingest_work
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ module Zizia
3
+ class PreIngestWork < ApplicationRecord
4
+ has_many :pre_ingest_files
5
+ end
6
+ end
@@ -12,11 +12,11 @@ module Zizia
12
12
 
13
13
  # The directory where the csv manifest will be stored.
14
14
  def store_dir
15
- Rails.root.join('tmp', 'csv_uploads')
15
+ manifests_path || Rails.root.join('tmp', 'csv_uploads')
16
16
  end
17
17
 
18
18
  def cache_dir
19
- Rails.root.join('tmp', 'csv_uploads_cache')
19
+ manifests_cache_path || Rails.root.join('tmp', 'csv_uploads_cache')
20
20
  end
21
21
 
22
22
  # Add a white list of extensions which are allowed to be uploaded.
@@ -42,6 +42,18 @@ module Zizia
42
42
 
43
43
  private
44
44
 
45
+ def manifests_path
46
+ return false if ENV['CSV_MANIFESTS_PATH'].nil?
47
+ return false unless File.directory?(ENV['CSV_MANIFESTS_PATH'])
48
+ ENV['CSV_MANIFESTS_PATH']
49
+ end
50
+
51
+ def manifests_cache_path
52
+ return false if ENV['CSV_MANIFESTS_CACHE_PATH'].nil?
53
+ return false unless File.directory?(ENV['CSV_MANIFESTS_CACHE_PATH'])
54
+ ENV['CSV_MANIFESTS_CACHE_PATH']
55
+ end
56
+
45
57
  def validate_csv
46
58
  @validator = CsvManifestValidator.new(self)
47
59
  @validator.validate
@@ -0,0 +1,12 @@
1
+ class CreateZiziaPreIngestFiles < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :zizia_pre_ingest_files do |t|
4
+ t.integer :size
5
+ t.text :row
6
+ t.integer :row_number
7
+ t.string :filename
8
+ t.belongs_to :pre_ingest_work
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ class CreateZiziaPreIngestWorks < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :zizia_pre_ingest_works do |t|
4
+ t.integer :parent_object
5
+ t.belongs_to :csv_import_detail
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ class CreateZiziaCsvImportDetails < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :zizia_csv_import_details do |t|
4
+ t.belongs_to :csv_import
5
+ t.timestamps
6
+ end
7
+ end
8
+ end
data/lib/zizia/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Zizia
4
- VERSION = '3.0.0.alpha.01'
4
+ VERSION = '3.1.0.alpha.01'
5
5
  end
@@ -0,0 +1,2 @@
1
+ class User < ApplicationRecord
2
+ end
@@ -0,0 +1,8 @@
1
+ class CreateUsers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :users do |t|
4
+
5
+ t.timestamps
6
+ end
7
+ end
8
+ end
@@ -10,7 +10,19 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 20190124153654) do
13
+ ActiveRecord::Schema.define(version: 201901241536541) do
14
+
15
+ create_table "users", force: :cascade do |t|
16
+ t.datetime "created_at", null: false
17
+ t.datetime "updated_at", null: false
18
+ end
19
+
20
+ create_table "zizia_csv_import_details", force: :cascade do |t|
21
+ t.integer "csv_import_id"
22
+ t.datetime "created_at", null: false
23
+ t.datetime "updated_at", null: false
24
+ t.index ["csv_import_id"], name: "index_zizia_csv_import_details_on_csv_import_id"
25
+ end
14
26
 
15
27
  create_table "zizia_csv_imports", force: :cascade do |t|
16
28
  t.integer "user_id"
@@ -21,4 +33,23 @@ ActiveRecord::Schema.define(version: 20190124153654) do
21
33
  t.index ["user_id"], name: "index_zizia_csv_imports_on_user_id"
22
34
  end
23
35
 
36
+ create_table "zizia_pre_ingest_files", force: :cascade do |t|
37
+ t.integer "size"
38
+ t.text "row"
39
+ t.integer "row_number"
40
+ t.string "filename"
41
+ t.integer "pre_ingest_work_id"
42
+ t.datetime "created_at", null: false
43
+ t.datetime "updated_at", null: false
44
+ t.index ["pre_ingest_work_id"], name: "index_zizia_pre_ingest_files_on_pre_ingest_work_id"
45
+ end
46
+
47
+ create_table "zizia_pre_ingest_works", force: :cascade do |t|
48
+ t.integer "parent_object"
49
+ t.integer "csv_import_detail_id"
50
+ t.datetime "created_at", null: false
51
+ t.datetime "updated_at", null: false
52
+ t.index ["csv_import_detail_id"], name: "index_zizia_pre_ingest_works_on_csv_import_detail_id"
53
+ end
54
+
24
55
  end
@@ -0,0 +1,11 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
+
3
+ # This model initially had no columns defined. If you add columns to the
4
+ # model remove the '{}' from the fixture names and add the columns immediately
5
+ # below each fixture, per the syntax in the comments below
6
+ #
7
+ one: {}
8
+ # column: value
9
+ #
10
+ two: {}
11
+ # column: value
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class UserTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe 'Using the CsvImportDetail models' do
6
+ let(:user) { User.new }
7
+ let(:csv_import) { Zizia::CsvImport.new }
8
+ let(:csv_import_detail) { Zizia::CsvImportDetail.new }
9
+ let(:pre_ingest_work_one) { Zizia::PreIngestWork.new }
10
+ let(:pre_ingest_work_two) { Zizia::PreIngestWork.new }
11
+ let(:pre_ingest_file_one) do
12
+ Zizia::PreIngestFile.new(row: 'some,row',
13
+ row_number: 1,
14
+ size: 1000)
15
+ end
16
+ let(:pre_ingest_file_two) do
17
+ Zizia::PreIngestFile.new(row: 'another,row',
18
+ row_number: 2,
19
+ size: 2000)
20
+ end
21
+
22
+ it 'allows you to create PreIngestFiles that are associated with PreIngestWorks' do
23
+ pre_ingest_work_one.save
24
+
25
+ pre_ingest_work_one.pre_ingest_files << pre_ingest_file_one
26
+ pre_ingest_work_one.pre_ingest_files << pre_ingest_file_two
27
+
28
+ expect(pre_ingest_work_one.pre_ingest_files.length).to eq(2)
29
+ end
30
+
31
+ it 'allows you to associate PreIngestWorks & Files with a CsvImportDetail' do
32
+ user.save
33
+ csv_import.user = user
34
+ csv_import.save!
35
+ csv_import_detail.csv_import = csv_import
36
+ csv_import_detail.save!
37
+
38
+ pre_ingest_work_one.pre_ingest_files << pre_ingest_file_one
39
+ pre_ingest_work_one.pre_ingest_files << pre_ingest_file_two
40
+ csv_import_detail.pre_ingest_works << pre_ingest_work_one
41
+ csv_import_detail.pre_ingest_works << pre_ingest_work_two
42
+
43
+ expect(csv_import_detail.pre_ingest_files.length).to eq(2)
44
+ expect(csv_import_detail.pre_ingest_works.length).to eq(2)
45
+
46
+ expect(csv_import_detail.total_size).to eq(3000)
47
+ end
48
+ end
data/spec/spec_helper.rb CHANGED
@@ -6,11 +6,13 @@ require 'pry' unless ENV['CI']
6
6
  ENV['environment'] ||= 'test'
7
7
  # Configure Rails Envinronment
8
8
  ENV['RAILS_ENV'] = 'test'
9
- require File.expand_path('../../spec/dummy/config/environment', __FILE__)
10
- require 'rails/all'
11
- require 'rspec/rails'
12
9
 
10
+ require File.expand_path("../dummy/config/environment", __FILE__)
13
11
  ENGINE_RAILS_ROOT = File.join(File.dirname(__FILE__), '../')
12
+ Dir[File.join(ENGINE_RAILS_ROOT, "spec/support/**/*.rb")].each { |f| require f }
13
+
14
+ require 'rails/all'
15
+ require 'rspec/rails'
14
16
 
15
17
  ActiveJob::Base.queue_adapter = :test
16
18
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zizia
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha.01
4
+ version: 3.1.0.alpha.01
5
5
  platform: ruby
6
6
  authors:
7
7
  - Data Curation Experts
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-23 00:00:00.000000000 Z
11
+ date: 2019-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active-fedora
@@ -296,6 +296,9 @@ files:
296
296
  - app/jobs/zizia/start_csv_import_job.rb
297
297
  - app/models/zizia/application_record.rb
298
298
  - app/models/zizia/csv_import.rb
299
+ - app/models/zizia/csv_import_detail.rb
300
+ - app/models/zizia/pre_ingest_file.rb
301
+ - app/models/zizia/pre_ingest_work.rb
299
302
  - app/uploaders/zizia/csv_manifest_uploader.rb
300
303
  - app/uploaders/zizia/csv_manifest_validator.rb
301
304
  - app/views/layouts/zizia/application.html.erb
@@ -317,6 +320,9 @@ files:
317
320
  - db/migrate/201901162141281_create_zizia_csv_imports.rb
318
321
  - db/migrate/201901162203121_add_manifest_to_zizia_csv_imports.rb
319
322
  - db/migrate/201901241536541_add_fedora_collection_id_to_zizia_csv_imports.rb
323
+ - db/migrate/20190911133657_create_zizia_pre_ingest_files.rb
324
+ - db/migrate/20190911134002_create_zizia_pre_ingest_works.rb
325
+ - db/migrate/20190911142616_create_zizia_csv_import_details.rb
320
326
  - docs/_config.yml
321
327
  - docs/customizing_metadata.md
322
328
  - docs/index.md
@@ -383,6 +389,7 @@ files:
383
389
  - spec/dummy/app/mailers/application_mailer.rb
384
390
  - spec/dummy/app/models/application_record.rb
385
391
  - spec/dummy/app/models/concerns/.keep
392
+ - spec/dummy/app/models/user.rb
386
393
  - spec/dummy/app/views/layouts/application.html.erb
387
394
  - spec/dummy/app/views/layouts/mailer.html.erb
388
395
  - spec/dummy/app/views/layouts/mailer.text.erb
@@ -415,6 +422,7 @@ files:
415
422
  - spec/dummy/config/routes.rb
416
423
  - spec/dummy/config/secrets.yml
417
424
  - spec/dummy/config/spring.rb
425
+ - spec/dummy/db/migrate/20190911165049_create_users.rb
418
426
  - spec/dummy/db/schema.rb
419
427
  - spec/dummy/db/seeds.rb
420
428
  - spec/dummy/lib/assets/.keep
@@ -432,10 +440,12 @@ files:
432
440
  - spec/dummy/test/controllers/.keep
433
441
  - spec/dummy/test/fixtures/.keep
434
442
  - spec/dummy/test/fixtures/files/.keep
443
+ - spec/dummy/test/fixtures/users.yml
435
444
  - spec/dummy/test/helpers/.keep
436
445
  - spec/dummy/test/integration/.keep
437
446
  - spec/dummy/test/mailers/.keep
438
447
  - spec/dummy/test/models/.keep
448
+ - spec/dummy/test/models/user_test.rb
439
449
  - spec/dummy/test/system/.keep
440
450
  - spec/dummy/test/test_helper.rb
441
451
  - spec/dummy/vendor/.keep
@@ -446,6 +456,7 @@ files:
446
456
  - spec/fixtures/images/animals/cat.png
447
457
  - spec/fixtures/images/zizia.png
448
458
  - spec/fixtures/zizia.png
459
+ - spec/integration/csv_import_detail_spec.rb
449
460
  - spec/integration/import_csv_spec.rb
450
461
  - spec/integration/import_hyrax_csv.rb
451
462
  - spec/models/csv_import_spec.rb
@@ -488,7 +499,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
488
499
  - !ruby/object:Gem::Version
489
500
  version: 1.3.1
490
501
  requirements: []
491
- rubygems_version: 3.0.4
502
+ rubygems_version: 3.0.3
492
503
  signing_key:
493
504
  specification_version: 4
494
505
  summary: Hyrax importers.