Sha256: df110c1cb9c9a8dddba1cc2a4876b5316b336f0cf3a21f6d5c24f2f33220f2d6

Contents?: true

Size: 1.31 KB

Versions: 118

Compression:

Stored size: 1.31 KB

Contents

module TinyMCE
  module Rails
    class AssetInstaller
      class Copy
        delegate :assets, :target, :manifest, :logger, :logical_path, :with_asset, :to => :@installer

        def initialize(installer)
          @installer = installer
        end

        def call
          cleanup_assets
          copy_assets
          append_to_manifest

          manifest.write
        end

      private
        def cleanup_assets
          manifest.each(/^tinymce\//) do |asset|
            manifest.remove_digest(asset) do |src, dest|
              move_asset(src, dest)
            end
          end
        end

        def copy_assets
          logger.info "Copying assets (preserving modes) to #{File.join(target, "tinymce")}"
          FileUtils.cp_r(assets, target, :preserve => true)
        end

        def append_to_manifest
          asset_files.each do |file|
            manifest.append(logical_path(file), file)
          end
        end

        def move_asset(src, dest)
          with_asset(src, dest) do |src, dest|
            logger.info "Removing digest from #{src}"

            FileUtils.rm(dest) if File.exist?(dest)
            FileUtils.mv(src, dest, :force => true)
          end
        end

        def asset_files
          Pathname.glob("#{assets}/**/*").select(&:file?)
        end
      end
    end
  end
end

Version data entries

118 entries across 118 versions & 4 rubygems

Version Path
tinymce-rails-7.7.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.7.0 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.6.1 lib/tinymce/rails/asset_installer/copy.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/tinymce-rails-7.6.0/lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.6.0 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.5.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.5.0 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-6.8.5 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.4.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.4.0 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.3.0 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.2.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-6.8.4 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.2.0 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.1.2.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.1.2 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.0.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-7.0.0.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-6.8.3 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-6.8.2 lib/tinymce/rails/asset_installer/copy.rb