Mercurial > hg > mpiwg_geobrowser
diff lib/GeoTemCo/Rakefile @ 0:b57c7821382f
initial
author | Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de> |
---|---|
date | Thu, 28 May 2015 10:28:12 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/GeoTemCo/Rakefile Thu May 28 10:28:12 2015 +0200 @@ -0,0 +1,170 @@ +# Rakefile - create single combined nd compressed javascript file + +COMPRESS="java -jar lib/yuicompressor-2.4.2.jar" +COMPRESSED_OUTPUT_FILE='platin-min.js' +OUTPUT_FILE='platin.js' +CSS_FILE='css/platin.css' + +task :default => :all + +task :all => [COMPRESSED_OUTPUT_FILE, OUTPUT_FILE, CSS_FILE, :copyJqueryUIImageDirectory] + +# javascript sources +Files = %w(js/Build/Minifier/basic.js +lib/excanvas/excanvas.js +lib/slider/js/range.js +lib/slider/js/slider.js +lib/slider/js/timer.js +lib/openlayers/OpenLayers.js +lib/jquery/jquery-deparam.min.js +lib/jquery/jquery.remember.js +lib/jquery/purl.min.js +lib/jquery-ui/jquery-ui-1.10.3.custom.js +lib/jszip/jszip.js +lib/jszip/jszip-deflate.js +lib/jszip/jszip-inflate.js +lib/jszip/jszip-load.js +lib/momentjs/moment.js +lib/ucsv/ucsv-1.1.0-min.js +lib/flot/jquery.flot.js +lib/flot/jquery.flot.pie.js +lib/flot/jquery.flot.resize.js +lib/flot/jquery.flot.selection.js +lib/flot/jquery.flot.time.js +lib/flot/jquery.flot.tooltip.js +lib/SimileRemnants.js +js/Util/Tooltips.js +js/GeoTemConfig.js +js/Map/MapControl.js +js/Map/CircleObject.js +js/Util/FilterBar.js +js/Util/Selection.js +js/Map/PlacenameTags.js +js/Map/MapConfig.js +js/Map/MapGui.js +js/Map/MapWidget.js +js/Time/TimeConfig.js +js/Time/TimeGui.js +js/Time/TimeWidget.js +js/Table/TableConfig.js +js/Table/TableGui.js +js/Table/TableWidget.js +js/Table/Table.js +js/Dataloader/Dataloader.js +js/Dataloader/DataloaderConfig.js +js/Dataloader/DataloaderGui.js +js/Dataloader/DataloaderWidget.js +js/FuzzyTimeline/FuzzyTimelineConfig.js +js/FuzzyTimeline/FuzzyTimelineDensity.js +js/FuzzyTimeline/FuzzyTimelineGui.js +js/FuzzyTimeline/FuzzyTimelineRangeBars.js +js/FuzzyTimeline/FuzzyTimelineRangePiechart.js +js/FuzzyTimeline/FuzzyTimelineRangeSlider.js +js/FuzzyTimeline/FuzzyTimelineWidget.js +js/Overlayloader/Overlayloader.js +js/Overlayloader/OverlayloaderConfig.js +js/Overlayloader/OverlayloaderGui.js +js/Overlayloader/OverlayloaderWidget.js +js/PieChart/PieChart.js +js/PieChart/PieChartCategoryChooser.js +js/PieChart/PieChartConfig.js +js/PieChart/PieChartGui.js +js/PieChart/PieChartHashFunctions.js +js/PieChart/PieChartWidget.js +js/Storytelling/Storytelling.js +js/Storytelling/StorytellingConfig.js +js/Storytelling/StorytellingGui.js +js/Storytelling/StorytellingWidget.js +js/LineOverlay/LineOverlay.js +js/LineOverlay/LineOverlayConfig.js +js/LineOverlay/LineOverlayWidget.js +js/Util/DataObject.js +js/Util/Dataset.js +js/Time/TimeDataSource.js +js/Map/Binning.js +js/Map/MapDataSource.js +js/Map/Clustering.js +js/Util/Dropdown.js +js/Map/MapZoomSlider.js +js/Map/MapPopup.js +js/Map/PlacenamePopup.js +js/Util/Publisher.js +js/Util/WidgetWrapper.js +js/Build/Minifier/final.js) + +# css sources +Cssfiles = %w(lib/openlayers/theme/default/style.css +lib/jquery-ui/jquery-ui-1.10.3.custom.css +css/style.css) + +def cat_files(outputfile, basename) + File.open(outputfile, 'a') do |x| + Files.each do |f| + x.puts(File.open(f).read.gsub('REPLACEME-REPLACEME', basename)) + end + end +end + +file CSS_FILE => Cssfiles do + File.open(CSS_FILE, 'w') do |x| + Cssfiles.each do |f| + x.puts(File.open(f).read) + end + end +end + +# Just one big JS file, no compression. +file OUTPUT_FILE => Files do + basename = File.basename(OUTPUT_FILE, ".js") + + File.open(OUTPUT_FILE, 'w') do |x| + x.puts("(function($){\n\nvar jQuery = $;"); + end + + cat_files(OUTPUT_FILE, basename) + + File.open(OUTPUT_FILE, 'a') do |x| + x.puts("})(jQuery);"); + end +end + +task :copyJqueryUIImageDirectory do + @source = "./lib/jquery-ui/images" + @target = "./css/images" + @includePattern = "/**/*" + FileUtils.rm_rf(@target) #remove target directory (if exists) + FileUtils.mkdir_p(@target) #create the target directory + files = FileList.new().include("#{@source}#{@includePattern}"); + files.each do |file| + #create target location file string (replace source with target in path) + targetLocation = file.sub(@source, @target) + #ensure directory exists + FileUtils.mkdir_p(File.dirname(targetLocation)); + #copy the file + FileUtils.cp_r(file, targetLocation) + end +end + +# Compress it. +file COMPRESSED_OUTPUT_FILE => Files do + basename = File.basename(COMPRESSED_OUTPUT_FILE, ".js") + + File.open(OUTPUT_FILE, 'w') do |x| + x.puts("(function($){\n\nvar jQuery = $;"); + end + + cat_files(OUTPUT_FILE, basename) + + File.open(OUTPUT_FILE, 'a') do |x| + x.puts("})(jQuery);"); + end + + system "#{COMPRESS} #{OUTPUT_FILE} >> #{COMPRESSED_OUTPUT_FILE}" +end + +# Clean up the whole thing. +task :clean do + rm OUTPUT_FILE + rm COMPRESSED_OUTPUT_FILE + rm CSS_FILE +end