Sha256: f379a86f3f2cf6a943cc1ce317bae6a4f5b927ee0ea0814e0b36fcf5e7a93bc7
Contents?: true
Size: 918 Bytes
Versions: 26
Compression:
Stored size: 918 Bytes
Contents
module Ddr module Managers class WorkflowManager < Manager PUBLISHED = "published" UNPUBLISHED = "unpublished" def published? object.workflow_state == PUBLISHED end 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 def unpublish! if published? unpublish object.save end if object.respond_to?(:children) object.children.each { |child| child.unpublish! } end end private def publish object.workflow_state = PUBLISHED end def unpublish object.workflow_state = UNPUBLISHED end end end end
Version data entries
26 entries across 26 versions & 1 rubygems