dor-services 2.2.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.
- data/lib/datastreams/content_metadata_ds.rb +12 -0
- data/lib/datastreams/embargo_metadata_ds.rb +107 -0
- data/lib/datastreams/events_ds.rb +58 -0
- data/lib/datastreams/identity_metadata_ds.rb +28 -0
- data/lib/datastreams/ng_tidy.rb +19 -0
- data/lib/datastreams/simple_dublin_core_ds.rb +23 -0
- data/lib/datastreams/workflow_definition_ds.rb +105 -0
- data/lib/datastreams/workflow_ds.rb +16 -0
- data/lib/dor-services.rb +19 -0
- data/lib/dor/admin_policy_object.rb +11 -0
- data/lib/dor/base.rb +81 -0
- data/lib/dor/cleanup_service.rb +32 -0
- data/lib/dor/config.rb +45 -0
- data/lib/dor/digital_stacks_service.rb +82 -0
- data/lib/dor/druid_utils.rb +41 -0
- data/lib/dor/embargo.rb +41 -0
- data/lib/dor/exceptions.rb +13 -0
- data/lib/dor/item.rb +141 -0
- data/lib/dor/metadata_handlers/catalog_handler.rb +22 -0
- data/lib/dor/metadata_handlers/mdtoolkit_handler.rb +42 -0
- data/lib/dor/metadata_service.rb +88 -0
- data/lib/dor/mods2dc.xslt +447 -0
- data/lib/dor/provenance_metadata_service.rb +65 -0
- data/lib/dor/registration_service.rb +87 -0
- data/lib/dor/rsolr.rb +27 -0
- data/lib/dor/sdr_ingest_service.rb +117 -0
- data/lib/dor/search_service.rb +86 -0
- data/lib/dor/suri_service.rb +37 -0
- data/lib/dor/tei2dc.xslt +102 -0
- data/lib/dor/workflow_object.rb +13 -0
- data/lib/dor/workflow_service.rb +111 -0
- data/lib/gsearch/demoFoxmlToSolr.xslt +384 -0
- data/lib/gsearch/schema.xml +229 -0
- data/lib/tasks/rdoc.rake +32 -0
- data/lib/xml_models/foxml.rb +261 -0
- data/lib/xml_models/identity_metadata/dublin_core.rb +119 -0
- data/lib/xml_models/identity_metadata/identity_metadata.rb +288 -0
- metadata +462 -0
@@ -0,0 +1,119 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
#<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
|
5
|
+
#xmlns:srw_dc="info:srw/schema/1/dc-schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6
|
+
#xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://cosimo.stanford.edu/standards/oai_dc/v2/oai_dc.xsd">
|
7
|
+
# <dc:title>Life of Abraham Lincoln, sixteenth president of the United States: Containing his early
|
8
|
+
#history and political career; together with the speeches, messages, proclamations and other official
|
9
|
+
#documents illus. of his eventful administration</dc:title>
|
10
|
+
# <dc:creator>Crosby, Frank.</dc:creator>
|
11
|
+
# <dc:format>text</dc:format>
|
12
|
+
# <dc:language>eng</dc:language>
|
13
|
+
# <dc:subject>E457 .C94</dc:subject>
|
14
|
+
# <dc:identifier>lccn:11030686</dc:identifier>
|
15
|
+
# <dc:identifier>callseq:1</dc:identifier>
|
16
|
+
# <dc:identifier>shelfseq:973.7111 .L731CR</dc:identifier>
|
17
|
+
# <dc:identifier>catkey:1206382</dc:identifier>
|
18
|
+
# <dc:identifier>barcode:36105005459602</dc:identifier>
|
19
|
+
# <dc:identifier>uuid:ddcf5f1a-0331-4345-beca-e66f7db276eb</dc:identifier>
|
20
|
+
# <dc:identifier>google:STANFORD_36105005459602</dc:identifier>
|
21
|
+
# <dc:identifier>druid:ng786kn0371</dc:identifier>
|
22
|
+
#</oai_dc:dc>
|
23
|
+
|
24
|
+
# TODO: Rewrite in OM
|
25
|
+
|
26
|
+
class DublinCore
|
27
|
+
|
28
|
+
|
29
|
+
attr_accessor :xml
|
30
|
+
|
31
|
+
attr_accessor :title
|
32
|
+
attr_accessor :creator
|
33
|
+
attr_accessor :subject
|
34
|
+
attr_accessor :description
|
35
|
+
attr_accessor :publisher
|
36
|
+
attr_accessor :contributor
|
37
|
+
attr_accessor :date
|
38
|
+
attr_accessor :type
|
39
|
+
attr_accessor :format
|
40
|
+
attr_accessor :identifier
|
41
|
+
attr_accessor :source
|
42
|
+
attr_accessor :language
|
43
|
+
attr_accessor :relation
|
44
|
+
attr_accessor :coverage
|
45
|
+
attr_accessor :rights
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
def initialize(xml = nil)
|
51
|
+
|
52
|
+
@title ||= []
|
53
|
+
@creator ||= []
|
54
|
+
@subject ||= []
|
55
|
+
@description ||= []
|
56
|
+
@publisher ||= []
|
57
|
+
@contributor ||= []
|
58
|
+
@date ||= []
|
59
|
+
@type ||= []
|
60
|
+
@format ||= []
|
61
|
+
@identifier ||= []
|
62
|
+
@source ||= []
|
63
|
+
@language ||= []
|
64
|
+
@relation ||= []
|
65
|
+
@coverage ||= []
|
66
|
+
@rights ||= []
|
67
|
+
|
68
|
+
# if the new is given an xml string, store that in the xml attr_accessor and don't rebuild.
|
69
|
+
# this will allow users to access the raw unprocessed XML string via @xml.
|
70
|
+
if xml.nil?
|
71
|
+
build_xml()
|
72
|
+
else
|
73
|
+
@xml = xml
|
74
|
+
end
|
75
|
+
|
76
|
+
end #initalize
|
77
|
+
|
78
|
+
|
79
|
+
def build_xml()
|
80
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
81
|
+
xml.dc('xmlns:dc' => 'http://purl.org/dc/elements/1.1/', 'xmlns:srw_dc' => 'info:srw/schema/1/dc-schema', "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance" ) {
|
82
|
+
xml.parent.namespace = xml.parent.add_namespace_definition('oai_dc','http://www.openarchives.org/OAI/2.0/oai_dc/')
|
83
|
+
xml.parent.add_namespace_definition("xsi:schemaLocation", "http://www.openarchives.org/OAI/2.0/oai_dc/ http://cosimo.stanford.edu/standards/oai_dc/v2/oai_dc.xsd")
|
84
|
+
self.instance_variables.each do |var|
|
85
|
+
unless var == "@xml"
|
86
|
+
self.instance_variable_get(var).each { |v| xml['dc'].send("#{var.gsub('@','')}_", v) }
|
87
|
+
end #unless
|
88
|
+
end #instance_Variables.each
|
89
|
+
}
|
90
|
+
end
|
91
|
+
@xml = builder.to_xml
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
# This method rebuilds the xml attr_accesor and returns it as a string.
|
97
|
+
def to_xml
|
98
|
+
build_xml
|
99
|
+
return self.xml
|
100
|
+
end #to_xml
|
101
|
+
|
102
|
+
|
103
|
+
# This method takes DC XML as a string, and maps the root child node to their proper attr_accesor.
|
104
|
+
|
105
|
+
def self.from_xml(xml="")
|
106
|
+
dc = DublinCore.new(xml)
|
107
|
+
doc = Nokogiri::XML(xml)
|
108
|
+
children = doc.root.element_children
|
109
|
+
children.each do |c|
|
110
|
+
if dc.instance_variables.include?("@#{c.name}")
|
111
|
+
dc.send("#{c.name}").send("<<", c.text.strip)
|
112
|
+
end #if
|
113
|
+
end #each
|
114
|
+
return dc
|
115
|
+
end #from_xml
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
end #dublin_core
|
@@ -0,0 +1,288 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'nokogiri'
|
3
|
+
#<identityMetadata>
|
4
|
+
# <objectId>druid:rt923jk342</objectId>
|
5
|
+
# <objectType>item</objectType>
|
6
|
+
# <objectLabel>google download barcode 36105049267078</objectLabel>
|
7
|
+
# <objectCreator>DOR</objectCreator>
|
8
|
+
# <citationTitle>Squirrels of North America</citationTitle>
|
9
|
+
# <citationCreator>Eder, Tamara, 1974-</citationCreator>
|
10
|
+
# <sourceId source="google">STANFORD_342837261527</sourceId>
|
11
|
+
# <otherId name="barcode">36105049267078</otherId>
|
12
|
+
# <otherId name="catkey">129483625</otherId>
|
13
|
+
# <otherId name="uuid">7f3da130-7b02-11de-8a39-0800200c9a66</otherId>
|
14
|
+
# <tag>Google Books : Phase 1</tag>
|
15
|
+
# <tag>Google Books : Scan source STANFORD</tag>
|
16
|
+
#</identityMetadata>
|
17
|
+
|
18
|
+
# TODO: Rewrite in OM
|
19
|
+
|
20
|
+
# this just maps the #value method to return the "text", "source", "name" values form the hash
|
21
|
+
class SourceId
|
22
|
+
attr_reader :source
|
23
|
+
attr_reader :value
|
24
|
+
|
25
|
+
def xml_values
|
26
|
+
[self.value, {:source => self.source}]
|
27
|
+
end
|
28
|
+
|
29
|
+
def source=(val)
|
30
|
+
@source = val.nil? ? nil : val.to_s
|
31
|
+
end
|
32
|
+
|
33
|
+
def value=(val)
|
34
|
+
@value = val.nil? ? nil : val.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_s
|
38
|
+
"#{self.source}:#{self.value}"
|
39
|
+
end
|
40
|
+
|
41
|
+
def empty?
|
42
|
+
(self.source.nil? || self.source.empty?) && (self.value.nil? || self.value.empty?)
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
class OtherId
|
48
|
+
attr_reader :name
|
49
|
+
attr_reader :value
|
50
|
+
|
51
|
+
def xml_values
|
52
|
+
[self.value, {:name => self.name}]
|
53
|
+
end
|
54
|
+
|
55
|
+
def name=(val)
|
56
|
+
@name = val.nil? ? nil : val.to_s
|
57
|
+
end
|
58
|
+
|
59
|
+
def value=(val)
|
60
|
+
@value = val.nil? ? nil : val.to_s
|
61
|
+
end
|
62
|
+
|
63
|
+
def to_s
|
64
|
+
"#{self.name}:#{self.value}"
|
65
|
+
end
|
66
|
+
|
67
|
+
def empty?
|
68
|
+
(self.name.nil? || self.name.empty?) && (self.value.nil? || self.value.empty?)
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
class Tag
|
74
|
+
attr_accessor :value
|
75
|
+
|
76
|
+
def xml_values
|
77
|
+
[self.value]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
class IdentityMetadata
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
# these are single values
|
87
|
+
attr_accessor :objectId
|
88
|
+
attr_reader :sourceId, :tags
|
89
|
+
# these instance vars map to nodes in the identityMetadata XML
|
90
|
+
attr_accessor :objectTypes, :objectLabels, :objectCreators, :citationCreators, :citationTitle,
|
91
|
+
:otherIds, :adminPolicy, :agreementId
|
92
|
+
# this stores the Nokogiri XML
|
93
|
+
attr_reader :ng_xml
|
94
|
+
|
95
|
+
|
96
|
+
def initialize(xml = nil)
|
97
|
+
|
98
|
+
@objectId, @citationTitle, @adminPolicy, @agreementId = "", "", "", "" #there can only be one of these values
|
99
|
+
@sourceId = SourceId.new #there can be only one.
|
100
|
+
@otherIds, @tags = [], [] # this is an array that will be filled with OtherId and Tag objects
|
101
|
+
@objectTypes, @objectLabels, @objectCreators, @citationCreators = [], [], [], []
|
102
|
+
|
103
|
+
|
104
|
+
# if the new is given an xml string, store that in the xml attr_accessor and don't rebuild.
|
105
|
+
# this will allow users to access the raw unprocessed XML string via @xml.
|
106
|
+
if xml.nil?
|
107
|
+
build_xml()
|
108
|
+
else
|
109
|
+
@xml = xml
|
110
|
+
end
|
111
|
+
end #def init
|
112
|
+
|
113
|
+
#this builds the xml based on the instance variables in the object. If it's a hash, this assumes that we want to
|
114
|
+
#use attributes ==> {"text"=> "7f3da130-7b02-11de-8a39-0800200c9a66", "name" => "uuid" }. If the instance var is
|
115
|
+
# an array, we assume we don't need attrs, so all values get put into the text node.
|
116
|
+
def build_xml()
|
117
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
118
|
+
xml.identityMetadata {
|
119
|
+
field_names = self.instance_variables.sort { |a,b| "#{a}:#{self.instance_variable_get(a).to_s}" <=> "#{b}:#{self.instance_variable_get(b).to_s}"}
|
120
|
+
field_names.each do |var_name|
|
121
|
+
unless var_name == "@xml"
|
122
|
+
var = self.instance_variable_get(var_name)
|
123
|
+
tag_name = var_name[1..-1]
|
124
|
+
if var.is_a?(Array)
|
125
|
+
tag_name.chomp!('s')
|
126
|
+
end
|
127
|
+
# wrap the singleton properties in a one-element array
|
128
|
+
var = Array(var)
|
129
|
+
var.each do |v|
|
130
|
+
if v.respond_to?(:xml_values)
|
131
|
+
unless (v.respond_to?(:empty?) && v.empty?)
|
132
|
+
xml.send(tag_name, *(v.xml_values))
|
133
|
+
end
|
134
|
+
else
|
135
|
+
xml.send(tag_name, v.to_s)
|
136
|
+
end
|
137
|
+
end #var.each
|
138
|
+
end #unless
|
139
|
+
end #instance_variables.each
|
140
|
+
}
|
141
|
+
end
|
142
|
+
@ng_xml = builder.doc
|
143
|
+
end
|
144
|
+
|
145
|
+
def xml
|
146
|
+
@ng_xml.to_xml(:save_with => Nokogiri::XML::Node::SaveOptions::NO_DECLARATION, :indent => 2)
|
147
|
+
end
|
148
|
+
|
149
|
+
def xml=(value)
|
150
|
+
@ng_xml = Nokogiri::XML(value)
|
151
|
+
end
|
152
|
+
|
153
|
+
# This method rebuilds the xml attr_accesor and returns it as a string.
|
154
|
+
def to_xml
|
155
|
+
build_xml
|
156
|
+
return self.xml
|
157
|
+
end #to_xml
|
158
|
+
|
159
|
+
#
|
160
|
+
# The following methods are convience methods
|
161
|
+
#
|
162
|
+
|
163
|
+
|
164
|
+
# Add a new tag to the IdentityMetadata instance
|
165
|
+
def add_tag(new_tag_value)
|
166
|
+
# Make sure tag is not already present
|
167
|
+
unless self.get_tags.include?(new_tag_value)
|
168
|
+
tag = Tag.new
|
169
|
+
tag.value = new_tag_value
|
170
|
+
self.tags << tag
|
171
|
+
end
|
172
|
+
return self.get_tags
|
173
|
+
end
|
174
|
+
|
175
|
+
alias :tag :add_tag
|
176
|
+
|
177
|
+
# Returns an array of tag values
|
178
|
+
def get_tags()
|
179
|
+
self.tags.collect { |t| t.value }
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
# Return the OtherId hash for the specified identier name
|
184
|
+
def get_other_id(name)
|
185
|
+
self.otherIds.each do |oi|
|
186
|
+
if oi.name == name
|
187
|
+
return oi
|
188
|
+
end
|
189
|
+
end
|
190
|
+
return nil
|
191
|
+
end
|
192
|
+
|
193
|
+
# Return the identifier value for the specified identier name
|
194
|
+
def get_identifier_value(key)
|
195
|
+
other_id = self.get_other_id(key)
|
196
|
+
if other_id != nil && other_id.value != nil
|
197
|
+
return other_id.value
|
198
|
+
end
|
199
|
+
raise "No #{key} indentifier found for druid #{@objectId}"
|
200
|
+
end
|
201
|
+
|
202
|
+
# Add a new name,value pair to the set of identifiers
|
203
|
+
def add_identifier(*args)
|
204
|
+
(key,value) = args.collect { |arg| arg.to_s }
|
205
|
+
if value.nil? and key =~ /:/
|
206
|
+
(key,value) = key.split(/:/,2)
|
207
|
+
end
|
208
|
+
|
209
|
+
other_id = self.get_other_id(key)
|
210
|
+
if (other_id != nil)
|
211
|
+
other_id.value = value
|
212
|
+
else
|
213
|
+
other_id = OtherId.new
|
214
|
+
other_id.name = key
|
215
|
+
other_id.value = value
|
216
|
+
@otherIds << other_id
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
def sourceId=(value)
|
221
|
+
if value.nil?
|
222
|
+
@sourceId.source = nil
|
223
|
+
@sourceId.value = nil
|
224
|
+
else
|
225
|
+
(source,value) = value.split(/:/,2)
|
226
|
+
|
227
|
+
@sourceId.source = source
|
228
|
+
@sourceId.value = value
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
# Return an array of strings where each entry consists of name:value
|
233
|
+
def get_id_pairs
|
234
|
+
pairs=Array.new
|
235
|
+
self.otherIds.collect do |other_id|
|
236
|
+
other_id.to_s
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
#another convience method to allow citationCreator=
|
241
|
+
def citationCreator=(creator)
|
242
|
+
if creator.is_a?(Array)
|
243
|
+
self.citationCreators = creator
|
244
|
+
elsif creator.is_a?(String)
|
245
|
+
self.citationCreators = [creator]
|
246
|
+
else
|
247
|
+
raise "Identity_metadata.citationCreator requires either a string or array. "
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
251
|
+
#takes a string of XML and constructs the object with all the instance variables added to the correct location.
|
252
|
+
def self.from_xml(xml="")
|
253
|
+
if xml.is_a?(File)
|
254
|
+
xml = xml.read
|
255
|
+
end
|
256
|
+
|
257
|
+
im = self.new(xml)
|
258
|
+
doc = Nokogiri::XML(xml)
|
259
|
+
|
260
|
+
children = doc.root.element_children #iterate through the nodes and map them to instance vars in the object.
|
261
|
+
children.each do |c|
|
262
|
+
if im.instance_variables.include?("@#{c.name}") or im.instance_variables.include?("@#{c.name}s")
|
263
|
+
if c.name == "sourceId" #SourceID already has a SourceID object made
|
264
|
+
im.sourceId.source = c["source"]
|
265
|
+
im.sourceId.value = c.text.strip
|
266
|
+
elsif c.name == "otherId" #otherID needs to be cast as an object and stored in an array
|
267
|
+
im.add_identifier(c['name'],c.text.strip)
|
268
|
+
elsif c.name == "tag" #tags also need to have objects created and stored in an array
|
269
|
+
im.add_tag(c.text.strip)
|
270
|
+
elsif c.name == "objectId" # objectId needs to be mapped to objectId attr_access
|
271
|
+
im.objectId = c.text.strip
|
272
|
+
elsif c.name == "citationTitle" #citationTitle also needs to be mapped to citationTitle attr_accessor
|
273
|
+
im.citationTitle = c.text.strip
|
274
|
+
elsif c.name == "adminPolicy"
|
275
|
+
im.adminPolicy = c.text.strip
|
276
|
+
elsif c.name == "agreementId"
|
277
|
+
im.agreementId = c.text.strip
|
278
|
+
else # everything else gets put into an attr_accessor array (note the added 's' on the attr_accessor.)
|
279
|
+
im.send("#{c.name}s").send("<<", c.text.strip)
|
280
|
+
end #if
|
281
|
+
end #if
|
282
|
+
end #each
|
283
|
+
|
284
|
+
return im
|
285
|
+
|
286
|
+
end #from_xml
|
287
|
+
|
288
|
+
end #class IdentityMetadata
|
metadata
ADDED
@@ -0,0 +1,462 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dor-services
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 2
|
9
|
+
- 4
|
10
|
+
version: 2.2.4
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Michael Klein
|
14
|
+
- Willy Mene
|
15
|
+
- Chris Fitzpatrick
|
16
|
+
- Richard Anderson
|
17
|
+
autorequire:
|
18
|
+
bindir: bin
|
19
|
+
cert_chain: []
|
20
|
+
|
21
|
+
date: 2013-04-03 00:00:00 Z
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
24
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - "="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 2
|
32
|
+
- 2
|
33
|
+
- 2
|
34
|
+
version: 2.2.2
|
35
|
+
prerelease: false
|
36
|
+
type: :runtime
|
37
|
+
name: active-fedora
|
38
|
+
requirement: *id001
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 15
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 0
|
49
|
+
- 8
|
50
|
+
version: 0.0.8
|
51
|
+
prerelease: false
|
52
|
+
type: :runtime
|
53
|
+
name: solr-ruby
|
54
|
+
requirement: *id002
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 113
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 4
|
65
|
+
- 3
|
66
|
+
- 1
|
67
|
+
version: 1.4.3.1
|
68
|
+
prerelease: false
|
69
|
+
type: :runtime
|
70
|
+
name: nokogiri
|
71
|
+
requirement: *id003
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 11
|
79
|
+
segments:
|
80
|
+
- 1
|
81
|
+
- 2
|
82
|
+
version: "1.2"
|
83
|
+
prerelease: false
|
84
|
+
type: :runtime
|
85
|
+
name: om
|
86
|
+
requirement: *id004
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 3
|
94
|
+
segments:
|
95
|
+
- 0
|
96
|
+
version: "0"
|
97
|
+
prerelease: false
|
98
|
+
type: :runtime
|
99
|
+
name: rest-client
|
100
|
+
requirement: *id005
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
hash: 3
|
108
|
+
segments:
|
109
|
+
- 0
|
110
|
+
version: "0"
|
111
|
+
prerelease: false
|
112
|
+
type: :runtime
|
113
|
+
name: validatable
|
114
|
+
requirement: *id006
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
hash: 3
|
122
|
+
segments:
|
123
|
+
- 0
|
124
|
+
version: "0"
|
125
|
+
prerelease: false
|
126
|
+
type: :runtime
|
127
|
+
name: uuidtools
|
128
|
+
requirement: *id007
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
hash: 3
|
136
|
+
segments:
|
137
|
+
- 0
|
138
|
+
version: "0"
|
139
|
+
prerelease: false
|
140
|
+
type: :runtime
|
141
|
+
name: json
|
142
|
+
requirement: *id008
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
hash: 3
|
150
|
+
segments:
|
151
|
+
- 0
|
152
|
+
version: "0"
|
153
|
+
prerelease: false
|
154
|
+
type: :runtime
|
155
|
+
name: ruby-cache
|
156
|
+
requirement: *id009
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
159
|
+
none: false
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
hash: 23
|
164
|
+
segments:
|
165
|
+
- 0
|
166
|
+
- 2
|
167
|
+
- 0
|
168
|
+
version: 0.2.0
|
169
|
+
prerelease: false
|
170
|
+
type: :runtime
|
171
|
+
name: mod-cons
|
172
|
+
requirement: *id010
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
175
|
+
none: false
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
hash: 3
|
180
|
+
segments:
|
181
|
+
- 0
|
182
|
+
version: "0"
|
183
|
+
prerelease: false
|
184
|
+
type: :runtime
|
185
|
+
name: systemu
|
186
|
+
requirement: *id011
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
189
|
+
none: false
|
190
|
+
requirements:
|
191
|
+
- - ">="
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
hash: 3
|
194
|
+
segments:
|
195
|
+
- 0
|
196
|
+
version: "0"
|
197
|
+
prerelease: false
|
198
|
+
type: :runtime
|
199
|
+
name: lyber-utils
|
200
|
+
requirement: *id012
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
203
|
+
none: false
|
204
|
+
requirements:
|
205
|
+
- - ~>
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
hash: 31
|
208
|
+
segments:
|
209
|
+
- 1
|
210
|
+
- 0
|
211
|
+
- 4
|
212
|
+
version: 1.0.4
|
213
|
+
prerelease: false
|
214
|
+
type: :runtime
|
215
|
+
name: solrizer
|
216
|
+
requirement: *id013
|
217
|
+
- !ruby/object:Gem::Dependency
|
218
|
+
version_requirements: &id014 !ruby/object:Gem::Requirement
|
219
|
+
none: false
|
220
|
+
requirements:
|
221
|
+
- - ">="
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
hash: 19
|
224
|
+
segments:
|
225
|
+
- 0
|
226
|
+
- 2
|
227
|
+
- 2
|
228
|
+
version: 0.2.2
|
229
|
+
prerelease: false
|
230
|
+
type: :development
|
231
|
+
name: equivalent-xml
|
232
|
+
requirement: *id014
|
233
|
+
- !ruby/object:Gem::Dependency
|
234
|
+
version_requirements: &id015 !ruby/object:Gem::Requirement
|
235
|
+
none: false
|
236
|
+
requirements:
|
237
|
+
- - ">="
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
hash: 3
|
240
|
+
segments:
|
241
|
+
- 0
|
242
|
+
version: "0"
|
243
|
+
prerelease: false
|
244
|
+
type: :development
|
245
|
+
name: fakeweb
|
246
|
+
requirement: *id015
|
247
|
+
- !ruby/object:Gem::Dependency
|
248
|
+
version_requirements: &id016 !ruby/object:Gem::Requirement
|
249
|
+
none: false
|
250
|
+
requirements:
|
251
|
+
- - ">="
|
252
|
+
- !ruby/object:Gem::Version
|
253
|
+
hash: 3
|
254
|
+
segments:
|
255
|
+
- 0
|
256
|
+
version: "0"
|
257
|
+
prerelease: false
|
258
|
+
type: :development
|
259
|
+
name: haml
|
260
|
+
requirement: *id016
|
261
|
+
- !ruby/object:Gem::Dependency
|
262
|
+
version_requirements: &id017 !ruby/object:Gem::Requirement
|
263
|
+
none: false
|
264
|
+
requirements:
|
265
|
+
- - ">="
|
266
|
+
- !ruby/object:Gem::Version
|
267
|
+
hash: 3
|
268
|
+
segments:
|
269
|
+
- 0
|
270
|
+
version: "0"
|
271
|
+
prerelease: false
|
272
|
+
type: :development
|
273
|
+
name: jhove-service
|
274
|
+
requirement: *id017
|
275
|
+
- !ruby/object:Gem::Dependency
|
276
|
+
version_requirements: &id018 !ruby/object:Gem::Requirement
|
277
|
+
none: false
|
278
|
+
requirements:
|
279
|
+
- - ">="
|
280
|
+
- !ruby/object:Gem::Version
|
281
|
+
hash: 13
|
282
|
+
segments:
|
283
|
+
- 0
|
284
|
+
- 4
|
285
|
+
- 1
|
286
|
+
version: 0.4.1
|
287
|
+
prerelease: false
|
288
|
+
type: :development
|
289
|
+
name: lyberteam-devel
|
290
|
+
requirement: *id018
|
291
|
+
- !ruby/object:Gem::Dependency
|
292
|
+
version_requirements: &id019 !ruby/object:Gem::Requirement
|
293
|
+
none: false
|
294
|
+
requirements:
|
295
|
+
- - ">="
|
296
|
+
- !ruby/object:Gem::Version
|
297
|
+
hash: 49
|
298
|
+
segments:
|
299
|
+
- 0
|
300
|
+
- 8
|
301
|
+
- 7
|
302
|
+
version: 0.8.7
|
303
|
+
prerelease: false
|
304
|
+
type: :development
|
305
|
+
name: rake
|
306
|
+
requirement: *id019
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
version_requirements: &id020 !ruby/object:Gem::Requirement
|
309
|
+
none: false
|
310
|
+
requirements:
|
311
|
+
- - ">="
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
hash: 3
|
314
|
+
segments:
|
315
|
+
- 0
|
316
|
+
version: "0"
|
317
|
+
prerelease: false
|
318
|
+
type: :development
|
319
|
+
name: rcov
|
320
|
+
requirement: *id020
|
321
|
+
- !ruby/object:Gem::Dependency
|
322
|
+
version_requirements: &id021 !ruby/object:Gem::Requirement
|
323
|
+
none: false
|
324
|
+
requirements:
|
325
|
+
- - ">="
|
326
|
+
- !ruby/object:Gem::Version
|
327
|
+
hash: 3
|
328
|
+
segments:
|
329
|
+
- 0
|
330
|
+
version: "0"
|
331
|
+
prerelease: false
|
332
|
+
type: :development
|
333
|
+
name: rdoc
|
334
|
+
requirement: *id021
|
335
|
+
- !ruby/object:Gem::Dependency
|
336
|
+
version_requirements: &id022 !ruby/object:Gem::Requirement
|
337
|
+
none: false
|
338
|
+
requirements:
|
339
|
+
- - <
|
340
|
+
- !ruby/object:Gem::Version
|
341
|
+
hash: 3
|
342
|
+
segments:
|
343
|
+
- 2
|
344
|
+
- 0
|
345
|
+
version: "2.0"
|
346
|
+
prerelease: false
|
347
|
+
type: :development
|
348
|
+
name: rspec
|
349
|
+
requirement: *id022
|
350
|
+
- !ruby/object:Gem::Dependency
|
351
|
+
version_requirements: &id023 !ruby/object:Gem::Requirement
|
352
|
+
none: false
|
353
|
+
requirements:
|
354
|
+
- - ">="
|
355
|
+
- !ruby/object:Gem::Version
|
356
|
+
hash: 3
|
357
|
+
segments:
|
358
|
+
- 0
|
359
|
+
version: "0"
|
360
|
+
prerelease: false
|
361
|
+
type: :development
|
362
|
+
name: ruby-debug
|
363
|
+
requirement: *id023
|
364
|
+
- !ruby/object:Gem::Dependency
|
365
|
+
version_requirements: &id024 !ruby/object:Gem::Requirement
|
366
|
+
none: false
|
367
|
+
requirements:
|
368
|
+
- - ">="
|
369
|
+
- !ruby/object:Gem::Version
|
370
|
+
hash: 3
|
371
|
+
segments:
|
372
|
+
- 0
|
373
|
+
version: "0"
|
374
|
+
prerelease: false
|
375
|
+
type: :development
|
376
|
+
name: yard
|
377
|
+
requirement: *id024
|
378
|
+
description: Contains classes to register objects and initialize workflows
|
379
|
+
email:
|
380
|
+
- mbklein@stanford.edu
|
381
|
+
executables: []
|
382
|
+
|
383
|
+
extensions: []
|
384
|
+
|
385
|
+
extra_rdoc_files: []
|
386
|
+
|
387
|
+
files:
|
388
|
+
- lib/datastreams/content_metadata_ds.rb
|
389
|
+
- lib/datastreams/embargo_metadata_ds.rb
|
390
|
+
- lib/datastreams/events_ds.rb
|
391
|
+
- lib/datastreams/identity_metadata_ds.rb
|
392
|
+
- lib/datastreams/ng_tidy.rb
|
393
|
+
- lib/datastreams/simple_dublin_core_ds.rb
|
394
|
+
- lib/datastreams/workflow_definition_ds.rb
|
395
|
+
- lib/datastreams/workflow_ds.rb
|
396
|
+
- lib/dor/admin_policy_object.rb
|
397
|
+
- lib/dor/base.rb
|
398
|
+
- lib/dor/cleanup_service.rb
|
399
|
+
- lib/dor/config.rb
|
400
|
+
- lib/dor/digital_stacks_service.rb
|
401
|
+
- lib/dor/druid_utils.rb
|
402
|
+
- lib/dor/embargo.rb
|
403
|
+
- lib/dor/exceptions.rb
|
404
|
+
- lib/dor/item.rb
|
405
|
+
- lib/dor/metadata_handlers/catalog_handler.rb
|
406
|
+
- lib/dor/metadata_handlers/mdtoolkit_handler.rb
|
407
|
+
- lib/dor/metadata_service.rb
|
408
|
+
- lib/dor/mods2dc.xslt
|
409
|
+
- lib/dor/provenance_metadata_service.rb
|
410
|
+
- lib/dor/registration_service.rb
|
411
|
+
- lib/dor/rsolr.rb
|
412
|
+
- lib/dor/sdr_ingest_service.rb
|
413
|
+
- lib/dor/search_service.rb
|
414
|
+
- lib/dor/suri_service.rb
|
415
|
+
- lib/dor/tei2dc.xslt
|
416
|
+
- lib/dor/workflow_object.rb
|
417
|
+
- lib/dor/workflow_service.rb
|
418
|
+
- lib/dor-services.rb
|
419
|
+
- lib/gsearch/demoFoxmlToSolr.xslt
|
420
|
+
- lib/gsearch/schema.xml
|
421
|
+
- lib/tasks/rdoc.rake
|
422
|
+
- lib/xml_models/foxml.rb
|
423
|
+
- lib/xml_models/identity_metadata/dublin_core.rb
|
424
|
+
- lib/xml_models/identity_metadata/identity_metadata.rb
|
425
|
+
homepage:
|
426
|
+
licenses: []
|
427
|
+
|
428
|
+
post_install_message:
|
429
|
+
rdoc_options: []
|
430
|
+
|
431
|
+
require_paths:
|
432
|
+
- lib
|
433
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
434
|
+
none: false
|
435
|
+
requirements:
|
436
|
+
- - ">="
|
437
|
+
- !ruby/object:Gem::Version
|
438
|
+
hash: 3
|
439
|
+
segments:
|
440
|
+
- 0
|
441
|
+
version: "0"
|
442
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
443
|
+
none: false
|
444
|
+
requirements:
|
445
|
+
- - ">="
|
446
|
+
- !ruby/object:Gem::Version
|
447
|
+
hash: 23
|
448
|
+
segments:
|
449
|
+
- 1
|
450
|
+
- 3
|
451
|
+
- 6
|
452
|
+
version: 1.3.6
|
453
|
+
requirements: []
|
454
|
+
|
455
|
+
rubyforge_project:
|
456
|
+
rubygems_version: 1.8.24
|
457
|
+
signing_key:
|
458
|
+
specification_version: 3
|
459
|
+
summary: Ruby implmentation of DOR services used by the SULAIR Digital Library
|
460
|
+
test_files: []
|
461
|
+
|
462
|
+
has_rdoc:
|