dor-services 6.2.0 → 6.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9ab63108ab2c8ddd29600d7a9facf709a67dc52474d7c0de6becac108664807
4
- data.tar.gz: 332ce5d6ceef2432a7135788bc87de7d28ec108ff9820bc5c4e253ba0f8f700a
3
+ metadata.gz: 8610285f6083a621745b30d7bd063bf732e33052ff2f8be6ea6fd5f976bbcfe1
4
+ data.tar.gz: 0f235f97bdc5e5102cc675a2789eafce2cf12a10fa1ba06772b69f864707e476
5
5
  SHA512:
6
- metadata.gz: 5742a34bb7b5250df9ca07b5c2b4291f59b165acc1050dbc9f76f9bd185d4a5bd0bc961552ab20e40d13b42c631ac0c0c3c515347ae9476b2811ec5dd75f2ad0
7
- data.tar.gz: edb36ac7a3bcce46e5d3111c4a23bf69fed05afda48c82d42f0bbcbcca564d128b180774d7cf6231e168e7b3301af40a15a552f57f226a97259e582173a1c29d
6
+ metadata.gz: 1bbe06840429b3612a827375b54022fc43ea9318153acc4e4b68c747c025f0e12b460630a211ddbdd0a9030be42a8160ce8eeea30b1ce0872e653364aca02709
7
+ data.tar.gz: 3222dd6c0435580bbf452c9cc89b6ebcedd47d8b279f127dfc256621b9d4ce9ee50b08a2ea4adaf5d3d29bbc2d45f6bd4155a835b5bba5fba24e241c7ffc490d
data/lib/dor-services.rb CHANGED
@@ -90,6 +90,7 @@ module Dor
90
90
  autoload :IdentifiableIndexer
91
91
  autoload :ProcessableIndexer
92
92
  autoload :ReleasableIndexer
93
+ autoload :WorkflowIndexer
93
94
  end
94
95
 
95
96
  # datastreams
@@ -3,6 +3,9 @@
3
3
  module Dor
4
4
  # TODO: class docs
5
5
  class WorkflowDs < ActiveFedora::OmDatastream
6
+ extend Deprecation
7
+ self.deprecation_horizon = 'dor-services version 7.0.0'
8
+
6
9
  before_save :build_location
7
10
  set_terminology do |t|
8
11
  t.root(path: 'workflows')
@@ -38,8 +41,10 @@ module Dor
38
41
 
39
42
  Workflow::Document.new(xml.to_s)
40
43
  end
44
+ deprecation_deprecate get_workflow: 'This has been moved to Argo and will be discontinued'
41
45
 
42
46
  alias [] get_workflow
47
+ deprecation_deprecate :[] => 'This has been moved to Argo and will be discontinued'
43
48
 
44
49
  def ng_xml
45
50
  @ng_xml ||= Nokogiri::XML::Document.parse(content)
@@ -51,7 +56,8 @@ module Dor
51
56
  def content(refresh = false)
52
57
  @content = nil if refresh
53
58
  @content ||= Dor::Config.workflow.client.get_workflow_xml 'dor', pid, nil
54
- rescue Dor::WorkflowException
59
+ rescue Dor::WorkflowException => e
60
+ Dor.logger.warn "Unable to connect to the workflow service #{e}. Falling back to placeholder XML"
55
61
  xml = Nokogiri::XML(%(<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<workflows objectId="#{pid}"/>))
56
62
  digital_object.datastreams.keys.each do |dsid|
57
63
  next unless dsid =~ /WF$/
@@ -76,9 +82,8 @@ module Dor
76
82
  cp.priority.to_i
77
83
  end
78
84
 
79
- def to_solr(solr_doc = {}, *args)
80
- # super solr_doc, *args
81
- workflows.each { |wf| solr_doc = wf.to_solr(solr_doc, *args) }
85
+ def to_solr(solr_doc = {}, *_args)
86
+ # noop - indexing is done by the WorkflowIndexer
82
87
  solr_doc
83
88
  end
84
89
 
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dor
4
+ # Indexes the objects position in workflows
5
+ class WorkflowIndexer
6
+ include SolrDocHelper
7
+
8
+ attr_reader :resource
9
+ def initialize(resource:)
10
+ @resource = resource
11
+ end
12
+
13
+ # @return [Hash] the partial solr document for workflow concerns
14
+ def to_solr
15
+ {}.tap do |solr_doc|
16
+ workflows.each { |wf| solr_doc = wf.to_solr(solr_doc) }
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ # @returns [Array<Dor::WorkflowDocument>]
23
+ def workflows
24
+ resource.workflows.workflows
25
+ end
26
+ end
27
+ end
@@ -15,7 +15,8 @@ module Dor
15
15
  DescribableIndexer,
