Sha256: 11925b4eb70180b024f48c48223cf3717953a1d2f5195c3002c4f9ccfe4c2bb5

Contents?: true

Size: 973 Bytes

Versions: 2

Compression:

Stored size: 973 Bytes

Contents

module ContentState
  class PublicationPending < Base
    include Singleton

    def enter_hook(content)
      super
      content[:published] = false if content.new_record?
    end

    def change_published_state(content, published)
      content[:published] = published

      if published && content.published_at <= Time.now
        content.state = JustPublished.instance
      end
    end

    def set_published_at(content, new_time)
      content[:published_at] = new_time
      Trigger.remove(content, :trigger_method => 'publish!')
      if new_time.nil?
        content.state = Draft.instance
      elsif new_time <= Time.now
        content.state = JustPublished.instance
      end
    end

    def publication_pending?
      true
    end

    def post_trigger(content)
      Trigger.post_action(content.published_at, content, 'publish!')
    end

    def withdraw(content)
      content[:published_at] = nil
      content.state = Draft.instance
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
typo-4.1.1 app/models/content_state/publication_pending.rb
typo-4.1 app/models/content_state/publication_pending.rb