Class: Perron::Site::Builder::Assets
- Inherits:
-
Object
- Object
- Perron::Site::Builder::Assets
- Defined in:
- lib/perron/site/builder/assets.rb
Instance Method Summary collapse
-
#initialize ⇒ Assets
constructor
A new instance of Assets.
- #prepare ⇒ Object
Constructor Details
#initialize ⇒ Assets
Returns a new instance of Assets.
7 8 9 |
# File 'lib/perron/site/builder/assets.rb', line 7 def initialize @output_path = Rails.root.join(Perron.configuration.output) end |
Instance Method Details
#prepare ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/perron/site/builder/assets.rb', line 11 def prepare puts "📦 Precompiling and copying assets…" success = system("bundle exec rails assets:precompile", out: File::NULL) unless success puts "❌ ERROR: Asset precompilation failed" exit(1) end source = Rails.root.join("public", "assets") destination = @output_path.join("assets") unless Dir.exist?(source) puts "⚠️ WARNING: No assets found in `#{source}` to copy" return end FileUtils.mkdir_p(destination) FileUtils.move(Dir.glob("#{source}/*"), destination, force: true) FileUtils.remove_dir(source) puts " Copied assets to `#{destination.relative_path_from(Rails.root)}`" prune_excluded_assets from: destination end |