class TinyMCE::Rails::AssetInstaller

def append_to_manifest

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

def asset_files

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

def cleanup_assets

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

def copy_assets

def copy_assets
  FileUtils.cp_r(ASSETS, @target, :preserve => true)
end

def index_asset?(asset)

def index_asset?(asset)
  asset =~ /\/index\.js$/
end

def initialize(target, manifest_path)

def initialize(target, manifest_path)
  @target = target
  @manifest_path = manifest_path || target
end

def install

def install
  cleanup_assets
  copy_assets
  append_to_manifest
  
  manifest.write
end

def logical_path(file)

def logical_path(file)
  file.relative_path_from(ASSETS.parent).to_s
end

def manifest

def manifest
  @manifest ||= AssetManifest.load(@manifest_path)
end

def move_asset(src, dest)

def move_asset(src, dest)
  src = File.join(@target, src)
  dest = File.join(@target, dest)
  
  FileUtils.mv(src, dest, :force => true) if src != dest && File.exists?(src)
end