curation_concerns 0.13.1 → 0.14.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/curation_concerns/operations_controller.rb +12 -0
- data/app/jobs/import_url_job.rb +9 -1
- data/app/models/concerns/curation_concerns/ability.rb +7 -1
- data/app/models/curation_concerns/operation.rb +44 -0
- data/app/views/curation_concerns/operations/index.html.erb +23 -0
- data/app/views/curation_concerns/operations/show.html.erb +30 -0
- data/config/routes.rb +4 -0
- data/curation_concerns.gemspec +2 -0
- data/lib/curation_concerns/engine.rb +1 -0
- data/lib/curation_concerns/version.rb +1 -1
- data/lib/generators/curation_concerns/models_generator.rb +2 -1
- data/lib/generators/curation_concerns/templates/migrations/create_checksum_audit_logs.rb +1 -1
- data/lib/generators/curation_concerns/templates/migrations/create_operations.rb +23 -0
- data/lib/generators/curation_concerns/templates/migrations/create_single_use_links.rb +1 -1
- data/lib/generators/curation_concerns/templates/migrations/create_version_committers.rb +1 -1
- data/spec/abilities/operation_ability_spec.rb +11 -0
- data/spec/controllers/curation_concerns/operations_controller_spec.rb +28 -0
- data/spec/factories/operations.rb +17 -0
- data/spec/jobs/import_url_job_spec.rb +4 -2
- data/spec/models/curation_concerns/operation_spec.rb +40 -0
- metadata +31 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f74821b31213e7a844b8f8e5314eac62b792ccba
|
4
|
+
data.tar.gz: 3d63bba8d048b922a52e544b6296a58622137cf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07a68173b77edab2e48638220ce12435e500aae53c28cb634bbe80a3ceec77e0eaba25bf722e3ad02836e0d9b4d955320247b749f035eeefe2c145bbaa60a6ba
|
7
|
+
data.tar.gz: dcd8ca994910c1f326147e3a5d261a3d4e5afbec84fb3884d09801921c80463bd6435762a54fc8cbd9116d205c60ad537857a47bbe9414b112739238db75a1e4
|
data/app/jobs/import_url_job.rb
CHANGED
@@ -5,7 +5,13 @@ require 'tempfile'
|
|
5
5
|
class ImportUrlJob < ActiveJob::Base
|
6
6
|
queue_as :import_url
|
7
7
|
|
8
|
-
|
8
|
+
before_enqueue do |job|
|
9
|
+
log = job.arguments.last
|
10
|
+
log.pending_job(job)
|
11
|
+
end
|
12
|
+
|
13
|
+
def perform(file_set, log)
|
14
|
+
log.performing!
|
9
15
|
user = User.find_by_user_key(file_set.depositor)
|
10
16
|
|
11
17
|
Tempfile.open(file_set.id.tr('/', '_')) do |f|
|
@@ -18,8 +24,10 @@ class ImportUrlJob < ActiveJob::Base
|
|
18
24
|
if CurationConcerns::FileSetActor.new(file_set, user).create_content(f)
|
19
25
|
# send message to user on download success
|
20
26
|
CurationConcerns.config.callback.run(:after_import_url_success, file_set, user)
|
27
|
+
log.success!
|
21
28
|
else
|
22
29
|
CurationConcerns.config.callback.run(:after_import_url_failure, file_set, user)
|
30
|
+
log.fail!(file_set.errors.full_messages.join(' '))
|
23
31
|
end
|
24
32
|
end
|
25
33
|
end
|
@@ -2,7 +2,9 @@ module CurationConcerns
|
|
2
2
|
module Ability
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
included do
|
5
|
-
self.ability_logic += [:curation_concerns_permissions,
|
5
|
+
self.ability_logic += [:curation_concerns_permissions,
|
6
|
+
:operation_abilities,
|
7
|
+
:add_to_collection]
|
6
8
|
end
|
7
9
|
|
8
10
|
def curation_concerns_permissions
|
@@ -21,6 +23,10 @@ module CurationConcerns
|
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
26
|
+
def operation_abilities
|
27
|
+
can :read, Operation, user_id: current_user.id
|
28
|
+
end
|
29
|
+
|
24
30
|
def admin_permissions
|
25
31
|
alias_action :edit, to: :update
|
26
32
|
alias_action :show, to: :read
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module CurationConcerns
|
2
|
+
class Operation < ActiveRecord::Base
|
3
|
+
PENDING = 'pending'.freeze
|
4
|
+
PERFORMING = 'performing'.freeze
|
5
|
+
FAILURE = 'failure'.freeze
|
6
|
+
SUCCESS = 'success'.freeze
|
7
|
+
|
8
|
+
acts_as_nested_set
|
9
|
+
define_callbacks :success, :failure
|
10
|
+
belongs_to :user, class_name: '::User'
|
11
|
+
|
12
|
+
# If this is a batch job (has children), check to see if all the children are complete
|
13
|
+
def rollup_status
|
14
|
+
with_lock do
|
15
|
+
stats = children.pluck(:status)
|
16
|
+
return if stats.include?(PENDING) || stats.include?(PERFORMING)
|
17
|
+
return fail! if stats.include?(FAILURE)
|
18
|
+
success!
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def success!
|
23
|
+
run_callbacks :success do
|
24
|
+
update(status: SUCCESS)
|
25
|
+
parent.rollup_status if parent
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def fail!(message = nil)
|
30
|
+
run_callbacks :failure do
|
31
|
+
update(status: FAILURE, message: message)
|
32
|
+
parent.rollup_status if parent
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def performing!
|
37
|
+
update(status: PERFORMING)
|
38
|
+
end
|
39
|
+
|
40
|
+
def pending_job(job)
|
41
|
+
update(job_class: job.class.to_s, job_id: job.job_id, status: CurationConcerns::Operation::PENDING)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<% provide :page_title, 'Operations' %>
|
2
|
+
<% provide :page_header do %>
|
3
|
+
<h1>Operations</h1>
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<div class="row">
|
7
|
+
<div class="col-sm-4">
|
8
|
+
<table class="table">
|
9
|
+
<thead>
|
10
|
+
<th>Operation Type</th>
|
11
|
+
<th>Status</th>
|
12
|
+
</thead>
|
13
|
+
<tbody>
|
14
|
+
<% @operations.each do |op| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= link_to op.operation_type, sufia.user_operation_path(params[:user_id], op) %></td>
|
17
|
+
<td><span class="label <%= op.status == 'failure' ? 'label-danger' : 'label-success' %>"><%= op.status %></span></td>
|
18
|
+
</tr>
|
19
|
+
<% end %>
|
20
|
+
</tbody>
|
21
|
+
</table>
|
22
|
+
</div>
|
23
|
+
</div>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<% provide :page_title, 'Operations' %>
|
2
|
+
<% provide :page_header do %>
|
3
|
+
<h1><%= @operation.operation_type %> status</h1>
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<p><strong>Status:</strong> <span class="label <%= @operation.status == 'failure' ? 'label-danger' : 'label-success' %>"><%= @operation.status %></span></p>
|
7
|
+
<p><strong>Message:</strong> <span class="message"><%= @operation.message %></span></p>
|
8
|
+
|
9
|
+
<% if @operation.children.any? %>
|
10
|
+
<div class="row">
|
11
|
+
<div class="col-sm-4">
|
12
|
+
<table class="table">
|
13
|
+
<thead>
|
14
|
+
<th>Operation Type</th>
|
15
|
+
<th>Status</th>
|
16
|
+
<th>Message</th>
|
17
|
+
</thead>
|
18
|
+
<tbody>
|
19
|
+
<% @operation.children.each do |op| %>
|
20
|
+
<tr>
|
21
|
+
<td><%= link_to op.operation_type, sufia.user_operation_path(params[:user_id], op) %></td>
|
22
|
+
<td><span class="label <%= op.status == 'failure' ? 'label-danger' : 'label-success' %>"><%= op.status %></span></td>
|
23
|
+
<td><%= op.message %></td>
|
24
|
+
</tr>
|
25
|
+
<% end %>
|
26
|
+
</tbody>
|
27
|
+
</table>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
<% end %>
|
data/config/routes.rb
CHANGED
data/curation_concerns.gemspec
CHANGED
@@ -40,6 +40,8 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.add_dependency 'deprecation', '~> 0.1'
|
41
41
|
spec.add_dependency 'rdf', '~> 1.99'
|
42
42
|
spec.add_dependency 'rdf-vocab', '~> 0'
|
43
|
+
spec.add_dependency 'awesome_nested_set', '~> 3.0'
|
44
|
+
|
43
45
|
|
44
46
|
spec.add_development_dependency 'solr_wrapper', '~> 0.4'
|
45
47
|
spec.add_development_dependency 'fcrepo_wrapper', '~> 0.1'
|
@@ -18,7 +18,8 @@ This generator makes the following changes to your application:
|
|
18
18
|
[
|
19
19
|
'create_version_committers.rb',
|
20
20
|
'create_checksum_audit_logs.rb',
|
21
|
-
'create_single_use_links.rb'
|
21
|
+
'create_single_use_links.rb',
|
22
|
+
'create_operations.rb'
|
22
23
|
].each do |file|
|
23
24
|
better_migration_template file
|
24
25
|
end
|
@@ -7,7 +7,7 @@ class CreateChecksumAuditLogs < ActiveRecord::Migration
|
|
7
7
|
t.integer :pass
|
8
8
|
t.string :expected_result
|
9
9
|
t.string :actual_result
|
10
|
-
t.timestamps
|
10
|
+
t.timestamps null: false
|
11
11
|
end
|
12
12
|
add_index :checksum_audit_logs, [:file_set_id, :file_id], name: 'by_file_set_id_and_file_id', order: { created_at: 'DESC' }
|
13
13
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class CreateOperations < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :curation_concerns_operations do |t|
|
4
|
+
t.string :status
|
5
|
+
t.string :operation_type
|
6
|
+
t.string :job_class
|
7
|
+
t.string :job_id
|
8
|
+
t.string :type # For Single Table Inheritance
|
9
|
+
t.text :message
|
10
|
+
t.references :user, index: true, foreign_key: true
|
11
|
+
|
12
|
+
t.integer :parent_id, null: true, index: true
|
13
|
+
t.integer :lft, null: false, index: true
|
14
|
+
t.integer :rgt, null: false, index: true
|
15
|
+
|
16
|
+
# optional fields
|
17
|
+
t.integer :depth, null: false, default: 0
|
18
|
+
t.integer :children_count, null: false, default: 0
|
19
|
+
|
20
|
+
t.timestamps null: false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'cancan/matchers'
|
3
|
+
|
4
|
+
describe CurationConcerns::Ability, type: :model do
|
5
|
+
describe "a registered user" do
|
6
|
+
let(:user) { create(:user) }
|
7
|
+
subject { Ability.new(user) }
|
8
|
+
it { is_expected.to be_able_to(:read, build(:operation, user: user)) }
|
9
|
+
it { is_expected.not_to be_able_to(:read, build(:operation)) }
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CurationConcerns::OperationsController do
|
4
|
+
routes { CurationConcerns::Engine.routes }
|
5
|
+
let(:parent) { create(:operation, :pending, user: user) }
|
6
|
+
let!(:child1) { create(:operation, :failing, parent: parent, user: user) }
|
7
|
+
let!(:child2) { create(:operation, :pending, parent: parent, user: user) }
|
8
|
+
let(:user) { create(:user) }
|
9
|
+
before do
|
10
|
+
sign_in user
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#index" do
|
14
|
+
it "is successful" do
|
15
|
+
get :index, user_id: user
|
16
|
+
expect(response).to be_successful
|
17
|
+
expect(assigns[:operations]).to eq [parent]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#show" do
|
22
|
+
it "is successful" do
|
23
|
+
get :show, user_id: user, id: parent
|
24
|
+
expect(response).to be_successful
|
25
|
+
expect(assigns[:operation]).to eq parent
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
factory :operation, class: CurationConcerns::Operation do
|
3
|
+
operation_type "Test batch operation"
|
4
|
+
|
5
|
+
trait :failing do
|
6
|
+
status CurationConcerns::Operation::FAILURE
|
7
|
+
end
|
8
|
+
|
9
|
+
trait :pending do
|
10
|
+
status CurationConcerns::Operation::PENDING
|
11
|
+
end
|
12
|
+
|
13
|
+
trait :successful do
|
14
|
+
status CurationConcerns::Operation::SUCCESS
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -20,6 +20,7 @@ describe ImportUrlJob do
|
|
20
20
|
allow(http_res).to receive(:read_body).and_yield(File.open(File.expand_path(file_path, __FILE__)).read)
|
21
21
|
end
|
22
22
|
end
|
23
|
+
let(:log) { create(:operation) }
|
23
24
|
|
24
25
|
context 'after running the job' do
|
25
26
|
let(:actor) { double }
|
@@ -33,7 +34,8 @@ describe ImportUrlJob do
|
|
33
34
|
it 'creates the content' do
|
34
35
|
expect_any_instance_of(Net::HTTP).to receive(:request_get).with(file_hash).and_yield(mock_response)
|
35
36
|
expect(actor).to receive(:create_content).and_return(true)
|
36
|
-
described_class.perform_now(file_set)
|
37
|
+
described_class.perform_now(file_set, log)
|
38
|
+
expect(log.status).to eq 'success'
|
37
39
|
end
|
38
40
|
end
|
39
41
|
|
@@ -57,7 +59,7 @@ describe ImportUrlJob do
|
|
57
59
|
file_set.update(title: ['File One'])
|
58
60
|
|
59
61
|
# run the import job
|
60
|
-
described_class.perform_now(file_set)
|
62
|
+
described_class.perform_now(file_set, log)
|
61
63
|
|
62
64
|
# import job should not override the title set another process
|
63
65
|
file = FileSet.find(file_set_id)
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CurationConcerns::Operation do
|
4
|
+
describe "rollup_status" do
|
5
|
+
let(:parent) { create(:operation, :pending) }
|
6
|
+
describe "with a pending process" do
|
7
|
+
let!(:child1) { create(:operation, :failing, parent: parent) }
|
8
|
+
let!(:child2) { create(:operation, :pending, parent: parent) }
|
9
|
+
it "sets status to pending" do
|
10
|
+
parent.rollup_status
|
11
|
+
expect(parent.status).to eq CurationConcerns::Operation::PENDING
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "with a failure" do
|
16
|
+
let!(:child1) { create(:operation, :failing, parent: parent) }
|
17
|
+
let!(:child2) { create(:operation, :successful, parent: parent) }
|
18
|
+
it "sets status to failure" do
|
19
|
+
parent.rollup_status
|
20
|
+
expect(parent.status).to eq CurationConcerns::Operation::FAILURE
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "with a successes" do
|
25
|
+
let!(:child1) { create(:operation, :successful, parent: parent) }
|
26
|
+
let!(:child2) { create(:operation, :successful, parent: parent) }
|
27
|
+
it "sets status to success" do
|
28
|
+
parent.rollup_status
|
29
|
+
expect(parent.status).to eq CurationConcerns::Operation::SUCCESS
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "performing!" do
|
35
|
+
it "changes the status to performing" do
|
36
|
+
subject.performing!
|
37
|
+
expect(subject.status).to eq CurationConcerns::Operation::PERFORMING
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: curation_concerns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Zumwalt
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-04-
|
13
|
+
date: 2016-04-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hydra-head
|
@@ -326,6 +326,20 @@ dependencies:
|
|
326
326
|
- - "~>"
|
327
327
|
- !ruby/object:Gem::Version
|
328
328
|
version: '0'
|
329
|
+
- !ruby/object:Gem::Dependency
|
330
|
+
name: awesome_nested_set
|
331
|
+
requirement: !ruby/object:Gem::Requirement
|
332
|
+
requirements:
|
333
|
+
- - "~>"
|
334
|
+
- !ruby/object:Gem::Version
|
335
|
+
version: '3.0'
|
336
|
+
type: :runtime
|
337
|
+
prerelease: false
|
338
|
+
version_requirements: !ruby/object:Gem::Requirement
|
339
|
+
requirements:
|
340
|
+
- - "~>"
|
341
|
+
- !ruby/object:Gem::Version
|
342
|
+
version: '3.0'
|
329
343
|
- !ruby/object:Gem::Dependency
|
330
344
|
name: solr_wrapper
|
331
345
|
requirement: !ruby/object:Gem::Requirement
|
@@ -690,6 +704,7 @@ files:
|
|
690
704
|
- app/controllers/curation_concerns/application_controller.rb
|
691
705
|
- app/controllers/curation_concerns/classify_concerns_controller.rb
|
692
706
|
- app/controllers/curation_concerns/file_sets_controller.rb
|
707
|
+
- app/controllers/curation_concerns/operations_controller.rb
|
693
708
|
- app/controllers/curation_concerns/permissions_controller.rb
|
694
709
|
- app/controllers/curation_concerns/single_use_links_controller.rb
|
695
710
|
- app/controllers/curation_concerns/single_use_links_viewer_controller.rb
|
@@ -756,6 +771,7 @@ files:
|
|
756
771
|
- app/models/concerns/curation_concerns/with_file_sets.rb
|
757
772
|
- app/models/concerns/curation_concerns/work_behavior.rb
|
758
773
|
- app/models/curation_concerns/classify_concern.rb
|
774
|
+
- app/models/curation_concerns/operation.rb
|
759
775
|
- app/models/curation_concerns/quick_classification_query.rb
|
760
776
|
- app/models/single_use_link.rb
|
761
777
|
- app/models/version_committer.rb
|
@@ -922,6 +938,8 @@ files:
|
|
922
938
|
- app/views/curation_concerns/file_sets/upload/_form.html.erb
|
923
939
|
- app/views/curation_concerns/file_sets/upload/_form_fields.html.erb
|
924
940
|
- app/views/curation_concerns/file_sets/upload/_script_templates.html.erb
|
941
|
+
- app/views/curation_concerns/operations/index.html.erb
|
942
|
+
- app/views/curation_concerns/operations/show.html.erb
|
925
943
|
- app/views/curation_concerns/permissions/confirm.html.erb
|
926
944
|
- app/views/curation_concerns/single_use_links_viewer/show.html.erb
|
927
945
|
- app/views/embargoes/_embargo_history.html.erb
|
@@ -998,6 +1016,7 @@ files:
|
|
998
1016
|
- lib/generators/curation_concerns/templates/curation_concerns.scss
|
999
1017
|
- lib/generators/curation_concerns/templates/curation_concerns_helper.rb
|
1000
1018
|
- lib/generators/curation_concerns/templates/migrations/create_checksum_audit_logs.rb
|
1019
|
+
- lib/generators/curation_concerns/templates/migrations/create_operations.rb
|
1001
1020
|
- lib/generators/curation_concerns/templates/migrations/create_single_use_links.rb
|
1002
1021
|
- lib/generators/curation_concerns/templates/migrations/create_version_committers.rb
|
1003
1022
|
- lib/generators/curation_concerns/work/USAGE
|
@@ -1036,6 +1055,7 @@ files:
|
|
1036
1055
|
- spec/abilities/embargo_and_lease_ability_spec.rb
|
1037
1056
|
- spec/abilities/file_set_abilities_spec.rb
|
1038
1057
|
- spec/abilities/generic_work_abilities_spec.rb
|
1058
|
+
- spec/abilities/operation_ability_spec.rb
|
1039
1059
|
- spec/actors/curation_concerns/add_to_collections_actor_spec.rb
|
1040
1060
|
- spec/actors/curation_concerns/embargo_actor_spec.rb
|
1041
1061
|
- spec/actors/curation_concerns/file_actor_spec.rb
|
@@ -1051,6 +1071,7 @@ files:
|
|
1051
1071
|
- spec/controllers/curation_concerns/file_sets_controller_spec.rb
|
1052
1072
|
- spec/controllers/curation_concerns/generic_works_controller_json_spec.rb
|
1053
1073
|
- spec/controllers/curation_concerns/generic_works_controller_spec.rb
|
1074
|
+
- spec/controllers/curation_concerns/operations_controller_spec.rb
|
1054
1075
|
- spec/controllers/curation_concerns/permissions_controller_spec.rb
|
1055
1076
|
- spec/controllers/curation_concerns/single_use_links_controller_spec.rb
|
1056
1077
|
- spec/controllers/curation_concerns/single_use_links_viewer_controller_spec.rb
|
@@ -1063,6 +1084,7 @@ files:
|
|
1063
1084
|
- spec/factories/create_curation_concern.rb
|
1064
1085
|
- spec/factories/file_sets.rb
|
1065
1086
|
- spec/factories/generic_works.rb
|
1087
|
+
- spec/factories/operations.rb
|
1066
1088
|
- spec/factories/users.rb
|
1067
1089
|
- spec/features/add_file_spec.rb
|
1068
1090
|
- spec/features/catalog_search_spec.rb
|
@@ -1123,6 +1145,7 @@ files:
|
|
1123
1145
|
- spec/models/collection_spec.rb
|
1124
1146
|
- spec/models/curation_concerns/collection_behavior_spec.rb
|
1125
1147
|
- spec/models/curation_concerns/file_set/derivatives_spec.rb
|
1148
|
+
- spec/models/curation_concerns/operation_spec.rb
|
1126
1149
|
- spec/models/curation_concerns/work_behavior_spec.rb
|
1127
1150
|
- spec/models/file_set_spec.rb
|
1128
1151
|
- spec/models/generic_work_spec.rb
|
@@ -1219,9 +1242,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1219
1242
|
version: '0'
|
1220
1243
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1221
1244
|
requirements:
|
1222
|
-
- - "
|
1245
|
+
- - ">"
|
1223
1246
|
- !ruby/object:Gem::Version
|
1224
|
-
version:
|
1247
|
+
version: 1.3.1
|
1225
1248
|
requirements: []
|
1226
1249
|
rubyforge_project:
|
1227
1250
|
rubygems_version: 2.5.1
|
@@ -1234,6 +1257,7 @@ test_files:
|
|
1234
1257
|
- spec/abilities/embargo_and_lease_ability_spec.rb
|
1235
1258
|
- spec/abilities/file_set_abilities_spec.rb
|
1236
1259
|
- spec/abilities/generic_work_abilities_spec.rb
|
1260
|
+
- spec/abilities/operation_ability_spec.rb
|
1237
1261
|
- spec/actors/curation_concerns/add_to_collections_actor_spec.rb
|
1238
1262
|
- spec/actors/curation_concerns/embargo_actor_spec.rb
|
1239
1263
|
- spec/actors/curation_concerns/file_actor_spec.rb
|
@@ -1249,6 +1273,7 @@ test_files:
|
|
1249
1273
|
- spec/controllers/curation_concerns/file_sets_controller_spec.rb
|
1250
1274
|
- spec/controllers/curation_concerns/generic_works_controller_json_spec.rb
|
1251
1275
|
- spec/controllers/curation_concerns/generic_works_controller_spec.rb
|
1276
|
+
- spec/controllers/curation_concerns/operations_controller_spec.rb
|
1252
1277
|
- spec/controllers/curation_concerns/permissions_controller_spec.rb
|
1253
1278
|
- spec/controllers/curation_concerns/single_use_links_controller_spec.rb
|
1254
1279
|
- spec/controllers/curation_concerns/single_use_links_viewer_controller_spec.rb
|
@@ -1261,6 +1286,7 @@ test_files:
|
|
1261
1286
|
- spec/factories/create_curation_concern.rb
|
1262
1287
|
- spec/factories/file_sets.rb
|
1263
1288
|
- spec/factories/generic_works.rb
|
1289
|
+
- spec/factories/operations.rb
|
1264
1290
|
- spec/factories/users.rb
|
1265
1291
|
- spec/features/add_file_spec.rb
|
1266
1292
|
- spec/features/catalog_search_spec.rb
|
@@ -1321,6 +1347,7 @@ test_files:
|
|
1321
1347
|
- spec/models/collection_spec.rb
|
1322
1348
|
- spec/models/curation_concerns/collection_behavior_spec.rb
|
1323
1349
|
- spec/models/curation_concerns/file_set/derivatives_spec.rb
|
1350
|
+
- spec/models/curation_concerns/operation_spec.rb
|
1324
1351
|
- spec/models/curation_concerns/work_behavior_spec.rb
|
1325
1352
|
- spec/models/file_set_spec.rb
|
1326
1353
|
- spec/models/generic_work_spec.rb
|