desc "Run all Flex tasks" task :flex do %w(flex:compile flex:static).collect do |task| Rake::Task[task].invoke end end namespace :flex do desc "Moves JS, CSS, and index.html into respective public folders" task :static => [:environment] do FLEX_ROOT = File.join(RAILS_ROOT, "app", "flex") BIN_ROOT = File.join(RAILS_ROOT, "public", "bin") idx = File.join(FLEX_ROOT, "index.html") if File.exists?(idx) system "cp #{idx} #{File.join(RAILS_ROOT, "public", File.basename(idx))}" end Dir["#{FLEX_ROOT}/js/*.js"].each do |j| system "cp #{j} #{File.join(RAILS_ROOT, "public", "javascripts", File.basename(j))}" end Dir["#{FLEX_ROOT}/css/*.css"].each do |c| system "cp #{c} #{File.join(RAILS_ROOT, "public", "stylesheets", File.basename(c))}" end end desc "Compiles Flex Applications and moves swf(s) into public/bin directory" task :compile => [:environment] do FLEX_ROOT = File.join(RAILS_ROOT, "app", "flex") BIN_ROOT = File.join(RAILS_ROOT, "public", "bin") mxml = Dir["#{FLEX_ROOT}/*.mxml"] mxml.each do |mx| system "mxmlc #{mx}" swf = mx.gsub(/\.mxml/, '.swf') system "mv #{swf} #{File.join(BIN_ROOT, File.basename(swf))}" end end end