16
16
  EditableIndexer,
17
17
  IdentifiableIndexer,
18
- ProcessableIndexer
18
+ ProcessableIndexer,
19
+ WorkflowIndexer
19
20
  )
20
21
  end
21
22
  end
@@ -11,7 +11,8 @@ module Dor
11
11
  DescribableIndexer,
12
12
  IdentifiableIndexer,
13
13
  ProcessableIndexer,
14
- ReleasableIndexer
14
+ ReleasableIndexer,
15
+ WorkflowIndexer
15
16
  )
16
17
  end
17
18
  end
@@ -3,6 +3,8 @@
3
3
  module Dor
4
4
  module Preservable
5
5
  extend ActiveSupport::Concern
6
+ extend Deprecation
7
+ self.deprecation_horizon = 'dor-services version 7.0.0'
6
8
 
7
9
  included do
8
10
  has_metadata name: 'provenanceMetadata', type: ProvenanceMetadataDS, label: 'Provenance Metadata'
@@ -21,6 +23,7 @@ module Dor
21
23
  def sdr_ingest_transfer(agreement_id)
22
24
  SdrIngestService.transfer(self, agreement_id)
23
25
  end
26
+ deprecation_deprecate sdr_ingest_transfer: 'Use SdrIngestService.transfer instead'
24
27
 
25
28
  private
26
29
 
@@ -18,7 +18,8 @@ module Dor
18
18
  DescribableIndexer,
19
19
  IdentifiableIndexer,
20
20
  ProcessableIndexer,
21
- ReleasableIndexer
21
+ ReleasableIndexer,
22
+ WorkflowIndexer
22
23
  )
23
24
 
24
25
  has_metadata name: 'technicalMetadata', type: TechnicalMetadataDS, label: 'Technical Metadata', control_group: 'M'
@@ -11,7 +11,8 @@ module Dor
11
11
  DataIndexer,
12
12
  DescribableIndexer,
13
13
  IdentifiableIndexer,
14
- ProcessableIndexer
14
+ ProcessableIndexer,
15
+ WorkflowIndexer
15
16
  )
16
17
  end
17
18
  end
@@ -14,7 +14,8 @@ module Dor
14
14
  DataIndexer,
15
15
  DescribableIndexer,
16
16
  IdentifiableIndexer,
17
- ProcessableIndexer
17
+ ProcessableIndexer,
18
+ WorkflowIndexer
18
19
  )
19
20
 
20
21
  def self.find_by_name(name)
data/lib/dor/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dor
4
- VERSION = '6.2.0'
4
+ VERSION = '6.3.0'
5
5
  end
@@ -67,7 +67,8 @@ module Dor
67
67
  @processes ||=
68
68
  if definition
69
69
  definition.processes.collect do |process|
70
- node = ng_xml.at("/workflow/process[@name = '#{process.name}']")
70
+ nodes = ng_xml.xpath("/workflow/process[@name = '#{process.name}']")
71
+ node = nodes.max { |a, b| a.attr('version').to_i <=> b.attr('version').to_i }
71
72
  process.update!(node, self)
72
73
  end
73
74
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dor-services
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.0
4
+ version: 6.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Klein
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2019-01-23 00:00:00.000000000 Z
17
+ date: 2019-01-30 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: active-fedora
@@ -512,6 +512,20 @@ dependencies:
512
512
  - - "~>"
513
513
  - !ruby/object:Gem::Version
514
514
  version: 0.60.0
515
+ - !ruby/object:Gem::Dependency
516
+ name: rubocop-rspec
517
+ requirement: !ruby/object:Gem::Requirement
518
+ requirements:
519
+ - - ">="
520
+ - !ruby/object:Gem::Version
521
+ version: '0'
522
+ type: :development
523
+ prerelease: false
524
+ version_requirements: !ruby/object:Gem::Requirement
525
+ requirements:
526
+ - - ">="
527
+ - !ruby/object:Gem::Version
528
+ version: '0'
515
529
  - !ruby/object:Gem::Dependency
516
530
  name: simplecov
517
531
  requirement: !ruby/object:Gem::Requirement
@@ -609,6 +623,7 @@ files:
609
623
  - lib/dor/indexers/identifiable_indexer.rb
610
624
  - lib/dor/indexers/processable_indexer.rb
611
625
  - lib/dor/indexers/releasable_indexer.rb
626
+ - lib/dor/indexers/workflow_indexer.rb
612
627
  - lib/dor/models/abstract.rb
613
628
  - lib/dor/models/admin_policy_object.rb
614
629
  - lib/dor/models/agreement.rb