Class: Dor::Workflow::Client::LifecycleRoutes
- Inherits:
-
Object
- Object
- Dor::Workflow::Client::LifecycleRoutes
- Defined in:
- lib/dor/workflow/client/lifecycle_routes.rb
Overview
Makes requests relating to a lifecycle
Instance Method Summary collapse
-
#active_lifecycle(repo, druid, milestone_name) ⇒ Time
Returns the Date for a requested milestone ONLY for the current version.
-
#initialize(requestor:) ⇒ LifecycleRoutes
constructor
A new instance of LifecycleRoutes.
-
#lifecycle(repo, druid, milestone_name, version: nil) ⇒ Time
Returns the Date for a requested milestone from workflow lifecycle.
- #milestones(repo, druid) ⇒ Hash
Constructor Details
#initialize(requestor:) ⇒ LifecycleRoutes
Returns a new instance of LifecycleRoutes.
8 9 10 |
# File 'lib/dor/workflow/client/lifecycle_routes.rb', line 8 def initialize(requestor:) @requestor = requestor end |
Instance Method Details
#active_lifecycle(repo, druid, milestone_name) ⇒ Time
Returns the Date for a requested milestone ONLY for the current version. This is slow as the workflow server will query dor-services-app for the version. A better approach is #lifecycle with the version tag.
31 32 33 |
# File 'lib/dor/workflow/client/lifecycle_routes.rb', line 31 def active_lifecycle(repo, druid, milestone_name) filter_milestone(query_lifecycle(repo, druid, active_only: true), milestone_name) end |
#lifecycle(repo, druid, milestone_name, version: nil) ⇒ Time
Returns the Date for a requested milestone from workflow lifecycle
19 20 21 |
# File 'lib/dor/workflow/client/lifecycle_routes.rb', line 19 def lifecycle(repo, druid, milestone_name, version: nil) filter_milestone(query_lifecycle(repo, druid, version: version), milestone_name) end |
#milestones(repo, druid) ⇒ Hash
36 37 38 39 40 41 |
# File 'lib/dor/workflow/client/lifecycle_routes.rb', line 36 def milestones(repo, druid) doc = query_lifecycle(repo, druid) doc.xpath('//lifecycle/milestone').collect do |node| { milestone: node.text, at: Time.parse(node['date']), version: node['version'] } end end |