Sha256: 014b2164cf08105f3b1ee720ca6a66ae7fafc973e938b61e9c12aa9127b25ac1

Contents?: true

Size: 1.32 KB

Versions: 9

Compression:

Stored size: 1.32 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

9 entries across 9 versions & 1 rubygems

Version Path
tinymce-rails-4.6.7 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.6.6 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.6.5 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.6.4 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.6.3 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.6.2 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.6.1 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.6.0 lib/tinymce/rails/asset_installer/copy.rb
tinymce-rails-4.5.7 lib/tinymce/rails/asset_installer/copy.rb