Class: Ddr::Managers::WorkflowManager

Inherits:
Manager
  • Object
show all
Defined in:
lib/ddr/managers/workflow_manager.rb

Constant Summary collapse

PUBLISHED =
"published"
UNPUBLISHED =
"unpublished"

Instance Attribute Summary

Attributes inherited from Manager

#object

Instance Method Summary collapse

Methods inherited from Manager

#initialize

Constructor Details

This class inherits a constructor from Ddr::Managers::Manager

Instance Method Details

#publish!(include_descendants: true) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ddr/managers/workflow_manager.rb', line 16

def publish!(include_descendants: true)
  unless published?
    publish
    object.save!
  end
  if include_descendants && object.respond_to?(:children)
    solr_results = object.children(response_format: :solr)
    ActiveFedora::SolrService.lazy_reify_solr_results(solr_results).each do |child|
      child.publish!(include_descendants: include_descendants)
    end
  end
end

#published?Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/ddr/managers/workflow_manager.rb', line 8

def published?
  object.workflow_state == PUBLISHED
end

#unpublish!Object



29
30
31
32
33
34
35
36
37
# File 'lib/ddr/managers/workflow_manager.rb', line 29

def unpublish!
  if published?
    unpublish
    object.save!
  end
  if object.respond_to?(:children)
    object.children.each { |child| child.unpublish! }
  end
end

#unpublished?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/ddr/managers/workflow_manager.rb', line 12

def unpublished?
  object.workflow_state == UNPUBLISHED
end