Sha256: a8ea602fe683d5e9d616d68158119b34c2a503de1256930fe1f0e0b70e8a7e3e

Contents?: true

Size: 910 Bytes

Versions: 33

Compression:

Stored size: 910 Bytes

Contents

module Pageflow
  class EncodingConfirmation
    class QuotaExceededError < RuntimeError
    end

    attr_reader :entry, :attributes, :encoding_quota, :user

    def initialize(entry, attributes, encoding_quota, user)
      @entry = entry
      @attributes = attributes
      @encoding_quota = encoding_quota
      @user = user
    end

    def exceeding?
      assumed_quota.exceeded?
    end

    def save!
      ActiveRecord::Base.transaction do
        raise(QuotaExceededError) if exceeding?

        files.each do |file|
          file.confirmed_by = user
          file.confirm_encoding!
        end
      end
    end

    def assumed_quota
      @assumed_quota ||= encoding_quota.assume(files: files)
    end

    def files
      @files ||=
        entry.video_files.find(attributes.fetch(:video_file_ids, [])) +
        entry.audio_files.find(attributes.fetch(:audio_file_ids, []))
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
pageflow-12.0.4 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.3 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.2 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.1 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.0 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.0.rc7 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.0.rc6 app/models/pageflow/encoding_confirmation.rb
pageflow-0.11.4 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.0.rc5 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.0.rc4 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.0.rc3 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.0.rc2 app/models/pageflow/encoding_confirmation.rb
pageflow-12.0.0.rc1 app/models/pageflow/encoding_confirmation.rb
pageflow-0.11.3 app/models/pageflow/encoding_confirmation.rb
pageflow-0.11.2 app/models/pageflow/encoding_confirmation.rb
pageflow-0.11.1 app/models/pageflow/encoding_confirmation.rb
pageflow-0.11.0 app/models/pageflow/encoding_confirmation.rb
pageflow-0.10.0 app/models/pageflow/encoding_confirmation.rb
pageflow-0.9.2 app/models/pageflow/encoding_confirmation.rb
pageflow-0.9.1 app/models/pageflow/encoding_confirmation.rb