namespace :jquery_ui_themes do
namespace :import do desc 'Import jQuery themeroller theme' task :themeroller, [:path, :name] => :environment do |t, args| abort 'Please specify a path to the file to import' if args[:path].blank? abort 'Please specify a name' if args[:name].blank? abort ('Import file not found!') unless File.exist?(File.expand_path(args[:path])) require 'fileutils' FileUtils.mkdir_p(File.expand_path("./vendor/assets/stylesheets/jquery-ui/#{args[:name]}")) FileUtils.mkdir_p(File.expand_path("./vendor/assets/stylesheets/jquery-ui/#{args[:name]}/images")) css = File.read(File.expand_path(args[:path])) File.open(File.expand_path("./vendor/assets/stylesheets/jquery-ui/#{args[:name]}/theme.css.scss"), "w") do |file| file.puts css.gsub(/url\(['"]?images\/([^'"]+)['"]?\)/, 'url(image-path("jquery-ui/' + args[:name] + '/images/\1"))') end FileUtils.cp_r(File.dirname(File.expand_path(args[:path])) + '/images/.', File.expand_path("./vendor/assets/stylesheets/jquery-ui/#{args[:name]}/images/")) end desc 'Import themes from Google CDN' task :google_cdn, [:version, :theme] => :environment do |t, args| abort 'Please specify a version to import' if args[:version].blank? abort 'Please specify a theme to import' if args[:theme].blank? if args[:theme] == 'all' JqueryUiThemes::GoogleCDN.download_all(args[:version]) else JqueryUiThemes::GoogleCDN.download(args[:theme], args[:version]) end end end
end