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