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



13
14
15
16
17
18
19
20
21
# File 'lib/ddr/managers/workflow_manager.rb', line 13

def publish!(include_descendants: true)
  unless published?
    publish
    object.save!
  end
  if include_descendants && object.respond_to?(:children)
    object.children.each { |child| child.publish!(include_descendants: include_descendants) }
  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



23
24
25
26
27
28
29
30
31
# File 'lib/ddr/managers/workflow_manager.rb', line 23

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