active_storage_dashboard 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/active_storage_dashboard/analyzer.rb +9 -0
- data/lib/active_storage_dashboard/orphan_purger.rb +13 -0
- data/lib/active_storage_dashboard/variant_regenerator.rb +18 -0
- data/lib/active_storage_dashboard.rb +12 -2
- data/lib/tasks/active_storage_dashboard_tasks.rake +20 -5
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed1a1e341dedaaab67801dd73a0b76df9449aca4ca18973563e2ed7dc6dda253
|
4
|
+
data.tar.gz: 7a9aefffa3a6de909c51d0b6722d9d0850606ec50fbd06b05ce60ca96d122828
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cd3148b29e82dfef918761d4cc12e888da4735bfd0a3c9a197fb61faef8c0462e2dae3b5346c18c8734a8b7756629cec8580013c04bf74abc1fff09f4dd5dea
|
7
|
+
data.tar.gz: e3705b654f6ab6805fb7cdd03988df975e9af080cc372796045b836cd00fd0d25ce38293f8d90873a895b60bd6336cc398349388470539bc95eb29d82e1b4046
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module ActiveStorageDashboard
|
2
|
+
class OrphanPurger
|
3
|
+
def self.call
|
4
|
+
scope = ActiveStorage::Blob.left_outer_joins(:attachments)
|
5
|
+
.where(active_storage_attachments: { id: nil })
|
6
|
+
|
7
|
+
scope.find_each do |blob|
|
8
|
+
blob.purge
|
9
|
+
puts "Purged blob #{blob.id}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module ActiveStorageDashboard
|
2
|
+
class VariantRegenerator
|
3
|
+
def self.call
|
4
|
+
unless defined?(ActiveStorage::VariantRecord)
|
5
|
+
puts "ActiveStorage::VariantRecord not found (Rails < 7.1). Skipping."
|
6
|
+
return
|
7
|
+
end
|
8
|
+
|
9
|
+
ActiveStorage::VariantRecord.find_each do |variant|
|
10
|
+
begin
|
11
|
+
variant.image.representation(variant.variation).processed
|
12
|
+
rescue => e
|
13
|
+
warn "Failed variant #{variant.id}: #{e.message}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,8 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require "rails/railtie"
|
2
3
|
|
3
4
|
require "active_storage_dashboard/version"
|
4
5
|
require "active_storage_dashboard/engine"
|
5
6
|
|
7
|
+
require "active_storage_dashboard/orphan_purger"
|
8
|
+
require "active_storage_dashboard/analyzer"
|
9
|
+
require "active_storage_dashboard/variant_regenerator"
|
10
|
+
|
6
11
|
module ActiveStorageDashboard
|
7
|
-
|
8
|
-
|
12
|
+
class Railtie < Rails::Railtie
|
13
|
+
rake_tasks do
|
14
|
+
load File.expand_path("tasks/active_storage_dashboard_tasks.rake", __dir__)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
@@ -1,6 +1,21 @@
|
|
1
|
-
|
1
|
+
namespace :active_storage do
|
2
|
+
namespace :dashboard do
|
3
|
+
desc "Purge blobs that have no attachments"
|
4
|
+
task purge_orphans: :environment do
|
5
|
+
ActiveStorageDashboard::OrphanPurger.call
|
6
|
+
end
|
2
7
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
8
|
+
desc "Re-analyze blobs that are not yet analyzed"
|
9
|
+
task reanalyze: :environment do
|
10
|
+
ActiveStorageDashboard::Analyzer.call
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Recreate missing or outdated variants"
|
14
|
+
task regenerate_variants: :environment do
|
15
|
+
ActiveStorageDashboard::VariantRegenerator.call
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "Run all maintenance tasks"
|
19
|
+
task all: [:purge_orphans, :reanalyze, :regenerate_variants]
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_storage_dashboard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giovanni Panasiti
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-05-
|
10
|
+
date: 2025-05-22 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: rails
|
@@ -49,7 +49,10 @@ files:
|
|
49
49
|
- app/views/layouts/active_storage_dashboard/application.html.erb
|
50
50
|
- config/routes.rb
|
51
51
|
- lib/active_storage_dashboard.rb
|
52
|
+
- lib/active_storage_dashboard/analyzer.rb
|
52
53
|
- lib/active_storage_dashboard/engine.rb
|
54
|
+
- lib/active_storage_dashboard/orphan_purger.rb
|
55
|
+
- lib/active_storage_dashboard/variant_regenerator.rb
|
53
56
|
- lib/active_storage_dashboard/version.rb
|
54
57
|
- lib/tasks/active_storage_dashboard_tasks.rake
|
55
58
|
homepage: https://github.com/giovapanasiti/active_storage_dashboard
|