lyber-core 0.9.6.2 → 0.9.6.2.3
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 +15 -0
- data/lib/dor/workflow_service.rb +30 -29
- data/lib/lyber_core/robots/robot.rb +40 -40
- metadata +236 -279
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MTk4OWM3ZjU4MzBjMWM4MWNkNjE5YjEzYjhiNmQ3NGZiNWU5MDkxNw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MzdiOTUzNGVkYzhmZTBiMzE1MzdiZTFiZmU5ZjYyNzQ2NWY2OTBkMg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZTQwMjNkYTBmN2RjYmQ1ODg2ODNhZDRlNzRmMGU0N2E4ZTZkZDYwY2E2NWQw
|
10
|
+
ZDY0YmNlNGU4MWM2MTdjMWY2ODZhNGE4ODc2ZDMxYmY5NjFkMDI3NGE4ZDY2
|
11
|
+
OTJhMDkxODM0Mzc2ZTc2Y2U1NGM0MDEzMmE4MzIxMjk2NWFhMWU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
N2NjOGRkZjM5ZDE3OTgzMDYwMTgwMjBkZjdiYjZjMTRhZDZhOTgwNmM4MjEx
|
14
|
+
ZDI2NmQ3MzMxOTUwMTdjZTNiNjk4MTdiNTkzNTBhMjNlZmM2NDFjY2VhMTY5
|
15
|
+
ZDZkM2MyZjExNTNjMjRkY2Y2OTk3MDUzZWQxY2Q5ZTUwNmE1YmQ=
|
data/lib/dor/workflow_service.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
|
2
2
|
module Dor
|
3
|
-
|
3
|
+
|
4
4
|
# Methods to create and update workflow
|
5
5
|
#
|
6
6
|
# ==== Required Constants
|
7
7
|
# - Dor::CREATE_WORKFLOW : true or false. Can be used to turn of workflow in a particular environment, like development
|
8
8
|
# - Dor::WF_URI : The URI to the workflow service. An example URI is 'http://lyberservices-dev.stanford.edu/workflow'
|
9
9
|
module WorkflowService
|
10
|
-
|
10
|
+
|
11
11
|
# Creates a workflow for a given object in the repository. If this particular workflow for this objects exists,
|
12
|
-
# it will replace the old workflow with wf_xml passed to this method.
|
12
|
+
# it will replace the old workflow with wf_xml passed to this method.
|
13
13
|
# Returns true on success. Caller must handle any exceptions
|
14
14
|
#
|
15
15
|
# == Parameters
|
@@ -17,26 +17,26 @@ module Dor
|
|
17
17
|
# - <b>druid</b> - The id of the object
|
18
18
|
# - <b>workflow_name</b> - The name of the workflow you want to create
|
19
19
|
# - <b>wf_xml</b> - The xml that represents the workflow
|
20
|
-
#
|
20
|
+
#
|
21
21
|
def WorkflowService.create_workflow(repo, druid, workflow_name, wf_xml)
|
22
22
|
return true unless(Dor::CREATE_WORKFLOW)
|
23
|
-
|
23
|
+
|
24
24
|
full_uri = ''
|
25
25
|
full_uri << Dor::WF_URI << '/' << repo << '/objects/' << druid << '/workflows/' << workflow_name
|
26
|
-
|
27
|
-
# On success, an empty body is sent
|
26
|
+
|
27
|
+
# On success, an empty body is sent
|
28
28
|
LyberCore::Connection.put(full_uri, wf_xml){|response| true}
|
29
29
|
end
|
30
|
-
|
31
|
-
# Updates the status of one step in a workflow.
|
30
|
+
|
31
|
+
# Updates the status of one step in a workflow.
|
32
32
|
# Returns true on success. Caller must handle any exceptions
|
33
33
|
#
|
34
34
|
# == Required Parameters
|
35
35
|
# - <b>repo</b> - The repository the object resides in. The service recoginzes "dor" and "sdr" at the moment
|
36
36
|
# - <b>druid</b> - The id of the object
|
37
|
-
# - <b>workflow_name</b> - The name of the workflow
|
37
|
+
# - <b>workflow_name</b> - The name of the workflow
|
38
38
|
# - <b>status</b> - The status that you want to set. Typical statuses are 'waiting', 'completed', 'error', but could be any string
|
39
|
-
#
|
39
|
+
#
|
40
40
|
# == Optional Parameters
|
41
41
|
# - <b>elapsed</b> - The number of seconds it took to complete this step. Can have a decimal. Is set to 0 if not passed in.
|
42
42
|
# - <b>lifecycle</b> - Bookeeping label for this particular workflow step. Examples are: 'registered', 'shelved'
|
@@ -45,20 +45,21 @@ module Dor
|
|
45
45
|
# The method does an HTTP PUT to the URL defined in Dor::WF_URI. As an example:
|
46
46
|
# PUT "/dor/objects/pid:123/workflows/GoogleScannedWF/convert"
|
47
47
|
# <process name=\"convert\" status=\"completed\" />"
|
48
|
-
def WorkflowService.update_workflow_status(repo, druid, workflow, process, status, elapsed = 0, lifecycle = nil)
|
48
|
+
def WorkflowService.update_workflow_status(repo, druid, workflow, process, status, elapsed = 0, lifecycle = nil, note = nil)
|
49
49
|
return true unless(Dor::CREATE_WORKFLOW)
|
50
|
-
|
50
|
+
|
51
51
|
uri = ''
|
52
|
-
uri << Dor::WF_URI << '/' << repo << '/objects/' << druid << '/workflows/' << workflow << '/' << process
|
53
|
-
process_xml = '<process name="'+ process + '" status="' + status + '" '
|
52
|
+
uri << Dor::WF_URI << '/' << repo << '/objects/' << druid << '/workflows/' << workflow << '/' << process
|
53
|
+
process_xml = '<process name="'+ process + '" status="' + status + '" '
|
54
54
|
process_xml << 'elapsed="' + elapsed.to_s + '" '
|
55
55
|
process_xml << 'lifecycle="' + lifecycle + '" ' if(lifecycle)
|
56
|
-
process_xml << '
|
57
|
-
|
58
|
-
|
56
|
+
process_xml << 'note="' + note + '" ' if(note)
|
57
|
+
process_xml << '/>'
|
58
|
+
|
59
|
+
# On success, an empty body is sent
|
59
60
|
LyberCore::Connection.put(uri, process_xml) {|response| true}
|
60
61
|
end
|
61
|
-
|
62
|
+
|
62
63
|
#
|
63
64
|
# Retrieves the process status of the given workflow for the given object identifier
|
64
65
|
#
|
@@ -69,26 +70,26 @@ module Dor
|
|
69
70
|
|
70
71
|
doc = Nokogiri::XML(workflow_md)
|
71
72
|
raise Exception.new("Unable to parse response:\n#{workflow_md}") if(doc.root.nil?)
|
72
|
-
|
73
|
+
|
73
74
|
status = doc.root.at_xpath("//process[@name='#{process}']/@status").content
|
74
75
|
return status
|
75
76
|
end
|
76
|
-
|
77
|
+
|
77
78
|
def WorkflowService.get_workflow_xml(repo, druid, workflow)
|
78
79
|
uri = ''
|
79
80
|
uri << Dor::WF_URI << '/' << repo << '/objects/' << druid << '/workflows/' << workflow
|
80
81
|
workflow_md = LyberCore::Connection.get(uri)
|
81
|
-
end
|
82
|
+
end
|
82
83
|
|
83
|
-
# Updates the status of one step in a workflow to error.
|
84
|
+
# Updates the status of one step in a workflow to error.
|
84
85
|
# Returns true on success. Caller must handle any exceptions
|
85
86
|
#
|
86
87
|
# == Required Parameters
|
87
88
|
# - <b>repo</b> - The repository the object resides in. The service recoginzes "dor" and "sdr" at the moment
|
88
89
|
# - <b>druid</b> - The id of the object
|
89
|
-
# - <b>workflow_name</b> - The name of the workflow
|
90
|
+
# - <b>workflow_name</b> - The name of the workflow
|
90
91
|
# - <b>error_msg</b> - The error message. Ideally, this is a brief message describing the error
|
91
|
-
#
|
92
|
+
#
|
92
93
|
# == Optional Parameters
|
93
94
|
# - <b>error_txt</b> - A slot to hold more information about the error, like a full stacktrace
|
94
95
|
#
|
@@ -99,11 +100,11 @@ module Dor
|
|
99
100
|
def WorkflowService.update_workflow_error_status(repo, druid, workflow, process, error_msg, error_txt = nil)
|
100
101
|
uri = ''
|
101
102
|
uri << Dor::WF_URI << '/' << repo << '/objects/' << druid << '/workflows/' << workflow << '/' << process
|
102
|
-
process_xml = '<process name="'+ process + '" status="error" errorMessage="' + error_msg + '" '
|
103
|
+
process_xml = '<process name="'+ process + '" status="error" errorMessage="' + error_msg + '" '
|
103
104
|
process_xml << 'errorText="' + error_txt + '" ' if(error_txt)
|
104
|
-
process_xml << '/>'
|
105
|
-
|
106
|
-
# On success, an empty body is sent
|
105
|
+
process_xml << '/>'
|
106
|
+
|
107
|
+
# On success, an empty body is sent
|
107
108
|
LyberCore::Connection.put(uri, process_xml) {|response| true}
|
108
109
|
end
|
109
110
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# == Usage
|
1
|
+
# == Usage
|
2
2
|
# ruby_cl_skeleton [options] source_file
|
3
3
|
#
|
4
4
|
# For help use: ruby_cl_skeleton -h
|
@@ -13,9 +13,9 @@ module LyberCore
|
|
13
13
|
class Robot
|
14
14
|
attr_accessor :workflow_name
|
15
15
|
attr_accessor :workflow_step
|
16
|
-
|
16
|
+
|
17
17
|
# A LyberCore::Robots::Workflow object
|
18
|
-
attr_accessor :workflow
|
18
|
+
attr_accessor :workflow
|
19
19
|
attr_accessor :collection_name
|
20
20
|
attr_accessor :workspace
|
21
21
|
attr_accessor :args
|
@@ -23,7 +23,7 @@ module LyberCore
|
|
23
23
|
|
24
24
|
|
25
25
|
# Available options
|
26
|
-
# - :collection_name - The collection this workflow should work with.
|
26
|
+
# - :collection_name - The collection this workflow should work with.
|
27
27
|
# Defined as a subdirectory within ROBOT_ROOT/config/workflows/your_workflow/your_collection
|
28
28
|
# - :workspace - Full path of where to find content for a particular workflow
|
29
29
|
# - :logfile - Where to write log messages
|
@@ -31,7 +31,7 @@ module LyberCore
|
|
31
31
|
def initialize(workflow_name, workflow_step, args = {})
|
32
32
|
@workflow_name = workflow_name
|
33
33
|
@workflow_step = workflow_step
|
34
|
-
@collection_name = args[:collection_name]
|
34
|
+
@collection_name = args[:collection_name]
|
35
35
|
@opts = args
|
36
36
|
|
37
37
|
if args[:logfile]
|
@@ -42,30 +42,30 @@ module LyberCore
|
|
42
42
|
LyberCore::Log.set_logfile(robot_logfile)
|
43
43
|
end
|
44
44
|
|
45
|
-
LyberCore::Log.set_level(args[:loglevel]) if args[:loglevel]
|
46
|
-
|
45
|
+
LyberCore::Log.set_level(args[:loglevel]) if args[:loglevel]
|
46
|
+
|
47
47
|
# Set defaults
|
48
48
|
@options = OpenStruct.new
|
49
49
|
self.parse_options
|
50
50
|
self.create_workflow
|
51
51
|
self.set_workspace
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
# Some workflows require a directory where their content lives
|
55
55
|
# If a robot is invoked with a :workspace => true option, its @workspace
|
56
|
-
# should be set from the value in
|
56
|
+
# should be set from the value in
|
57
57
|
def set_workspace
|
58
58
|
if(@opts[:workspace])
|
59
59
|
@workspace = LyberCore::Robots::Workspace.new(@workflow_name, @collection_name)
|
60
60
|
LyberCore::Log.debug("workspace = #{workspace.inspect}")
|
61
61
|
end
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
# Create the workflow at instantiation, not when we start running the robot.
|
65
65
|
# That way we can do better error checking and ensure that everything is going
|
66
66
|
# to run okay before we actually start things.
|
67
67
|
def create_workflow
|
68
|
-
|
68
|
+
|
69
69
|
unless defined?(WORKFLOW_URI)
|
70
70
|
LyberCore::Log.fatal "FATAL: WORKFLOW_URI is not defined"
|
71
71
|
LyberCore::Log.fatal "Usually this is a value like 'http://lyberservices-dev.stanford.edu/workflow'"
|
@@ -75,17 +75,17 @@ module LyberCore
|
|
75
75
|
LyberCore::Log.debug("About to instatiate a Workflow object
|
76
76
|
-- LyberCore::Robots::Workflow.new(#{@workflow_name},#{collection_name}")
|
77
77
|
@workflow = LyberCore::Robots::Workflow.new(@workflow_name, {:logger => @logger, :collection_name => @collection_name})
|
78
|
-
|
78
|
+
|
79
79
|
end
|
80
|
-
|
81
|
-
# == Create a new workflow
|
80
|
+
|
81
|
+
# == Create a new workflow
|
82
82
|
def start()
|
83
|
-
|
83
|
+
|
84
84
|
begin
|
85
85
|
LyberCore::Log.debug("Starting robot...")
|
86
86
|
|
87
87
|
queue = @workflow.queue(@workflow_step)
|
88
|
-
|
88
|
+
|
89
89
|
# If we have arguments, parse out the parts that indicate druids
|
90
90
|
if(@options.file or @options.druid)
|
91
91
|
queue.enqueue_druids(get_druid_list)
|
@@ -100,21 +100,21 @@ module LyberCore
|
|
100
100
|
rescue LyberCore::Exceptions::EmptyQueue
|
101
101
|
LyberCore::Log.info("Empty queue -- no objects to process")
|
102
102
|
rescue Exception => e
|
103
|
-
LyberCore::Log.error(e.
|
103
|
+
LyberCore::Log.error(e.message)
|
104
104
|
LyberCore::Log.error(e.backtrace.join("\n"))
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
108
|
# Generate a list of druids to process
|
109
109
|
def get_druid_list
|
110
|
-
|
110
|
+
|
111
111
|
druid_list = Array.new
|
112
|
-
|
112
|
+
|
113
113
|
# append any druids passed explicitly
|
114
114
|
if(@options.druid)
|
115
115
|
druid_list << @options.druid
|
116
116
|
end
|
117
|
-
|
117
|
+
|
118
118
|
# identifier list is in a file
|
119
119
|
if (@options.file && File.exist?(@options.file))
|
120
120
|
File.open(@options.file) do |file|
|
@@ -126,7 +126,7 @@ module LyberCore
|
|
126
126
|
end
|
127
127
|
end
|
128
128
|
end
|
129
|
-
|
129
|
+
|
130
130
|
return druid_list
|
131
131
|
end
|
132
132
|
|
@@ -144,18 +144,18 @@ module LyberCore
|
|
144
144
|
end
|
145
145
|
queue.print_stats()
|
146
146
|
end
|
147
|
-
|
147
|
+
|
148
148
|
# Override this method in your robot instance. The method in this base class will throw an exception if it is not overriden.
|
149
149
|
def process_item(work_item)
|
150
150
|
#to be overridden by child classes
|
151
151
|
raise 'You must implement this method in your subclass'
|
152
|
-
end
|
153
|
-
|
152
|
+
end
|
153
|
+
|
154
154
|
# ###########################
|
155
|
-
# command line option parsing
|
156
|
-
|
155
|
+
# command line option parsing
|
156
|
+
|
157
157
|
def parse_options
|
158
|
-
|
158
|
+
|
159
159
|
options = {}
|
160
160
|
|
161
161
|
o = OptionParser.new do |opts|
|
@@ -165,50 +165,50 @@ module LyberCore
|
|
165
165
|
opts.on("-d DRUID", "--druid DRUID", "Pass in a druid to process") do |d|
|
166
166
|
@options.druid = d
|
167
167
|
end
|
168
|
-
|
168
|
+
|
169
169
|
opts.on("-f", "--file FILE", "Pass in a file of druids to process") do |f|
|
170
170
|
@options.file = f
|
171
171
|
end
|
172
|
-
|
172
|
+
|
173
173
|
end
|
174
|
-
|
174
|
+
|
175
175
|
# Parse the command line options and ignore anything not specified above
|
176
176
|
begin
|
177
177
|
o.parse!
|
178
178
|
rescue OptionParser::InvalidOption => e
|
179
179
|
LyberCore::Log.debug("e.inspect")
|
180
180
|
rescue OptionParser::ParseError => e
|
181
|
-
LyberCore::Log.error("Couldn't parse options: #{e.backtrace}")
|
181
|
+
LyberCore::Log.error("Couldn't parse options: #{e.backtrace}")
|
182
182
|
raise e
|
183
183
|
end
|
184
|
-
|
184
|
+
|
185
185
|
end
|
186
186
|
|
187
187
|
# def output_options
|
188
188
|
# puts "Options:\n"
|
189
|
-
#
|
190
|
-
# @options.marshal_dump.each do |name, val|
|
189
|
+
#
|
190
|
+
# @options.marshal_dump.each do |name, val|
|
191
191
|
# puts " #{name} = #{val}"
|
192
192
|
# end
|
193
193
|
# end
|
194
|
-
#
|
194
|
+
#
|
195
195
|
# def output_help
|
196
196
|
# output_version
|
197
197
|
# RDoc::usage() #exits app
|
198
198
|
# end
|
199
|
-
#
|
199
|
+
#
|
200
200
|
# def output_usage
|
201
201
|
# RDoc::usage('usage') # gets usage from comments above
|
202
202
|
# end
|
203
|
-
#
|
203
|
+
#
|
204
204
|
# def output_version
|
205
205
|
# puts "#{File.basename(__FILE__)} version #{VERSION}"
|
206
206
|
# end
|
207
|
-
|
207
|
+
|
208
208
|
# ##################################
|
209
|
-
# end of command line option parsing
|
209
|
+
# end of command line option parsing
|
210
210
|
# ##################################
|
211
|
-
|
211
|
+
|
212
212
|
end # end of class
|
213
213
|
end # end of Robots module
|
214
214
|
end # end of LyberCore module
|
metadata
CHANGED
@@ -1,16 +1,9 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: lyber-core
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: false
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
- 6
|
10
|
-
- 2
|
11
|
-
version: 0.9.6.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.6.2.3
|
12
5
|
platform: ruby
|
13
|
-
authors:
|
6
|
+
authors:
|
14
7
|
- Alpana Pande
|
15
8
|
- Bess Sadler
|
16
9
|
- Chris Fitzpatrick
|
@@ -20,297 +13,278 @@ authors:
|
|
20
13
|
autorequire:
|
21
14
|
bindir: bin
|
22
15
|
cert_chain: []
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
dependencies:
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
hash: 3
|
34
|
-
segments:
|
35
|
-
- 0
|
36
|
-
version: "0"
|
37
|
-
type: :runtime
|
16
|
+
date: 2014-11-11 00:00:00.000000000 Z
|
17
|
+
dependencies:
|
18
|
+
- !ruby/object:Gem::Dependency
|
38
19
|
name: actionpack
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - ! '>='
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '0'
|
25
|
+
type: :runtime
|
39
26
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
- 6
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '0'
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: active-fedora
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - '='
|
37
|
+
- !ruby/object:Gem::Version
|
52
38
|
version: 1.2.6
|
53
39
|
type: :runtime
|
54
|
-
name: active-fedora
|
55
40
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
- 0
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - '='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.2.6
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: bagit
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
68
52
|
version: 0.1.0
|
69
53
|
type: :runtime
|
70
|
-
name: bagit
|
71
54
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
- 3
|
84
|
-
- 1
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ! '>='
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: 0.1.0
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: nokogiri
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '='
|
65
|
+
- !ruby/object:Gem::Version
|
85
66
|
version: 1.4.3.1
|
86
67
|
type: :runtime
|
87
|
-
name: nokogiri
|
88
68
|
prerelease: false
|
89
|
-
version_requirements:
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - '='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 1.4.3.1
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: roxml
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
94
78
|
- - <=
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
hash: 9
|
97
|
-
segments:
|
98
|
-
- 3
|
99
|
-
- 1
|
100
|
-
- 5
|
79
|
+
- !ruby/object:Gem::Version
|
101
80
|
version: 3.1.5
|
102
81
|
type: :runtime
|
103
|
-
name: roxml
|
104
82
|
prerelease: false
|
105
|
-
version_requirements:
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
- 8
|
83
|
+
version_requirements: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - <=
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 3.1.5
|
88
|
+
- !ruby/object:Gem::Dependency
|
89
|
+
name: solr-ruby
|
90
|
+
requirement: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
117
94
|
version: 0.0.8
|
118
95
|
type: :runtime
|
119
|
-
name: solr-ruby
|
120
96
|
prerelease: false
|
121
|
-
version_requirements:
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
hash: 17
|
129
|
-
segments:
|
130
|
-
- 0
|
131
|
-
- 3
|
132
|
-
- 1
|
133
|
-
version: 0.3.1
|
134
|
-
type: :runtime
|
97
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 0.0.8
|
102
|
+
- !ruby/object:Gem::Dependency
|
135
103
|
name: solrizer
|
104
|
+
requirement: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ~>
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '1.1'
|
109
|
+
type: :runtime
|
136
110
|
prerelease: false
|
137
|
-
version_requirements:
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
- 0
|
111
|
+
version_requirements: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ~>
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '1.1'
|
116
|
+
- !ruby/object:Gem::Dependency
|
117
|
+
name: systemu
|
118
|
+
requirement: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ! '>='
|
121
|
+
- !ruby/object:Gem::Version
|
149
122
|
version: 1.2.0
|
150
123
|
type: :runtime
|
151
|
-
name: systemu
|
152
124
|
prerelease: false
|
153
|
-
version_requirements:
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
hash: 3
|
161
|
-
segments:
|
162
|
-
- 0
|
163
|
-
version: "0"
|
164
|
-
type: :runtime
|
125
|
+
version_requirements: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: 1.2.0
|
130
|
+
- !ruby/object:Gem::Dependency
|
165
131
|
name: validatable
|
132
|
+
requirement: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
137
|
+
type: :runtime
|
166
138
|
prerelease: false
|
167
|
-
version_requirements:
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
hash: 3
|
175
|
-
segments:
|
176
|
-
- 0
|
177
|
-
version: "0"
|
178
|
-
type: :development
|
139
|
+
version_requirements: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - ! '>='
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
144
|
+
- !ruby/object:Gem::Dependency
|
179
145
|
name: fakeweb
|
180
|
-
|
181
|
-
|
182
|
-
- !
|
183
|
-
|
184
|
-
|
185
|
-
requirements:
|
186
|
-
- - ">="
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
hash: 3
|
189
|
-
segments:
|
190
|
-
- 0
|
191
|
-
version: "0"
|
146
|
+
requirement: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
192
151
|
type: :development
|
193
|
-
name: haml
|
194
152
|
prerelease: false
|
195
|
-
version_requirements:
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: haml
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ! '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
206
165
|
type: :development
|
166
|
+
prerelease: false
|
167
|
+
version_requirements: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - ! '>='
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
- !ruby/object:Gem::Dependency
|
207
173
|
name: pony
|
174
|
+
requirement: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - ! '>='
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '0'
|
179
|
+
type: :development
|
208
180
|
prerelease: false
|
209
|
-
version_requirements:
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
- 7
|
181
|
+
version_requirements: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ! '>='
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
- !ruby/object:Gem::Dependency
|
187
|
+
name: rake
|
188
|
+
requirement: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ! '>='
|
191
|
+
- !ruby/object:Gem::Version
|
221
192
|
version: 0.8.7
|
222
193
|
type: :development
|
223
|
-
name: rake
|
224
194
|
prerelease: false
|
225
|
-
version_requirements:
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
- !ruby/object:Gem::Version
|
232
|
-
hash: 3
|
233
|
-
segments:
|
234
|
-
- 0
|
235
|
-
version: "0"
|
236
|
-
type: :development
|
195
|
+
version_requirements: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - ! '>='
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: 0.8.7
|
200
|
+
- !ruby/object:Gem::Dependency
|
237
201
|
name: rcov
|
238
|
-
|
239
|
-
|
240
|
-
- !
|
241
|
-
|
242
|
-
|
243
|
-
requirements:
|
244
|
-
- - ">="
|
245
|
-
- !ruby/object:Gem::Version
|
246
|
-
hash: 3
|
247
|
-
segments:
|
248
|
-
- 0
|
249
|
-
version: "0"
|
202
|
+
requirement: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - ! '>='
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '0'
|
250
207
|
type: :development
|
208
|
+
prerelease: false
|
209
|
+
version_requirements: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - ! '>='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
- !ruby/object:Gem::Dependency
|
251
215
|
name: rdoc
|
216
|
+
requirement: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - ! '>='
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: '0'
|
221
|
+
type: :development
|
252
222
|
prerelease: false
|
253
|
-
version_requirements:
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
223
|
+
version_requirements: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - ! '>='
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '0'
|
228
|
+
- !ruby/object:Gem::Dependency
|
229
|
+
name: rspec
|
230
|
+
requirement: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
258
232
|
- - <
|
259
|
-
- !ruby/object:Gem::Version
|
260
|
-
|
261
|
-
segments:
|
262
|
-
- 2
|
263
|
-
- 0
|
264
|
-
version: "2.0"
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '2.0'
|
265
235
|
type: :development
|
266
|
-
name: rspec
|
267
236
|
prerelease: false
|
268
|
-
version_requirements:
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
- !ruby/object:Gem::Version
|
275
|
-
hash: 3
|
276
|
-
segments:
|
277
|
-
- 0
|
278
|
-
version: "0"
|
279
|
-
type: :development
|
237
|
+
version_requirements: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - <
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '2.0'
|
242
|
+
- !ruby/object:Gem::Dependency
|
280
243
|
name: ruby-debug
|
281
|
-
|
282
|
-
|
283
|
-
- !
|
284
|
-
|
285
|
-
|
286
|
-
requirements:
|
287
|
-
- - ">="
|
288
|
-
- !ruby/object:Gem::Version
|
289
|
-
hash: 3
|
290
|
-
segments:
|
291
|
-
- 0
|
292
|
-
version: "0"
|
244
|
+
requirement: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - ! '>='
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '0'
|
293
249
|
type: :development
|
250
|
+
prerelease: false
|
251
|
+
version_requirements: !ruby/object:Gem::Requirement
|
252
|
+
requirements:
|
253
|
+
- - ! '>='
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: '0'
|
256
|
+
- !ruby/object:Gem::Dependency
|
294
257
|
name: yard
|
258
|
+
requirement: !ruby/object:Gem::Requirement
|
259
|
+
requirements:
|
260
|
+
- - ! '>='
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '0'
|
263
|
+
type: :development
|
295
264
|
prerelease: false
|
296
|
-
version_requirements:
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
265
|
+
version_requirements: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - ! '>='
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: '0'
|
270
|
+
description: ! 'Contains classes to make http connections with a client-cert, use
|
271
|
+
Jhove, and call Suri
|
272
|
+
|
273
|
+
Also contains core classes to build robots'
|
274
|
+
email:
|
301
275
|
- wmene@stanford.edu
|
302
276
|
executables: []
|
303
|
-
|
304
277
|
extensions: []
|
305
|
-
|
306
278
|
extra_rdoc_files: []
|
307
|
-
|
308
|
-
|
279
|
+
files:
|
280
|
+
- LICENSE
|
281
|
+
- README.rdoc
|
309
282
|
- lib/dlss_service.rb
|
310
283
|
- lib/dor/base.rb
|
311
284
|
- lib/dor/suri_service.rb
|
312
285
|
- lib/dor/workflow_service.rb
|
313
286
|
- lib/dor_service.rb
|
287
|
+
- lib/lyber_core.rb
|
314
288
|
- lib/lyber_core/connection.rb
|
315
289
|
- lib/lyber_core/destroyer.rb
|
316
290
|
- lib/lyber_core/exceptions/empty_queue.rb
|
@@ -321,51 +295,34 @@ files:
|
|
321
295
|
- lib/lyber_core/robots/work_queue.rb
|
322
296
|
- lib/lyber_core/robots/workflow.rb
|
323
297
|
- lib/lyber_core/robots/workspace.rb
|
298
|
+
- lib/lyber_core/utils.rb
|
324
299
|
- lib/lyber_core/utils/bagit_bag.rb
|
325
300
|
- lib/lyber_core/utils/checksum_validate.rb
|
326
301
|
- lib/lyber_core/utils/file_utilities.rb
|
327
|
-
- lib/lyber_core/utils.rb
|
328
|
-
- lib/lyber_core.rb
|
329
302
|
- lib/roxml_models/identity_metadata/dublin_core.rb
|
330
303
|
- lib/roxml_models/identity_metadata/identity_metadata.rb
|
331
304
|
- lib/tasks/rdoc.rake
|
332
|
-
- LICENSE
|
333
|
-
- README.rdoc
|
334
|
-
has_rdoc: true
|
335
305
|
homepage: http://github.com/wmene/lyber-core
|
336
306
|
licenses: []
|
337
|
-
|
307
|
+
metadata: {}
|
338
308
|
post_install_message:
|
339
309
|
rdoc_options: []
|
340
|
-
|
341
|
-
require_paths:
|
310
|
+
require_paths:
|
342
311
|
- lib
|
343
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
353
|
-
none: false
|
354
|
-
requirements:
|
355
|
-
- - ">="
|
356
|
-
- !ruby/object:Gem::Version
|
357
|
-
hash: 23
|
358
|
-
segments:
|
359
|
-
- 1
|
360
|
-
- 3
|
361
|
-
- 6
|
312
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
313
|
+
requirements:
|
314
|
+
- - ! '>='
|
315
|
+
- !ruby/object:Gem::Version
|
316
|
+
version: '0'
|
317
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
318
|
+
requirements:
|
319
|
+
- - ! '>='
|
320
|
+
- !ruby/object:Gem::Version
|
362
321
|
version: 1.3.6
|
363
322
|
requirements: []
|
364
|
-
|
365
323
|
rubyforge_project:
|
366
|
-
rubygems_version:
|
324
|
+
rubygems_version: 2.4.3
|
367
325
|
signing_key:
|
368
|
-
specification_version:
|
326
|
+
specification_version: 4
|
369
327
|
summary: Core services used by the SULAIR Digital Library
|
370
328
|
test_files: []
|
371
|
-
|