Module: Card::Set::All::FileUtils::ClassMethods

Defined in:
card/tmpsets/set/mod014-card-mod-carrierwave/all/file_utils.rb,
card/tmpsets/set/mod013-card-mod-carrierwave/all/file_utils.rb

Instance Method Summary collapse

Instance Method Details

#cards_with_disposable_attachmentsObject



21
22
23
24
25
26
27
28
29
30
# File 'card/tmpsets/set/mod014-card-mod-carrierwave/all/file_utils.rb', line 21

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

#count_cards_with_attachmentObject



45
46
47
# File 'card/tmpsets/set/mod014-card-mod-carrierwave/all/file_utils.rb', line 45

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

#delete_tmp_files_of_cached_uploadsObject



14
15
16
17
18
19
# File 'card/tmpsets/set/mod014-card-mod-carrierwave/all/file_utils.rb', line 14

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

#draft_actions_with_attachmentObject



36
37
38
39
40
41
42
43
# File 'card/tmpsets/set/mod014-card-mod-carrierwave/all/file_utils.rb', line 36

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

#old_enough?(time, expiration_time = 5.day.to_i) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'card/tmpsets/set/mod014-card-mod-carrierwave/all/file_utils.rb', line 32

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

#update_all_storage_locationsObject



9
10
11
12
# File 'card/tmpsets/set/mod014-card-mod-carrierwave/all/file_utils.rb', line 9

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