Sha256: c527c0e31d885722d890d9e933a851d0583193f7a2d5757427991de9508c25bb

Contents?: true

Size: 1.17 KB

Versions: 23

Compression:

Stored size: 1.17 KB

Contents

module ClassMethods
  def update_all_storage_locations
    Card.search(type_id: ["in", Card::FileID, Card::ImageID])
        .each(&:update_storage_location!)
  end

  def delete_tmp_files_of_cached_uploads
    cards_with_disposable_attachments do |card, action|
      card.delete_files_for_action action
      action.delete
    end
  end

  def cards_with_disposable_attachments
    draft_actions_with_attachment.each do |action|
      # we don't want to delete uploads in progress
      next unless old_enough?(action.created_at) && (card = action.card)
      # we can't delete attachments we don't have write access to
      next if card.read_only?

      yield card, action
    end
  end

  def old_enough? time, expiration_time=5.day.to_i
    Time.now - time > expiration_time
  end

  def draft_actions_with_attachment
    Card::Action.find_by_sql(
      "SELECT * FROM card_actions "\
        "INNER JOIN cards ON card_actions.card_id = cards.id "\
        "WHERE cards.type_id IN (#{Card::FileID}, #{Card::ImageID}) "\
        "AND card_actions.draft = true"
    )
  end

  def count_cards_with_attachment
    Card.search type_id: ["in", Card::FileID, Card::ImageID], return: :count
  end
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
card-mod-carrierwave-0.14.2 set/all/file_utils.rb
card-mod-carrierwave-0.14.1 set/all/file_utils.rb
card-mod-carrierwave-0.14.0 set/all/file_utils.rb
card-mod-carrierwave-0.13.4 set/all/file_utils.rb
card-mod-carrierwave-0.13.3 set/all/file_utils.rb
card-mod-carrierwave-0.13.2 set/all/file_utils.rb
card-mod-carrierwave-0.13.1 set/all/file_utils.rb
card-mod-carrierwave-0.13.0 set/all/file_utils.rb
card-mod-carrierwave-0.11.7 set/all/file_utils.rb
card-mod-carrierwave-0.12.0 set/all/file_utils.rb
card-mod-carrierwave-0.11.6 set/all/file_utils.rb
card-mod-carrierwave-0.11.5 set/all/file_utils.rb
card-mod-carrierwave-0.11.4 set/all/file_utils.rb
card-mod-carrierwave-0.11.3 set/all/file_utils.rb
card-mod-carrierwave-0.11.2 set/all/file_utils.rb
card-mod-carrierwave-0.11.1 set/all/file_utils.rb
card-mod-carrierwave-0.11.0 set/all/file_utils.rb
card-1.100.0 mod/carrierwave/set/all/file_utils.rb
card-1.99.6 mod/carrierwave/set/all/file_utils.rb
card-1.99.5 mod/carrierwave/set/all/file_utils.rb