moab-versioning 1.5.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/moab.rb +0 -1
- data/lib/moab/file_group.rb +1 -1
- data/lib/moab/file_group_difference.rb +1 -1
- data/lib/moab/file_group_difference_subset.rb +1 -1
- data/lib/moab/file_instance.rb +1 -1
- data/lib/moab/file_instance_difference.rb +1 -1
- data/lib/moab/file_inventory.rb +1 -1
- data/lib/moab/file_inventory_difference.rb +1 -1
- data/lib/moab/file_manifestation.rb +1 -1
- data/lib/moab/file_signature.rb +1 -1
- data/lib/moab/signature_catalog.rb +1 -1
- data/lib/moab/signature_catalog_entry.rb +1 -1
- data/lib/{moab_stanford.rb → moab/stanford.rb} +0 -1
- data/lib/moab/version_metadata.rb +1 -1
- data/lib/moab/version_metadata_entry.rb +1 -1
- data/lib/moab/version_metadata_event.rb +1 -1
- data/lib/serializer/manifest.rb +1 -1
- data/lib/serializer/serializable.rb +1 -1
- data/lib/stanford/active_fedora_object.rb +1 -1
- data/lib/stanford/content_inventory.rb +7 -7
- data/lib/stanford/dor_metadata.rb +4 -4
- data/lib/stanford/storage_repository.rb +1 -1
- data/lib/stanford/storage_services.rb +10 -10
- data/lib/tools/api_doc_generator.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29bcc835c352dfeebb39b066f380e14bd37cb1ca
|
4
|
+
data.tar.gz: 31912b340a667715ae00a76cfaa657962ceb73fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f468a3db4861d818ac143289f0a83372f23174bd0c1ff7122a69167406d8e566c049bb80a591f0b4876d50596b083e9de20913ff0ecc6f878611dcbd3d23d1e3
|
7
|
+
data.tar.gz: d906f907c719f412e7572d659b6ea22b2a4afa9d216f1960f437fd79774406285fae3d813c2abed36cc188a35a897495010351defa8122cd44f38e17143e4b3c
|
data/lib/moab.rb
CHANGED
data/lib/moab/file_group.rb
CHANGED
@@ -15,7 +15,7 @@ module Moab
|
|
15
15
|
#
|
16
16
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
17
17
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
18
|
-
class FileGroup < Serializable
|
18
|
+
class FileGroup < Serializer::Serializable
|
19
19
|
|
20
20
|
include HappyMapper
|
21
21
|
|
@@ -36,7 +36,7 @@ module Moab
|
|
36
36
|
#
|
37
37
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
38
38
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
39
|
-
class FileGroupDifference < Serializable
|
39
|
+
class FileGroupDifference < Serializer::Serializable
|
40
40
|
include HappyMapper
|
41
41
|
|
42
42
|
# The name of the XML element used to serialize this objects data
|
@@ -13,7 +13,7 @@ module Moab
|
|
13
13
|
#
|
14
14
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
15
15
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
16
|
-
class FileGroupDifferenceSubset < Serializable
|
16
|
+
class FileGroupDifferenceSubset < Serializer::Serializable
|
17
17
|
include HappyMapper
|
18
18
|
|
19
19
|
# The name of the XML element used to serialize this objects data
|
data/lib/moab/file_instance.rb
CHANGED
@@ -13,7 +13,7 @@ module Moab
|
|
13
13
|
#
|
14
14
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
15
15
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
16
|
-
class FileInstance < Serializable
|
16
|
+
class FileInstance < Serializer::Serializable
|
17
17
|
|
18
18
|
include HappyMapper
|
19
19
|
|
@@ -20,7 +20,7 @@ module Moab
|
|
20
20
|
#
|
21
21
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
22
22
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
23
|
-
class FileInstanceDifference < Serializable
|
23
|
+
class FileInstanceDifference < Serializer::Serializable
|
24
24
|
|
25
25
|
include HappyMapper
|
26
26
|
|
data/lib/moab/file_inventory.rb
CHANGED
@@ -28,7 +28,7 @@ module Moab
|
|
28
28
|
# @example {include:file:spec/fixtures/derivatives/manifests/v3/versionInventory.xml}
|
29
29
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
30
30
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
31
|
-
class FileInventory < Manifest
|
31
|
+
class FileInventory < Serializer::Manifest
|
32
32
|
|
33
33
|
include HappyMapper
|
34
34
|
|
@@ -17,7 +17,7 @@ module Moab
|
|
17
17
|
# @example {include:file:spec/fixtures/derivatives/manifests/all/fileInventoryDifference.xml}
|
18
18
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
19
19
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
20
|
-
class FileInventoryDifference < Manifest
|
20
|
+
class FileInventoryDifference < Serializer::Manifest
|
21
21
|
|
22
22
|
include HappyMapper
|
23
23
|
|
@@ -17,7 +17,7 @@ module Moab
|
|
17
17
|
#
|
18
18
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
19
19
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
20
|
-
class FileManifestation < Serializable
|
20
|
+
class FileManifestation < Serializer::Serializable
|
21
21
|
include HappyMapper
|
22
22
|
|
23
23
|
# The name of the XML element used to serialize this objects data
|
data/lib/moab/file_signature.rb
CHANGED
@@ -39,7 +39,7 @@ module Moab
|
|
39
39
|
#
|
40
40
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
41
41
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
42
|
-
class FileSignature < Serializable
|
42
|
+
class FileSignature < Serializer::Serializable
|
43
43
|
|
44
44
|
include HappyMapper
|
45
45
|
|
@@ -25,7 +25,7 @@ module Moab
|
|
25
25
|
# @see Bagger
|
26
26
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
27
27
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
28
|
-
class SignatureCatalog < Manifest
|
28
|
+
class SignatureCatalog < Serializer::Manifest
|
29
29
|
include HappyMapper
|
30
30
|
|
31
31
|
# The name of the XML element used to serialize this objects data
|
@@ -13,7 +13,7 @@ module Moab
|
|
13
13
|
#
|
14
14
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
15
15
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
16
|
-
class SignatureCatalogEntry < Serializable
|
16
|
+
class SignatureCatalogEntry < Serializer::Serializable
|
17
17
|
|
18
18
|
include HappyMapper
|
19
19
|
|
@@ -12,7 +12,7 @@ module Moab
|
|
12
12
|
# @example {include:file:spec/fixtures/data/jq937jp0017/v3/metadata/versionMetadata.xml}
|
13
13
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
14
14
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
15
|
-
class VersionMetadata < Manifest
|
15
|
+
class VersionMetadata < Serializer::Manifest
|
16
16
|
|
17
17
|
include HappyMapper
|
18
18
|
|
@@ -11,7 +11,7 @@ module Moab
|
|
11
11
|
#
|
12
12
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
13
13
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
14
|
-
class VersionMetadataEntry < Serializable
|
14
|
+
class VersionMetadataEntry < Serializer::Serializable
|
15
15
|
|
16
16
|
include HappyMapper
|
17
17
|
|
@@ -13,7 +13,7 @@ module Moab
|
|
13
13
|
# @see VersionMetadataEntry
|
14
14
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
15
15
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
16
|
-
class VersionMetadataEvent < Serializable
|
16
|
+
class VersionMetadataEvent < Serializer::Serializable
|
17
17
|
|
18
18
|
include HappyMapper
|
19
19
|
|
data/lib/serializer/manifest.rb
CHANGED
@@ -10,7 +10,7 @@ module Serializer
|
|
10
10
|
# @see Serializable
|
11
11
|
# @note Copyright (c) 2012 by The Board of Trustees of the Leland Stanford Junior University.
|
12
12
|
# All rights reserved. See {file:LICENSE.rdoc} for details.
|
13
|
-
class Manifest < Serializable
|
13
|
+
class Manifest < Serializer::Serializable
|
14
14
|
|
15
15
|
include HappyMapper
|
16
16
|
|
@@ -146,7 +146,7 @@ module Serializer
|
|
146
146
|
when 2
|
147
147
|
ltag, left, rtag, right = :left, hashes[0], :right, hashes[1]
|
148
148
|
else
|
149
|
-
raise "wrong number of arguments (
|
149
|
+
raise ArgumentError, "wrong number of arguments (#{hashes.length} for 2 or 4)"
|
150
150
|
end
|
151
151
|
(left.keys | right.keys).each do |k|
|
152
152
|
if left[k] != right[k]
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'moab/stanford'
|
2
2
|
|
3
3
|
module Stanford
|
4
4
|
|
@@ -24,7 +24,7 @@ module Stanford
|
|
24
24
|
# Many of these objects have contentMetadata with no child elements, such as this:
|
25
25
|
# <contentMetadata objectId="bd608mj3166" type="file"/>
|
26
26
|
# but there are also objects that have no datasteam of this name at all
|
27
|
-
cm_inventory = FileInventory.new(:type=>"version",:digital_object_id=>object_id, :version_id=>version_id)
|
27
|
+
cm_inventory = Moab::FileInventory.new(:type=>"version",:digital_object_id=>object_id, :version_id=>version_id)
|
28
28
|
content_group = group_from_cm(content_metadata, subset)
|
29
29
|
cm_inventory.groups << content_group
|
30
30
|
cm_inventory
|
@@ -50,7 +50,7 @@ module Stanford
|
|
50
50
|
else
|
51
51
|
raise "Unknown disposition subset (#{subset})"
|
52
52
|
end
|
53
|
-
content_group = FileGroup.new(:group_id=>'content', :data_source => "contentMetadata-#{subset}")
|
53
|
+
content_group = Moab::FileGroup.new(:group_id=>'content', :data_source => "contentMetadata-#{subset}")
|
54
54
|
nodeset.each do |file_node|
|
55
55
|
signature = generate_signature(file_node)
|
56
56
|
instance = generate_instance(file_node)
|
@@ -63,7 +63,7 @@ module Stanford
|
|
63
63
|
# @param node [Nokogiri::XML::Node] The XML node containing file information
|
64
64
|
# @return [FileSignature] The {FileSignature} object generated from the XML data
|
65
65
|
def generate_signature(node)
|
66
|
-
signature = FileSignature.new()
|
66
|
+
signature = Moab::FileSignature.new()
|
67
67
|
signature.size = node.attributes['size'].content
|
68
68
|
checksum_nodes = node.xpath('checksum')
|
69
69
|
checksum_nodes.each do |checksum_node|
|
@@ -83,7 +83,7 @@ module Stanford
|
|
83
83
|
# @param node (see #generate_signature)
|
84
84
|
# @return [FileInstance] The {FileInstance} object generated from the XML data
|
85
85
|
def generate_instance(node)
|
86
|
-
instance = FileInstance.new()
|
86
|
+
instance = Moab::FileInstance.new()
|
87
87
|
instance.path = node.attributes['id'].content
|
88
88
|
instance.datetime = node.attributes['datetime'].content rescue nil
|
89
89
|
instance
|
@@ -175,8 +175,8 @@ module Stanford
|
|
175
175
|
return nil if content_metadata.nil?
|
176
176
|
return content_metadata if content_group.nil? or content_group.files.size < 1
|
177
177
|
signature_for_path = content_group.path_hash
|
178
|
-
@type_for_name = FileSignature.checksum_type_for_name
|
179
|
-
@names_for_type = FileSignature.checksum_names_for_type
|
178
|
+
@type_for_name = Moab::FileSignature.checksum_type_for_name
|
179
|
+
@names_for_type = Moab::FileSignature.checksum_names_for_type
|
180
180
|
ng_doc = Nokogiri::XML(content_metadata) { |x| x.noblanks }
|
181
181
|
nodeset = ng_doc.xpath("//file")
|
182
182
|
nodeset.each do |file_node|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'moab/stanford'
|
2
2
|
|
3
3
|
module Stanford
|
4
4
|
|
@@ -33,11 +33,11 @@ module Stanford
|
|
33
33
|
# @return [FileInventory] Inventory of the files under the specified directory
|
34
34
|
def inventory_from_directory(directory, version_id=nil)
|
35
35
|
version_id ||= @version_id
|
36
|
-
version_inventory = FileInventory.new(:type=>'version',:digital_object_id=>@digital_object_id, :version_id=>version_id)
|
36
|
+
version_inventory = Moab::FileInventory.new(:type=>'version',:digital_object_id=>@digital_object_id, :version_id=>version_id)
|
37
37
|
content_metadata = IO.read(File.join(directory,'contentMetadata.xml'))
|
38
|
-
content_group = ContentInventory.new.group_from_cm(content_metadata, 'preserve' )
|
38
|
+
content_group = Stanford::ContentInventory.new.group_from_cm(content_metadata, 'preserve' )
|
39
39
|
version_inventory.groups << content_group
|
40
|
-
metadata_group = FileGroup.new(:group_id=>'metadata').group_from_directory(directory)
|
40
|
+
metadata_group = Moab::FileGroup.new(:group_id=>'metadata').group_from_directory(directory)
|
41
41
|
version_inventory.groups << metadata_group
|
42
42
|
version_inventory
|
43
43
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'moab/stanford'
|
2
2
|
|
3
3
|
module Stanford
|
4
4
|
|
@@ -14,20 +14,20 @@ module Stanford
|
|
14
14
|
# @param base_version [Integer] The ID of the version whose inventory is the basis of, if nil use latest version
|
15
15
|
# @return [FileInventoryDifference] The report of differences between the content metadata and the specified version
|
16
16
|
def self.compare_cm_to_version(new_content_metadata, object_id, subset, base_version=nil)
|
17
|
-
new_inventory = ContentInventory.new.inventory_from_cm(new_content_metadata, object_id, subset)
|
17
|
+
new_inventory = Stanford::ContentInventory.new.inventory_from_cm(new_content_metadata, object_id, subset)
|
18
18
|
begin
|
19
19
|
# ObjectNotFoundException is raised if the object does not exist in storage
|
20
20
|
base_version ||= self.current_version(object_id)
|
21
21
|
# FileNotFoundException is raised if object exists but has no contentMetadata file
|
22
22
|
base_cm_pathname = self.retrieve_file('metadata', 'contentMetadata.xml', object_id, base_version)
|
23
|
-
base_inventory = ContentInventory.new.inventory_from_cm(base_cm_pathname.read, object_id, subset, base_version)
|
23
|
+
base_inventory = Stanford::ContentInventory.new.inventory_from_cm(base_cm_pathname.read, object_id, subset, base_version)
|
24
24
|
rescue Moab::ObjectNotFoundException, Moab::FileNotFoundException
|
25
25
|
# Create a skeletal FileInventory object, containing no file entries
|
26
|
-
storage_object = StorageObject.new(object_id, 'dummy')
|
27
|
-
base_version = StorageObjectVersion.new(storage_object,0)
|
26
|
+
storage_object = Moab::StorageObject.new(object_id, 'dummy')
|
27
|
+
base_version = Moab::StorageObjectVersion.new(storage_object,0)
|
28
28
|
base_inventory = base_version.file_inventory('version')
|
29
29
|
end
|
30
|
-
diff = FileInventoryDifference.new.compare(base_inventory, new_inventory)
|
30
|
+
diff = Moab::FileInventoryDifference.new.compare(base_inventory, new_inventory)
|
31
31
|
metadata_diff = diff.group_difference('metadata')
|
32
32
|
diff.group_differences.delete(metadata_diff) if metadata_diff
|
33
33
|
diff
|
@@ -38,15 +38,15 @@ module Stanford
|
|
38
38
|
# @param version_id [Integer] The ID of the version whose signature catalog is to be used, if nil use latest version
|
39
39
|
# @return [FileInventory] The versionAddtions report showing which files are new or modified in the content metadata
|
40
40
|
def self.cm_version_additions(new_content_metadata, object_id, version_id=nil)
|
41
|
-
new_inventory = ContentInventory.new.inventory_from_cm(new_content_metadata, object_id, 'preserve')
|
41
|
+
new_inventory = Stanford::ContentInventory.new.inventory_from_cm(new_content_metadata, object_id, 'preserve')
|
42
42
|
begin
|
43
43
|
# ObjectNotFoundException is raised if the object does not exist in storage
|
44
44
|
version_id ||= self.current_version(object_id)
|
45
45
|
storage_object_version = @@repository.storage_object(object_id).find_object_version(version_id)
|
46
46
|
signature_catalog = storage_object_version.signature_catalog
|
47
47
|
rescue Moab::ObjectNotFoundException
|
48
|
-
storage_object = StorageObject.new(object_id, 'dummy')
|
49
|
-
base_version = StorageObjectVersion.new(storage_object,0)
|
48
|
+
storage_object = Moab::StorageObject.new(object_id, 'dummy')
|
49
|
+
base_version = Moab::StorageObjectVersion.new(storage_object,0)
|
50
50
|
signature_catalog = base_version.signature_catalog
|
51
51
|
end
|
52
52
|
signature_catalog.version_additions(new_inventory)
|
@@ -58,7 +58,7 @@ module Stanford
|
|
58
58
|
def self.cm_remediate(object_id, version_id=nil)
|
59
59
|
cm = self.retrieve_file('metadata', 'contentMetadata.xml', object_id, version_id)
|
60
60
|
group = self.retrieve_file_group('content', object_id, version_id)
|
61
|
-
ContentInventory.new.remediate_content_metadata(cm,group)
|
61
|
+
Stanford::ContentInventory.new.remediate_content_metadata(cm,group)
|
62
62
|
end
|
63
63
|
|
64
64
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moab-versioning
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Darren Weber
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2016-02-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: confstruct
|
@@ -203,6 +203,7 @@ files:
|
|
203
203
|
- lib/moab/file_signature.rb
|
204
204
|
- lib/moab/signature_catalog.rb
|
205
205
|
- lib/moab/signature_catalog_entry.rb
|
206
|
+
- lib/moab/stanford.rb
|
206
207
|
- lib/moab/storage_object.rb
|
207
208
|
- lib/moab/storage_object_version.rb
|
208
209
|
- lib/moab/storage_repository.rb
|
@@ -212,7 +213,6 @@ files:
|
|
212
213
|
- lib/moab/version_metadata.rb
|
213
214
|
- lib/moab/version_metadata_entry.rb
|
214
215
|
- lib/moab/version_metadata_event.rb
|
215
|
-
- lib/moab_stanford.rb
|
216
216
|
- lib/serializer.rb
|
217
217
|
- lib/serializer/manifest.rb
|
218
218
|
- lib/serializer/serializable.rb
|
@@ -235,9 +235,9 @@ require_paths:
|
|
235
235
|
- lib
|
236
236
|
required_ruby_version: !ruby/object:Gem::Requirement
|
237
237
|
requirements:
|
238
|
-
- - "
|
238
|
+
- - "~>"
|
239
239
|
- !ruby/object:Gem::Version
|
240
|
-
version: '
|
240
|
+
version: '2.1'
|
241
241
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
242
242
|
requirements:
|
243
243
|
- - ">="
|
@@ -245,9 +245,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
245
|
version: 1.3.6
|
246
246
|
requirements: []
|
247
247
|
rubyforge_project:
|
248
|
-
rubygems_version: 2.
|
248
|
+
rubygems_version: 2.4.5.1
|
249
249
|
signing_key:
|
250
250
|
specification_version: 4
|
251
251
|
summary: Ruby implementation of digital object versioning toolkit used by the SULAIR
|
252
252
|
Digital Library
|
253
253
|
test_files: []
|
254
|
+
has_rdoc:
|