Sha256: 24c2f2ba77df47a3f7b9f68822e1704d9fc8e23747ddc3b0e910f876fc02a37f

Contents?: true

Size: 620 Bytes

Versions: 75

Compression:

Stored size: 620 Bytes

Contents

module Pageflow
  class EntryPublication
    attr_reader :entry, :attributes, :quota, :user

    def initialize(entry, attributes, published_entries_quota, user)
      @entry = entry
      @attributes = attributes
      @quota = published_entries_quota
      @user = user
    end

    def exceeding?
      assumed_quota.exceeded?
    end

    def save!
      assumed_quota.verify_not_exceeded!
      entry.publish(attributes.merge(creator: user))

      Pageflow.config.hooks.invoke(:entry_published, entry: entry)
    end

    private

    def assumed_quota
      quota.assume(published_entry: entry)
    end
  end
end

Version data entries

75 entries across 75 versions & 1 rubygems

Version Path
pageflow-17.0.4 app/models/pageflow/entry_publication.rb
pageflow-17.0.3 app/models/pageflow/entry_publication.rb
pageflow-17.0.2 app/models/pageflow/entry_publication.rb
pageflow-17.0.1 app/models/pageflow/entry_publication.rb
pageflow-17.0.0 app/models/pageflow/entry_publication.rb
pageflow-16.2.0 app/models/pageflow/entry_publication.rb
pageflow-16.1.0 app/models/pageflow/entry_publication.rb
pageflow-16.0.0 app/models/pageflow/entry_publication.rb
pageflow-15.8.0 app/models/pageflow/entry_publication.rb
pageflow-14.5.2 app/models/pageflow/entry_publication.rb
pageflow-15.7.1 app/models/pageflow/entry_publication.rb
pageflow-15.7.0 app/models/pageflow/entry_publication.rb
pageflow-15.6.1 app/models/pageflow/entry_publication.rb
pageflow-15.6.0 app/models/pageflow/entry_publication.rb
pageflow-15.5.0 app/models/pageflow/entry_publication.rb
pageflow-15.4.0 app/models/pageflow/entry_publication.rb
pageflow-15.3.0 app/models/pageflow/entry_publication.rb
pageflow-15.2.2 app/models/pageflow/entry_publication.rb
pageflow-15.2.1 app/models/pageflow/entry_publication.rb
pageflow-15.2.0 app/models/pageflow/entry_publication.rb