Sha256: b0646f0a2ba1c31d937eac0ec79a8c9289369f4091b554b709ec8721d563f8d0

Contents?: true

Size: 1.26 KB

Versions: 7

Compression:

Stored size: 1.26 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.mv(src, dest, :force => true)
          end
        end

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

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
tinymce-rails-4.7.6 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.7.5 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.7.4 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.7.3 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.7.2 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.7.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.7.0 lib/tinymce/rails/asset_installer/copy.rb