assembly-utils 1.4.3 → 1.4.4
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 +8 -8
- data/.rspec +2 -0
- data/Gemfile +1 -0
- data/README.md +72 -0
- data/assembly-utils.gemspec +2 -2
- data/config/connect_to_dor.rb +2 -2
- data/lib/assembly-utils/utils.rb +41 -2
- data/lib/assembly-utils/version.rb +1 -1
- data/spec/utils_spec.rb +45 -45
- metadata +6 -5
- data/README.rdoc +0 -57
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTJlYzhjNWUyMmVmMWZhZWZiODQxMGQ0ZjMyNWZmZTU5YWRmMDU1NQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDRiY2E2N2I4OWYzOTgyNzVlOTY0OTVkODQ4M2U5ZGJiNGQxOTlkMA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OWYzOGE4Njk2NDZlOGY1MmQwZmI0Yjk2YmJmZjhlYWViYzdhNGE1OTgwZjlk
|
10
|
+
N2I3NDI0Mjc2MTk2ZTlmMmZhNWI4OTliMWZiN2E4ZTU2YzFiNzY5OTkxMDE0
|
11
|
+
Zjg4OTVlYjQxNGRkYjBkZmNmNzNmMjQxMTA1NTNhNjNhZTEyMmM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
Y2U1Nzg2MWVkNzA0NDUzYjIyYjVkYjliNmIwMTliZDFmYTFhMDU1NGZlMmUw
|
14
|
+
ZDVlYjRmYTA4ZGQxMmQ3YzQxOTk2MjFmMzRjZjZhMTQzNzkxOTdmNjFkM2Qx
|
15
|
+
YTYwZmRjMTdjNjI4NTA3YmFiY2UyMTcwZjBmY2I3ODY5ZjdjMmU=
|
data/.rspec
ADDED
data/Gemfile
CHANGED
data/README.md
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
# Assembly Utils Gem
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
Ruby gem of methods useful for assembly and accessioning. Contains classes to
|
5
|
+
manipulate DOR objects for assembly and accessioning.
|
6
|
+
|
7
|
+
## Releases
|
8
|
+
|
9
|
+
* 1.0.0 initial release
|
10
|
+
* 1.0.1 bug fixes
|
11
|
+
* 1.0.2 more bug fixes to use the new druid-tools namespace
|
12
|
+
* 1.0.3 add a method to compute staging paths based on changes to Druid gem path computations
|
13
|
+
* 1.0.4 add some tests and document methods
|
14
|
+
* 1.0.5 add more spec tests and documentation; update `get_staging_path` method to fix a bug
|
15
|
+
* 1.0.6 add the ability to delete workflows in the cleanup method, add a new
|
16
|
+
method to fetch and delete all workflows
|
17
|
+
* 1.0.7 add a new method to determine if a specific workflow is defined in the APO
|
18
|
+
* 1.0.8 add methods to batch import and export objects to/from FOXML
|
19
|
+
* 1.0.9 add spec output test data directory to git
|
20
|
+
* 1.0.10 lowered required version of dor-services from 3.9.0 to 3.8.0
|
21
|
+
* 1.0.11 use `Dor::DigitalStacksService` to calculate stacks directory to cleanup
|
22
|
+
* 1.0.12 bugfix on call to `Dor::DigitalStacksService`
|
23
|
+
* 1.0.13 update to latest lyberteam devel gems
|
24
|
+
* 1.0.14 add new method to re-index item in solr
|
25
|
+
* 1.1.0 small updates to some methods to depracate `apo_workflow` checking method
|
26
|
+
* 1.1.1 add dor-workflow-service gem and convenience method to auto reset
|
27
|
+
all objects in a specific state back to waiting
|
28
|
+
* 1.1.2 allow `reset_workflow_state` to accept a state parameter
|
29
|
+
* 1.1.3 add a reindex method
|
30
|
+
* 1.1.4 fixed delete object method to remove from solr too; fix cleanup
|
31
|
+
object method to remove both old and new style druid trees
|
32
|
+
* 1.1.5 add new claim druid method
|
33
|
+
* 1.1.6 add new step to remove workflows during `cleanup_object`
|
34
|
+
* 1.1.7 change ordering of cleanup steps so if deleting workflow fails, the
|
35
|
+
earlier steps will still run
|
36
|
+
* 1.1.8 fix bug in cleanup method during symlink deletion
|
37
|
+
* 1.1.9 add remediate-object to the workflow status report; remove some
|
38
|
+
methods around robot usage that aren't needed anymore
|
39
|
+
* 1.2.0 add a new method to return an array of druids from a CSV file which contains a "druid" column
|
40
|
+
* 1.2.1 add a new method to insert a specific workflow into an object
|
41
|
+
* 1.2.2 add a new method to bulk republish a list of druids, and a new
|
42
|
+
parameter to datastreams bulk update to publish after updating
|
43
|
+
* 1.2.3 add a new method to check the status of an object (`is_ingested?`)
|
44
|
+
* 1.2.4 add some additional methods to check the state of an object
|
45
|
+
* 1.2.5-1.2.7 update gemfile to newer version of dor-services gem and other related/dependent gems
|
46
|
+
* 1.2.8 add a new constant for technical metadata filename
|
47
|
+
* 1.4.1-2 update gems and fix typos
|
48
|
+
|
49
|
+
|
50
|
+
## Running tests
|
51
|
+
|
52
|
+
You will need to be on the Stanford network or VPNed in to run the
|
53
|
+
tests, since it connects to DOR. To run tests:
|
54
|
+
|
55
|
+
```bash
|
56
|
+
bundle exec rspec spec
|
57
|
+
```
|
58
|
+
|
59
|
+
## Deploy new gem
|
60
|
+
|
61
|
+
```bash
|
62
|
+
gem build assembly-utils.gemspec
|
63
|
+
gem push assembly-utils-1.4.1.gem # update version as needed
|
64
|
+
```
|
65
|
+
|
66
|
+
## Connecting to DOR
|
67
|
+
|
68
|
+
Some of the methods require a connection to DOR, which is not provided as part
|
69
|
+
of this gem. In order to connect to DOR, you will need some configuration
|
70
|
+
information in your project, along with the certificates for the appropriate
|
71
|
+
environment. Connections for development DOR are provided as part of the gem
|
72
|
+
in the 'config' directory and are used in the spec test suite.
|
data/assembly-utils.gemspec
CHANGED
@@ -27,10 +27,10 @@ Gem::Specification.new do |s|
|
|
27
27
|
|
28
28
|
s.add_dependency 'activesupport'
|
29
29
|
s.add_dependency 'activeresource'
|
30
|
-
s.add_dependency 'addressable', '2.3.5'
|
30
|
+
s.add_dependency 'addressable', '2.3.5' # avoids ERROR: lib/addressable/uri.rb:1659:in `normalized_fragment': can't modify frozen Addressable::URI (RuntimeError)
|
31
31
|
|
32
32
|
s.add_development_dependency "rake"
|
33
|
-
s.add_development_dependency "rspec",
|
33
|
+
s.add_development_dependency "rspec", '~> 3.1'
|
34
34
|
s.add_development_dependency "yard"
|
35
35
|
|
36
36
|
end
|
data/config/connect_to_dor.rb
CHANGED
@@ -2,5 +2,5 @@ environment = ENV['ENVIRONMENT'] ||= 'development'
|
|
2
2
|
GEM_ROOT = File.expand_path(File.dirname(__FILE__) + '/..')
|
3
3
|
|
4
4
|
# Environment.
|
5
|
-
|
6
|
-
require
|
5
|
+
env_file = GEM_ROOT + "/config/environments/#{environment}.rb"
|
6
|
+
require env_file if File.file?(env_file)
|
data/lib/assembly-utils/utils.rb
CHANGED
@@ -510,7 +510,7 @@ module Assembly
|
|
510
510
|
end
|
511
511
|
end
|
512
512
|
|
513
|
-
# Check if the object is
|
513
|
+
# Check if the object is fully accessioned and ingested.
|
514
514
|
# This method only works when this gem is used in a project that is configured to connect to the workflow service.
|
515
515
|
#
|
516
516
|
# @param [string] pid the druid to operate on
|
@@ -523,6 +523,19 @@ module Assembly
|
|
523
523
|
WFS.get_lifecycle(REPO, pid, 'accessioned') ? true : false
|
524
524
|
end
|
525
525
|
|
526
|
+
# Check if the object is currently in accessioning
|
527
|
+
# This method only works when this gem is used in a project that is configured to connect to the workflow service.
|
528
|
+
#
|
529
|
+
# @param [string] pid the druid to operate on
|
530
|
+
#
|
531
|
+
# @return [boolean] if object is currently in accessioning
|
532
|
+
# Example:
|
533
|
+
# Assembly::Utils.in_accessioning?('druid:oo000oo0001')
|
534
|
+
# > false
|
535
|
+
def self.in_accessioning?(pid)
|
536
|
+
WFS.get_active_lifecycle(REPO, pid, 'submitted') ? true : false
|
537
|
+
end
|
538
|
+
|
526
539
|
# Check if the object is on ingest hold
|
527
540
|
# This method only works when this gem is used in a project that is configured to connect to the workflow service.
|
528
541
|
#
|
@@ -548,7 +561,33 @@ module Assembly
|
|
548
561
|
def self.is_submitted?(pid)
|
549
562
|
WFS.get_lifecycle(REPO, pid, 'submitted') == nil
|
550
563
|
end
|
551
|
-
|
564
|
+
|
565
|
+
# Check if the updates are allowed on the object
|
566
|
+
# This method only works when this gem is used in a project that is configured to connect to the workflow service.
|
567
|
+
#
|
568
|
+
# @param [string] pid the druid to operate on
|
569
|
+
#
|
570
|
+
# @return [boolean] if object can be versioned and updated
|
571
|
+
# Example:
|
572
|
+
# Assembly::Utils.updates_allowed?('druid:oo000oo0001')
|
573
|
+
# > false
|
574
|
+
def self.updates_allowed?(pid)
|
575
|
+
!self.in_accessioning?(pid) && self.is_ingested?(pid)
|
576
|
+
end
|
577
|
+
|
578
|
+
# Check if versioning is required for the object
|
579
|
+
# This method only works when this gem is used in a project that is configured to connect to the workflow service.
|
580
|
+
#
|
581
|
+
# @param [string] pid the druid to operate on
|
582
|
+
#
|
583
|
+
# @return [boolean] if object requires versioning
|
584
|
+
# Example:
|
585
|
+
# Assembly::Utils.versioning_required?('druid:oo000oo0001')
|
586
|
+
# > false
|
587
|
+
def self.versioning_required?(pid)
|
588
|
+
!((!self.is_ingested?(pid) && self.ingest_hold?(pid)) || (!self.is_ingested?(pid) && !self.is_submitted?(pid)))
|
589
|
+
end
|
590
|
+
|
552
591
|
# Reset the workflow states for a list of druids given a list of workflow names and steps.
|
553
592
|
# Provide a list of druids in an array, and a hash containing workflow names (e.g. 'assemblyWF' or 'accessionWF') as the keys, and arrays of steps
|
554
593
|
# as the corresponding values (e.g. ['checksum-compute','jp2-create']) and they will all be reset to "waiting".
|
data/spec/utils_spec.rb
CHANGED
@@ -1,53 +1,53 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Assembly::Utils do
|
4
|
-
|
4
|
+
|
5
5
|
it "should compute the correct staging path given a druid" do
|
6
6
|
path=Assembly::Utils.get_staging_path('aa000aa0001')
|
7
|
-
path.
|
7
|
+
expect(path).to eq('aa/000/aa/0001')
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should compute the correct staging path given a druid and a pre-pend path" do
|
11
11
|
path=Assembly::Utils.get_staging_path('aa000aa0001','/tmp')
|
12
|
-
path.
|
12
|
+
expect(path).to eq('/tmp/aa/000/aa/0001')
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should symbolize hash keys correctly" do
|
16
|
-
result=Assembly::Utils.symbolize_keys({'foo'=>'bar','ppuff'=>'doofus'})
|
17
|
-
result.
|
16
|
+
result=Assembly::Utils.symbolize_keys({'foo'=>'bar','ppuff'=>'doofus'})
|
17
|
+
expect(result).to eq({:foo=>'bar',:ppuff=>'doofus'})
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should symbolize hash values correctly" do
|
21
21
|
result=Assembly::Utils.values_to_symbols!({'foo'=>'bar','ppuff'=>'doofus'})
|
22
|
-
result.
|
22
|
+
expect(result).to eq({'foo'=>:bar,'ppuff'=>:doofus})
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
it "should return a blank string if a file is not found to read in" do
|
26
26
|
bogus_filename='crap/dude'
|
27
|
-
Assembly::Utils.read_file(bogus_filename).
|
27
|
+
expect(Assembly::Utils.read_file(bogus_filename)).to eq('')
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should return a string with the file content if the file is found" do
|
31
31
|
progress_filename='spec/test_data/test_log.yaml'
|
32
|
-
Assembly::Utils.read_file(progress_filename).
|
32
|
+
expect(Assembly::Utils.read_file(progress_filename)).to match(/:pid: druid:bg598tg6338/)
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
it "should read in a list of completed druids from a progress log file" do
|
36
36
|
progress_filename='spec/test_data/test_log.yaml'
|
37
|
-
druids=Assembly::Utils.get_druids_from_log(progress_filename)
|
38
|
-
druids.
|
37
|
+
druids=Assembly::Utils.get_druids_from_log(progress_filename)
|
38
|
+
expect(druids).to eq(['druid:bc006dj2846','druid:bg598tg6338'])
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should read in a list of failed druids from a progress log file" do
|
42
42
|
progress_filename='spec/test_data/test_log.yaml'
|
43
|
-
druids=Assembly::Utils.get_druids_from_log(progress_filename,false)
|
44
|
-
druids.
|
43
|
+
druids=Assembly::Utils.get_druids_from_log(progress_filename,false)
|
44
|
+
expect(druids).to eq(['druid:bh634sp8073'])
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
it "should read in a YAML configuration file and turn it into a hash" do
|
48
48
|
config_filename='spec/test_data/local_dev_revs.yaml'
|
49
|
-
config=Assembly::Utils.load_config(config_filename)
|
50
|
-
config['progress_log_file'].
|
49
|
+
config=Assembly::Utils.load_config(config_filename)
|
50
|
+
expect(config['progress_log_file']).to eq('tmp/progress_revs.yaml')
|
51
51
|
end
|
52
52
|
|
53
53
|
###################################################################################
|
@@ -63,56 +63,56 @@ describe Assembly::Utils do
|
|
63
63
|
remove_files(TEST_OUTPUT_DIR)
|
64
64
|
delete_test_object
|
65
65
|
end
|
66
|
-
|
67
|
-
it "should find druids by source ID" do
|
68
|
-
Dor::SearchService.
|
66
|
+
|
67
|
+
it "should find druids by source ID", :type =>'integration' do
|
68
|
+
expect(Dor::SearchService).to receive(:query_by_id).with('testing-assembly-utils-gem').and_return TEST_PID
|
69
69
|
druids=Assembly::Utils.get_druids_by_sourceid(['testing-assembly-utils-gem'])
|
70
|
-
druids.
|
70
|
+
expect(druids).to eq([TEST_PID])
|
71
71
|
end
|
72
|
-
|
73
|
-
it "should replace the datastream of an object" do
|
72
|
+
|
73
|
+
it "should replace the datastream of an object", :type =>'integration' do
|
74
74
|
new_content="<xml><tag>stuff</tag></xml>"
|
75
75
|
datastream="test"
|
76
76
|
druids=[TEST_PID]
|
77
77
|
Assembly::Utils.replace_datastreams(druids,datastream,new_content)
|
78
78
|
obj = Dor::Item.find(TEST_PID)
|
79
|
-
obj.datastreams[datastream].content.
|
79
|
+
expect(obj.datastreams[datastream].content).to match(/<tag>stuff<\/tag>/)
|
80
80
|
end
|
81
81
|
|
82
|
-
it "should search and replace the datastream of an object" do
|
82
|
+
it "should search and replace the datastream of an object", :type =>'integration' do
|
83
83
|
find_content="stuff"
|
84
84
|
replace_content="new"
|
85
85
|
datastream="test"
|
86
86
|
druids=[TEST_PID]
|
87
87
|
Assembly::Utils.update_datastreams(druids,datastream,find_content,replace_content)
|
88
88
|
obj = Dor::Item.find(TEST_PID)
|
89
|
-
obj.datastreams[datastream].content.
|
89
|
+
expect(obj.datastreams[datastream].content).to match(/<tag>new<\/tag>/)
|
90
90
|
end
|
91
|
-
|
92
|
-
it "should export a PID to FOXML" do
|
93
|
-
File.exists?(File.join(TEST_OUTPUT_DIR,"#{TEST_PID_FILENAME}.foxml.xml")).
|
91
|
+
|
92
|
+
it "should export a PID to FOXML", :type =>'integration' do
|
93
|
+
expect(File.exists?(File.join(TEST_OUTPUT_DIR,"#{TEST_PID_FILENAME}.foxml.xml"))).to be false
|
94
94
|
Dir.mkdir(TEST_OUTPUT_DIR) unless Dir.exists?(TEST_OUTPUT_DIR)
|
95
95
|
Assembly::Utils.export_objects(TEST_PID,TEST_OUTPUT_DIR)
|
96
|
-
File.exists?(File.join(TEST_OUTPUT_DIR,"#{TEST_PID_FILENAME}.foxml.xml")).
|
96
|
+
expect(File.exists?(File.join(TEST_OUTPUT_DIR,"#{TEST_PID_FILENAME}.foxml.xml"))).to be true
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should return nil when the workflow state is not found in an object", :type =>'integration' do
|
100
|
+
expect(Assembly::Utils.get_workflow_status(TEST_PID,'assemblyWF','jp2-create')).to be_nil
|
97
101
|
end
|
98
|
-
|
99
|
-
it "should
|
100
|
-
Assembly::Utils.
|
102
|
+
|
103
|
+
it "should indicate if the specified workflow is defined in an APO object", :type =>'integration' do
|
104
|
+
expect(Assembly::Utils.apo_workflow_defined?(TEST_APO_OBJECT,'accessionWF')).to be true
|
105
|
+
expect(Assembly::Utils.apo_workflow_defined?(TEST_APO_OBJECT,'accessioning')).to be true
|
101
106
|
end
|
102
|
-
|
103
|
-
it "should indicate if the specified workflow is defined in an APO object" do
|
104
|
-
Assembly::Utils.apo_workflow_defined?(TEST_APO_OBJECT,'
|
105
|
-
Assembly::Utils.apo_workflow_defined?(TEST_APO_OBJECT,'accessioning').should be true
|
107
|
+
|
108
|
+
it "should indicate if the specified workflow is not defined in an APO object", :type =>'integration' do
|
109
|
+
expect(Assembly::Utils.apo_workflow_defined?(TEST_APO_OBJECT,'crapsticks')).to be false
|
106
110
|
end
|
107
111
|
|
108
|
-
it "should indicate if the specified
|
109
|
-
Assembly::Utils.apo_workflow_defined?(
|
112
|
+
it "should indicate if the specified object is not an APO", :type =>'integration' do
|
113
|
+
expect{Assembly::Utils.apo_workflow_defined?(TEST_PID,'crapsticks')}.to raise_error
|
110
114
|
end
|
111
115
|
|
112
|
-
it "should indicate if the specified object is not an APO" do
|
113
|
-
lambda{Assembly::Utils.apo_workflow_defined?(TEST_PID,'crapsticks')}.should raise_error
|
114
|
-
end
|
115
|
-
|
116
116
|
end
|
117
|
-
|
118
|
-
end
|
117
|
+
|
118
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: assembly-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Mangiafico
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-08-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -157,14 +157,14 @@ dependencies:
|
|
157
157
|
requirements:
|
158
158
|
- - ~>
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
160
|
+
version: '3.1'
|
161
161
|
type: :development
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
165
|
- - ~>
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
167
|
+
version: '3.1'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: yard
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
@@ -189,10 +189,11 @@ extensions: []
|
|
189
189
|
extra_rdoc_files: []
|
190
190
|
files:
|
191
191
|
- .gitignore
|
192
|
+
- .rspec
|
192
193
|
- .rvmrc.example
|
193
194
|
- Gemfile
|
194
195
|
- LICENSE
|
195
|
-
- README.
|
196
|
+
- README.md
|
196
197
|
- Rakefile
|
197
198
|
- assembly-utils.gemspec
|
198
199
|
- bin/console
|
data/README.rdoc
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
= Assembly Utils Gem
|
2
|
-
|
3
|
-
==Overview
|
4
|
-
Ruby gem of methods useful for assembly and accessioning. Contains classes to manipulate DOR objects for assembly and accessioning.
|
5
|
-
|
6
|
-
==Releases
|
7
|
-
|
8
|
-
- 1.0.0 initial release
|
9
|
-
- 1.0.1 bug fixes
|
10
|
-
- 1.0.2 more bug fixes to use the new druid-tools namespace
|
11
|
-
- 1.0.3 add a method to compute staging paths based on changes to Druid gem path computations
|
12
|
-
- 1.0.4 add some tests and document methods
|
13
|
-
- 1.0.5 add more spec tests and documentation; update get_staging_path method to fix a bug
|
14
|
-
- 1.0.6 add the ability to delete workflows in the cleanup method, add a new method to fetch and delete all workflows
|
15
|
-
- 1.0.7 add a new method to determine if a specific workflow is defined in the APO
|
16
|
-
- 1.0.8 add methods to batch import and export objects to/from FOXML
|
17
|
-
- 1.0.9 add spec output test data directory to git
|
18
|
-
- 1.0.10 lowered required version of dor-services from 3.9.0 to 3.8.0
|
19
|
-
- 1.0.11 use Dor::DigitalStacksService to calculate stacks directory to cleanup
|
20
|
-
- 1.0.12 bugfix on call to Dor::DigitalStacksService
|
21
|
-
- 1.0.13 update to latest lyberteam devel gems
|
22
|
-
- 1.0.14 add new method to re-index item in solr
|
23
|
-
- 1.1.0 small updates to some methods to depracate apo_workflow checking method
|
24
|
-
- 1.1.1 add dor-workflow-service gem and convenience method to auto reset all objects in a specific state back to waiting
|
25
|
-
- 1.1.2 allow reset_workflow_state to accept a state parameter
|
26
|
-
- 1.1.3 add a reindex method
|
27
|
-
- 1.1.4 fixed delete object method to remove from solr too; fix cleanup object method to remove both old and new style druid trees
|
28
|
-
- 1.1.5 add new claim druid method
|
29
|
-
- 1.1.6 add new step to remove workflows during cleanup_object
|
30
|
-
- 1.1.7 change ordering of cleanup steps so if deleting workflow fails, the earlier steps will still run
|
31
|
-
- 1.1.8 fix bug in cleanup method during symlink deletion
|
32
|
-
- 1.1.9 add remediate-object to the workflow status report; remove some methods around robot usage that aren't needed anymore
|
33
|
-
- 1.2.0 add a new method to return an array of druids from a CSV file which contains a "druid" column
|
34
|
-
- 1.2.1 add a new method to insert a specific workflow into an object
|
35
|
-
- 1.2.2 add a new method to bulk republish a list of druids, and a new parameter to datastreams bulk update to publish after updating
|
36
|
-
- 1.2.3 add a new method to check the status of an object (is_ingested?)
|
37
|
-
- 1.2.4 add some additional methods to check the state of an object
|
38
|
-
- 1.2.5-1.2.7 update gemfile to newer version of dor-services gem and other related/dependent gems
|
39
|
-
- 1.2.8 add a new constant for technical metadata filename
|
40
|
-
- 1.4.1-2 update gems and fix typos
|
41
|
-
|
42
|
-
==Running tests
|
43
|
-
|
44
|
-
You will need to be on the Stanford network (not wifi) or VPNed in to run the tests, since it connects to DOR. To run the tests
|
45
|
-
|
46
|
-
bundle exec rspec spec
|
47
|
-
|
48
|
-
==Deploy new gem
|
49
|
-
|
50
|
-
gem build assembly-utils.gemspec
|
51
|
-
gem push assembly-utils-1.4.1.gem # update version as needed
|
52
|
-
|
53
|
-
==Connecting to DOR
|
54
|
-
|
55
|
-
Some of the methods require a connection to DOR, which is not provided as part of this gem. In order to connect to DOR, you will need
|
56
|
-
some configuration information in your project, along with the certificates for the appropriate environment. Connections for development DOR
|
57
|
-
are provided as part of the gem in the 'config' directory and are used in the spec test suite.
|