moab-versioning 1.3.4 → 1.4.1
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/lib/moab/file_group.rb +6 -6
- data/lib/moab/file_group_difference.rb +11 -11
- data/lib/moab/file_inventory.rb +1 -1
- data/lib/moab/file_signature.rb +4 -4
- data/lib/moab/signature_catalog.rb +3 -3
- data/lib/moab/storage_object.rb +1 -0
- data/lib/moab/verification_result.rb +5 -4
- data/lib/serializer.rb +3 -9
- data/lib/serializer/manifest.rb +5 -1
- data/lib/serializer/serializable.rb +11 -11
- data/lib/stanford/content_inventory.rb +2 -2
- data/lib/tools/api_doc_generator.rb +4 -5
- data/lib/tools/spec_generator.rb +6 -7
- metadata +32 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eccc36c9ff00556b0bceeb9105606382cecea370
|
4
|
+
data.tar.gz: c08e5b8c4f199716d8c40890505791c204f23012
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd559e11acb29aa9eb4503f98037ca14e0683a393a243b11d1a458368468ee5a7ba6a3bd059118de8e0438b25a10f50daa11c52fb4ae54212224ba0c254ab949
|
7
|
+
data.tar.gz: 85d1a5798696d633bacdb113bac94dd4ca22a13702112082de8b9b9cf83ff38ced2c12436abe6401104ed87823471877b8ca7346e467914a56473f800e1ecfbc
|
data/lib/moab/file_group.rb
CHANGED
@@ -24,7 +24,7 @@ module Moab
|
|
24
24
|
|
25
25
|
# (see Serializable#initialize)
|
26
26
|
def initialize(opts={})
|
27
|
-
@signature_hash =
|
27
|
+
@signature_hash = Hash.new
|
28
28
|
@data_source = ""
|
29
29
|
super(opts)
|
30
30
|
end
|
@@ -75,15 +75,15 @@ module Moab
|
|
75
75
|
@signature_hash.values
|
76
76
|
end
|
77
77
|
|
78
|
-
# @return [
|
78
|
+
# @return [Hash<FileSignature, FileManifestation>] The actual in-memory store for the collection
|
79
79
|
# of {FileManifestation} objects that are contained in this file group.
|
80
80
|
attr_accessor :signature_hash
|
81
81
|
|
82
82
|
# @api internal
|
83
|
-
# @return [
|
83
|
+
# @return [Hash<String,FileSignature>] An index of file paths,
|
84
84
|
# used to test for existence of a filename in this file group
|
85
85
|
def path_hash
|
86
|
-
path_hash =
|
86
|
+
path_hash = Hash.new
|
87
87
|
@signature_hash.each do |signature,manifestation|
|
88
88
|
manifestation.instances.each do |instance|
|
89
89
|
path_hash[instance.path] = signature
|
@@ -99,9 +99,9 @@ module Moab
|
|
99
99
|
|
100
100
|
# @api internal
|
101
101
|
# @param signature_subset [Array<FileSignature>] The signatures used to select the entries to return
|
102
|
-
# @return [
|
102
|
+
# @return [Hash<String,FileSignature>] A pathname,signature hash containing a subset of the filenames in this file group
|
103
103
|
def path_hash_subset(signature_subset)
|
104
|
-
path_hash =
|
104
|
+
path_hash = Hash.new
|
105
105
|
signature_subset.each do |signature|
|
106
106
|
manifestation = @signature_hash[signature]
|
107
107
|
manifestation.instances.each do |instance|
|
@@ -54,7 +54,7 @@ module Moab
|
|
54
54
|
|
55
55
|
# (see Serializable#initialize)
|
56
56
|
def initialize(opts={})
|
57
|
-
@subset_hash =
|
57
|
+
@subset_hash = Hash.new {|hash, key| hash[key] = FileGroupDifferenceSubset.new(:change => key.to_s)}
|
58
58
|
super(opts)
|
59
59
|
end
|
60
60
|
|
@@ -220,9 +220,9 @@ module Moab
|
|
220
220
|
|
221
221
|
# @api internal
|
222
222
|
# @param matching_signatures [Array<FileSignature>] The file signature of the file manifestations being compared
|
223
|
-
# @param basis_signature_hash [
|
223
|
+
# @param basis_signature_hash [Hash<FileSignature, FileManifestation>]
|
224
224
|
# Signature to file path mapping from the file group that is the basis of the comparison
|
225
|
-
# @param other_signature_hash [
|
225
|
+
# @param other_signature_hash [Hash<FileSignature, FileManifestation>]
|
226
226
|
# Signature to file path mapping from the file group that is the being compared to the basis group
|
227
227
|
# @return [FileGroupDifference]
|
228
228
|
# Container for reporting the set of file-level differences of type 'identical'
|
@@ -245,9 +245,9 @@ module Moab
|
|
245
245
|
|
246
246
|
# @api internal
|
247
247
|
# @param matching_signatures [Array<FileSignature>] The file signature of the file manifestations being compared
|
248
|
-
# @param basis_signature_hash [
|
248
|
+
# @param basis_signature_hash [Hash<FileSignature, FileManifestation>]
|
249
249
|
# Signature to file path mapping from the file group that is the basis of the comparison
|
250
|
-
# @param other_signature_hash [
|
250
|
+
# @param other_signature_hash [Hash<FileSignature, FileManifestation>]
|
251
251
|
# Signature to file path mapping from the file group that is the being compared to the basis group
|
252
252
|
# @return [FileGroupDifference]
|
253
253
|
# Container for reporting the set of file-level differences of type 'renamed','copyadded', or 'copydeleted'
|
@@ -280,9 +280,9 @@ module Moab
|
|
280
280
|
|
281
281
|
|
282
282
|
# @api internal
|
283
|
-
# @param basis_path_hash [
|
283
|
+
# @param basis_path_hash [Hash<String,FileSignature>]
|
284
284
|
# The file paths and associated signatures for manifestations appearing only in the basis group
|
285
|
-
# @param other_path_hash [
|
285
|
+
# @param other_path_hash [Hash<String,FileSignature>]
|
286
286
|
# The file paths and associated signatures for manifestations appearing only in the other group
|
287
287
|
# @return [FileGroupDifference]
|
288
288
|
# Container for reporting the set of file-level differences of type 'modified'
|
@@ -299,9 +299,9 @@ module Moab
|
|
299
299
|
end
|
300
300
|
|
301
301
|
# @api internal
|
302
|
-
# @param basis_path_hash [
|
302
|
+
# @param basis_path_hash [Hash<String,FileSignature>]
|
303
303
|
# The file paths and associated signatures for manifestations appearing only in the basis group
|
304
|
-
# @param other_path_hash [
|
304
|
+
# @param other_path_hash [Hash<String,FileSignature>]
|
305
305
|
# The file paths and associated signatures for manifestations appearing only in the other group
|
306
306
|
# @return [FileGroupDifference]
|
307
307
|
# Container for reporting the set of file-level differences of type 'added'
|
@@ -317,9 +317,9 @@ module Moab
|
|
317
317
|
end
|
318
318
|
|
319
319
|
# @api internal
|
320
|
-
# @param basis_path_hash [
|
320
|
+
# @param basis_path_hash [Hash<String,FileSignature>]
|
321
321
|
# The file paths and associated signatures for manifestations appearing only in the basis group
|
322
|
-
# @param other_path_hash [
|
322
|
+
# @param other_path_hash [Hash<String,FileSignature>]
|
323
323
|
# The file paths and associated signatures for manifestations appearing only in the other group
|
324
324
|
# @return [FileGroupDifference]
|
325
325
|
# Container for reporting the set of file-level differences of type 'deleted'
|
data/lib/moab/file_inventory.rb
CHANGED
@@ -212,7 +212,7 @@ module Moab
|
|
212
212
|
checksum_types.each do |type|
|
213
213
|
manifest_pathname[type] = bag_pathname.join("manifest-#{type.to_s}.txt")
|
214
214
|
end
|
215
|
-
signatures =
|
215
|
+
signatures = Hash.new { |hash,path| hash[path] = FileSignature.new }
|
216
216
|
checksum_types.each do |type|
|
217
217
|
if manifest_pathname[type].exist?
|
218
218
|
manifest_pathname[type].each_line do |line|
|
data/lib/moab/file_signature.rb
CHANGED
@@ -85,7 +85,7 @@ module Moab
|
|
85
85
|
|
86
86
|
# @return [Hash<Symbol,String>] A hash of the checksum data
|
87
87
|
def checksums
|
88
|
-
checksum_hash =
|
88
|
+
checksum_hash = Hash.new
|
89
89
|
checksum_hash[:md5] = @md5
|
90
90
|
checksum_hash[:sha1] = @sha1
|
91
91
|
checksum_hash[:sha256] = @sha256
|
@@ -101,7 +101,7 @@ module Moab
|
|
101
101
|
# @api internal
|
102
102
|
# @return [Hash<Symbol,String>] A hash of fixity data from this signataure object
|
103
103
|
def fixity
|
104
|
-
fixity_hash =
|
104
|
+
fixity_hash = Hash.new
|
105
105
|
fixity_hash[:size] = @size.to_s
|
106
106
|
fixity_hash.merge!(checksums)
|
107
107
|
fixity_hash
|
@@ -177,7 +177,7 @@ module Moab
|
|
177
177
|
|
178
178
|
# @return [Hash<Symbol,String>] Key is type (e.g. :sha1), value is checksum names (e.g. ['SHA-1', 'SHA1'])
|
179
179
|
def FileSignature.checksum_names_for_type
|
180
|
-
names_for_type =
|
180
|
+
names_for_type = Hash.new
|
181
181
|
names_for_type[:md5] = ['MD5']
|
182
182
|
names_for_type[:sha1] = ['SHA-1', 'SHA1']
|
183
183
|
names_for_type[:sha256] = ['SHA-256', 'SHA256']
|
@@ -186,7 +186,7 @@ module Moab
|
|
186
186
|
|
187
187
|
# @return [Hash<String, Symbol>] Key is checksum name (e.g. MD5), value is checksum type (e.g. :md5)
|
188
188
|
def FileSignature.checksum_type_for_name
|
189
|
-
type_for_name =
|
189
|
+
type_for_name = Hash.new
|
190
190
|
self.checksum_names_for_type.each do |type, names|
|
191
191
|
names.each do |name|
|
192
192
|
type_for_name[name] = type
|
@@ -34,7 +34,7 @@ module Moab
|
|
34
34
|
# (see Serializable#initialize)
|
35
35
|
def initialize(opts={})
|
36
36
|
@entries = Array.new
|
37
|
-
@signature_hash =
|
37
|
+
@signature_hash = Hash.new
|
38
38
|
super(opts)
|
39
39
|
end
|
40
40
|
|
@@ -103,7 +103,7 @@ module Moab
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
|
-
# @return [
|
106
|
+
# @return [Hash] An index having {FileSignature} objects as keys and {SignatureCatalogEntry} objects as values
|
107
107
|
attr_accessor :signature_hash
|
108
108
|
|
109
109
|
# @api internal
|
@@ -192,4 +192,4 @@ module Moab
|
|
192
192
|
|
193
193
|
end
|
194
194
|
|
195
|
-
end
|
195
|
+
end
|
data/lib/moab/storage_object.rb
CHANGED
@@ -154,6 +154,7 @@ module Moab
|
|
154
154
|
# @return [Integer] The identifier of the latest version of this object, or 0 if no versions exist
|
155
155
|
def current_version_id
|
156
156
|
return @current_version_id unless @current_version_id.nil?
|
157
|
+
#@current_version_id = self.version_id_list.last || 0
|
157
158
|
list = self.version_id_list
|
158
159
|
version_id = list.empty? ? 0 : list.last
|
159
160
|
@current_version_id = version_id
|
@@ -41,6 +41,7 @@ module Moab
|
|
41
41
|
# @return [VerificationResult] The result of evaluating the expression
|
42
42
|
def self.verify_truth(entity,expression,details=nil)
|
43
43
|
result = VerificationResult.new(entity.to_s)
|
44
|
+
# TODO: add expression.empty?
|
44
45
|
result.verified = !(expression.nil? or (expression == false))
|
45
46
|
result.details = details
|
46
47
|
result
|
@@ -54,9 +55,9 @@ module Moab
|
|
54
55
|
|
55
56
|
# @param verbose [Boolean] If true, always provide all details of the verification
|
56
57
|
# @param level [Integer] Used to test the depth of recursion
|
57
|
-
# @return [
|
58
|
+
# @return [Hash] The verification result serialized to a hash
|
58
59
|
def to_hash(verbose=false,level=0)
|
59
|
-
hash =
|
60
|
+
hash = Hash.new
|
60
61
|
hash['verified'] = @verified
|
61
62
|
if (verbose or @verified == false)
|
62
63
|
hash['details'] = @details ? @details : subentities_to_hash(verbose,level)
|
@@ -70,9 +71,9 @@ module Moab
|
|
70
71
|
|
71
72
|
# @param verbose [Boolean] If true, always provide all details of the verification
|
72
73
|
# @param level [Integer] Used to increment the depth of recursion
|
73
|
-
# @return [
|
74
|
+
# @return [Hash] The verification result of subentities serialized to a hash
|
74
75
|
def subentities_to_hash(verbose,level)
|
75
|
-
hash =
|
76
|
+
hash = Hash.new
|
76
77
|
@subentities.each do |s|
|
77
78
|
hash[s.entity] = s.to_hash(verbose, level+1)
|
78
79
|
end
|
data/lib/serializer.rb
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
# * <b>{Serializable} = utility methods to faciliate serialization to Hash, JSON, or YAML</b>
|
8
8
|
# * {Manifest} = adds methods for marshalling/unmarshalling data to a persistent XML file format
|
9
9
|
#
|
10
|
-
# @see https://github.com/
|
10
|
+
# @see https://github.com/dam5s/happymapper
|
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
13
|
module Serializer
|
@@ -15,15 +15,9 @@ end
|
|
15
15
|
|
16
16
|
require 'nokogiri'
|
17
17
|
require 'happymapper'
|
18
|
-
if RUBY_VERSION < '1.9'
|
19
|
-
require 'hashery/ordered_hash'
|
20
|
-
include Hashery
|
21
|
-
else
|
22
|
-
require 'psych'
|
23
|
-
OrderedHash = Hash
|
24
|
-
end
|
25
18
|
require 'json'
|
26
|
-
require '
|
19
|
+
require 'psych'
|
20
|
+
#require 'json/pure'
|
27
21
|
require 'pathname'
|
28
22
|
require 'fileutils'
|
29
23
|
require 'time'
|
data/lib/serializer/manifest.rb
CHANGED
@@ -58,7 +58,11 @@ module Serializer
|
|
58
58
|
# @return [void] Serializize the in-memory object to a xml file instance
|
59
59
|
def self.write_xml_file(xml_object, parent_dir, filename=nil)
|
60
60
|
parent_dir.mkpath
|
61
|
-
self.xml_pathname(parent_dir, filename).open('w')
|
61
|
+
self.xml_pathname(parent_dir, filename).open('w') do |f|
|
62
|
+
xmlBuilder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8')
|
63
|
+
xmlBuilder = xml_object.to_xml(xmlBuilder)
|
64
|
+
f << xmlBuilder.to_xml
|
65
|
+
end
|
62
66
|
nil
|
63
67
|
end
|
64
68
|
|
@@ -77,11 +77,11 @@ module Serializer
|
|
77
77
|
|
78
78
|
# @api internal
|
79
79
|
# @param array [Array] The array to be converted to a hash
|
80
|
-
# @return [
|
80
|
+
# @return [Hash] Generate a hash from an array of objects.
|
81
81
|
# If the array member has a field tagged as a key, that field will be used as the hash.key.
|
82
82
|
# Otherwise the index position of the array member will be used as the key
|
83
83
|
def array_to_hash(array,summary=false)
|
84
|
-
item_hash =
|
84
|
+
item_hash = Hash.new
|
85
85
|
array.each_index do |index|
|
86
86
|
item = array[index]
|
87
87
|
ikey = (item.respond_to?(:key) && item.key) ? item.key : index
|
@@ -91,13 +91,13 @@ module Serializer
|
|
91
91
|
end
|
92
92
|
|
93
93
|
# @api internal
|
94
|
-
# @return [
|
94
|
+
# @return [Hash] Recursively generate an Hash containing the object's properties
|
95
95
|
# @param summary [Boolean] Controls the depth and detail of recursion
|
96
96
|
def to_hash(summary=false)
|
97
|
-
oh =
|
97
|
+
oh = Hash.new
|
98
98
|
vars = summary ? variables.select{|v| summary_fields.include?(v.name)} : variables
|
99
99
|
vars.each do |variable|
|
100
|
-
key = variable.
|
100
|
+
key = variable.name.to_s
|
101
101
|
value = self.send(variable.name)
|
102
102
|
case value
|
103
103
|
when Array
|
@@ -111,14 +111,14 @@ module Serializer
|
|
111
111
|
oh
|
112
112
|
end
|
113
113
|
|
114
|
-
# @return [
|
114
|
+
# @return [Hash] Calls to_hash(summary=true)
|
115
115
|
def summary
|
116
116
|
self.to_hash(summary=true)
|
117
117
|
end
|
118
118
|
|
119
119
|
# @api internal
|
120
120
|
# @param other [Serializable] The other object being compared
|
121
|
-
# @return [
|
121
|
+
# @return [Hash] Generate a hash containing the differences between two objects of the same type
|
122
122
|
def diff(other)
|
123
123
|
raise "Cannot compare different classes" if self.class != other.class
|
124
124
|
left = other.to_hash
|
@@ -135,11 +135,11 @@ module Serializer
|
|
135
135
|
|
136
136
|
# @api internal
|
137
137
|
# @param hashes [Array<Hash>] The hashes to be compared, with optional name tags
|
138
|
-
# @return [
|
138
|
+
# @return [Hash] Generate a hash containing the differences between two hashes
|
139
139
|
# (recursively descend parallel trees of hashes)
|
140
140
|
# @see https://gist.github.com/146844
|
141
141
|
def Serializable.deep_diff(*hashes)
|
142
|
-
diff =
|
142
|
+
diff = Hash.new
|
143
143
|
case hashes.length
|
144
144
|
when 4
|
145
145
|
ltag, left, rtag, right = hashes
|
@@ -153,7 +153,7 @@ module Serializer
|
|
153
153
|
if left[k].is_a?(Hash) && right[k].is_a?(Hash)
|
154
154
|
diff[k] = deep_diff(ltag, left[k], rtag, right[k])
|
155
155
|
else
|
156
|
-
diff[k] =
|
156
|
+
diff[k] = Hash.[](ltag, left[k], rtag, right[k])
|
157
157
|
end
|
158
158
|
end
|
159
159
|
end
|
@@ -175,4 +175,4 @@ module Serializer
|
|
175
175
|
|
176
176
|
end
|
177
177
|
|
178
|
-
end
|
178
|
+
end
|
@@ -205,7 +205,7 @@ module Stanford
|
|
205
205
|
# @return [void] update the file's checksum elements if data missing, raise exception if inconsistent
|
206
206
|
def remediate_checksum_nodes(file_node, signature)
|
207
207
|
# collect <checksum> elements for checksum types that are already present
|
208
|
-
checksum_nodes =
|
208
|
+
checksum_nodes = Hash.new
|
209
209
|
file_node.xpath('checksum').each do |checksum_node|
|
210
210
|
type = @type_for_name[checksum_node['type']]
|
211
211
|
checksum_nodes[type] = checksum_node
|
@@ -233,4 +233,4 @@ module Stanford
|
|
233
233
|
|
234
234
|
end
|
235
235
|
|
236
|
-
end
|
236
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
#$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
|
2
2
|
require 'rubygems'
|
3
|
-
require 'hashery/orderedhash'
|
4
3
|
require 'pathname'
|
5
4
|
require 'yard'
|
6
5
|
include YARD
|
@@ -45,7 +44,7 @@ class ApiClass
|
|
45
44
|
def initialize(class_name)
|
46
45
|
@class_name = class_name
|
47
46
|
@yard_class = @@class_hash[class_name]
|
48
|
-
if yard_class.nil?
|
47
|
+
if @yard_class.nil?
|
49
48
|
raise "class_hash[#{class_name}] is Nil"
|
50
49
|
end
|
51
50
|
@mhash = categorize_members(@yard_class)
|
@@ -69,8 +68,8 @@ class ApiClass
|
|
69
68
|
|
70
69
|
def categorize_members(yard_class)
|
71
70
|
mhash = {
|
72
|
-
:class_attributes =>
|
73
|
-
:instance_attributes =>
|
71
|
+
:class_attributes => Hash.new,
|
72
|
+
:instance_attributes => Hash.new,
|
74
73
|
:class_methods => Array.new,
|
75
74
|
:instance_methods => Array.new
|
76
75
|
}
|
@@ -254,7 +253,7 @@ class ApiClass
|
|
254
253
|
end
|
255
254
|
|
256
255
|
def confluence_translate(input)
|
257
|
-
map =
|
256
|
+
map = Hash.new
|
258
257
|
map[/\|/] = "\\|"
|
259
258
|
map[/====/] = "h4. "
|
260
259
|
map[/\*/] = "\\*"
|
data/lib/tools/spec_generator.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'hashery/orderedhash' if RUBY_VERSION < '1.9'
|
3
2
|
require 'pathname'
|
4
3
|
require 'yard'
|
5
4
|
include YARD
|
@@ -90,8 +89,8 @@ class SpecGenerator
|
|
90
89
|
# @param cls [CodeObjects::ClassObject]
|
91
90
|
def categorize_members(cls)
|
92
91
|
mhash = {
|
93
|
-
:class_attributes =>
|
94
|
-
:instance_attributes =>
|
92
|
+
:class_attributes => Hash.new,
|
93
|
+
:instance_attributes => Hash.new,
|
95
94
|
:class_methods => Array.new,
|
96
95
|
:instance_methods => Array.new
|
97
96
|
}
|
@@ -168,7 +167,7 @@ class SpecGenerator
|
|
168
167
|
if p.name == 'opts'
|
169
168
|
output " "
|
170
169
|
output "# test initialization with options hash"
|
171
|
-
output "opts =
|
170
|
+
output "opts = Hash.new"
|
172
171
|
attribute_name_type_pairs(mhash).each do |name, type|
|
173
172
|
output "opts[:#{name}] = #{value_for(name, type)}"
|
174
173
|
end
|
@@ -363,7 +362,7 @@ class SpecGenerator
|
|
363
362
|
case type[0]
|
364
363
|
when 'Array'
|
365
364
|
"[#{value_for(name, type[1])}]"
|
366
|
-
when 'Hash'
|
365
|
+
when 'Hash'
|
367
366
|
key, value = type[1].split(/[,]/)
|
368
367
|
"{#{value_for(name, key)} => #{value_for(name, value)}}"
|
369
368
|
else
|
@@ -376,7 +375,7 @@ class SpecGenerator
|
|
376
375
|
end
|
377
376
|
|
378
377
|
def attribute_arrays_and_hashes(mhash)
|
379
|
-
arrays_and_hashes =
|
378
|
+
arrays_and_hashes = Hash.new
|
380
379
|
attribute_name_type_pairs(mhash).each do |name, type|
|
381
380
|
if type.include?('Array')
|
382
381
|
arrays_and_hashes[name] = 'Array'
|
@@ -388,7 +387,7 @@ class SpecGenerator
|
|
388
387
|
end
|
389
388
|
|
390
389
|
def attribute_name_type_pairs(mhash)
|
391
|
-
pairs =
|
390
|
+
pairs = Hash.new
|
392
391
|
mhash[:instance_attributes].values.each do |attribute|
|
393
392
|
read = attribute[:read]
|
394
393
|
return_tag = read.docstring.tag(:return)
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moab-versioning
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Darren Weber
|
7
8
|
- Richard Anderson
|
8
9
|
- Lynn McRae
|
9
10
|
- Hannah Frost
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date: 2014-
|
14
|
+
date: 2014-10-31 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: confstruct
|
@@ -41,21 +42,7 @@ dependencies:
|
|
41
42
|
- !ruby/object:Gem::Version
|
42
43
|
version: '0'
|
43
44
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - ">="
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: 2.0.0
|
50
|
-
type: :runtime
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 2.0.0
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: json_pure
|
45
|
+
name: nokogiri-happymapper
|
59
46
|
requirement: !ruby/object:Gem::Requirement
|
60
47
|
requirements:
|
61
48
|
- - ">="
|
@@ -69,7 +56,7 @@ dependencies:
|
|
69
56
|
- !ruby/object:Gem::Version
|
70
57
|
version: '0'
|
71
58
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
59
|
+
name: json
|
73
60
|
requirement: !ruby/object:Gem::Requirement
|
74
61
|
requirements:
|
75
62
|
- - ">="
|
@@ -114,30 +101,30 @@ dependencies:
|
|
114
101
|
name: equivalent-xml
|
115
102
|
requirement: !ruby/object:Gem::Requirement
|
116
103
|
requirements:
|
117
|
-
- -
|
104
|
+
- - ">="
|
118
105
|
- !ruby/object:Gem::Version
|
119
|
-
version: 0
|
106
|
+
version: '0'
|
120
107
|
type: :development
|
121
108
|
prerelease: false
|
122
109
|
version_requirements: !ruby/object:Gem::Requirement
|
123
110
|
requirements:
|
124
|
-
- -
|
111
|
+
- - ">="
|
125
112
|
- !ruby/object:Gem::Version
|
126
|
-
version: 0
|
113
|
+
version: '0'
|
127
114
|
- !ruby/object:Gem::Dependency
|
128
115
|
name: rake
|
129
116
|
requirement: !ruby/object:Gem::Requirement
|
130
117
|
requirements:
|
131
118
|
- - ">="
|
132
119
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0
|
120
|
+
version: '0'
|
134
121
|
type: :development
|
135
122
|
prerelease: false
|
136
123
|
version_requirements: !ruby/object:Gem::Requirement
|
137
124
|
requirements:
|
138
125
|
- - ">="
|
139
126
|
- !ruby/object:Gem::Version
|
140
|
-
version: 0
|
127
|
+
version: '0'
|
141
128
|
- !ruby/object:Gem::Dependency
|
142
129
|
name: rdoc
|
143
130
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,14 +145,14 @@ dependencies:
|
|
158
145
|
requirements:
|
159
146
|
- - "<"
|
160
147
|
- !ruby/object:Gem::Version
|
161
|
-
version:
|
148
|
+
version: 3.0.0
|
162
149
|
type: :development
|
163
150
|
prerelease: false
|
164
151
|
version_requirements: !ruby/object:Gem::Requirement
|
165
152
|
requirements:
|
166
153
|
- - "<"
|
167
154
|
- !ruby/object:Gem::Version
|
168
|
-
version:
|
155
|
+
version: 3.0.0
|
169
156
|
- !ruby/object:Gem::Dependency
|
170
157
|
name: yard
|
171
158
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,9 +167,23 @@ dependencies:
|
|
180
167
|
- - ">="
|
181
168
|
- !ruby/object:Gem::Version
|
182
169
|
version: '0'
|
170
|
+
- !ruby/object:Gem::Dependency
|
171
|
+
name: pry
|
172
|
+
requirement: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
type: :development
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
183
184
|
description: Contains classes to process digital object version content and metadata
|
184
185
|
email:
|
185
|
-
-
|
186
|
+
- darren.weber@stanford.edu
|
186
187
|
executables: []
|
187
188
|
extensions: []
|
188
189
|
extra_rdoc_files: []
|
@@ -224,8 +225,9 @@ files:
|
|
224
225
|
- lib/tools/api_doc_generator.rb
|
225
226
|
- lib/tools/spec_generator.rb
|
226
227
|
- lib/tools/spec_generator_old.rb
|
227
|
-
homepage:
|
228
|
-
licenses:
|
228
|
+
homepage: https://github.com/sul-dlss/moab-versioning
|
229
|
+
licenses:
|
230
|
+
- Apache-2.0
|
229
231
|
metadata: {}
|
230
232
|
post_install_message:
|
231
233
|
rdoc_options: []
|
@@ -243,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
243
245
|
version: 1.3.6
|
244
246
|
requirements: []
|
245
247
|
rubyforge_project:
|
246
|
-
rubygems_version: 2.
|
248
|
+
rubygems_version: 2.4.2
|
247
249
|
signing_key:
|
248
250
|
specification_version: 4
|
249
251
|
summary: Ruby implmentation of digital object versioning toolkit used by the SULAIR
|