Mercurial > hg > LGMap
comparison geotemco/Rakefile @ 0:57bde4830927
first commit
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 24 Mar 2015 11:37:17 +0100 |
parents | |
children | 8f05c2a84bba |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:57bde4830927 |
---|---|
1 # Rakefile - create single combined nd compressed javascript file | |
2 | |
3 COMPRESS="java -jar lib/yuicompressor-2.4.2.jar" | |
4 COMPRESSED_OUTPUT_FILE='platin-min.js' | |
5 OUTPUT_FILE='platin.js' | |
6 CSS_FILE='css/platin.css' | |
7 | |
8 task :default => :all | |
9 | |
10 task :all => [:clean, COMPRESSED_OUTPUT_FILE, OUTPUT_FILE, CSS_FILE, :copyJqueryUIImageDirectory] | |
11 | |
12 # javascript sources | |
13 Files = %w(js/Build/Minifier/basic.js | |
14 lib/excanvas/excanvas.js | |
15 lib/slider/js/range.js | |
16 lib/slider/js/slider.js | |
17 lib/slider/js/timer.js | |
18 lib/openlayers/OpenLayers.js | |
19 lib/jquery/jquery-deparam.min.js | |
20 lib/jquery/jquery.remember.js | |
21 lib/jquery/purl.min.js | |
22 lib/jquery-ui/jquery-ui-1.10.3.custom.js | |
23 lib/jszip/jszip.js | |
24 lib/jszip/jszip-deflate.js | |
25 lib/jszip/jszip-inflate.js | |
26 lib/jszip/jszip-load.js | |
27 lib/momentjs/moment.js | |
28 lib/ucsv/ucsv-1.1.0-min.js | |
29 lib/flot/jquery.flot.js | |
30 lib/flot/jquery.flot.pie.js | |
31 lib/flot/jquery.flot.resize.js | |
32 lib/flot/jquery.flot.selection.js | |
33 lib/flot/jquery.flot.time.js | |
34 lib/flot/jquery.flot.tooltip.js | |
35 lib/SimileRemnants.js | |
36 js/Util/Tooltips.js | |
37 js/GeoTemConfig.js | |
38 js/Map/MapControl.js | |
39 js/Map/CircleObject.js | |
40 js/Util/FilterBar.js | |
41 js/Util/Selection.js | |
42 js/Map/PlacenameTags.js | |
43 js/Map/MapConfig.js | |
44 js/Map/MapGui.js | |
45 js/Map/MapWidget.js | |
46 js/Time/TimeConfig.js | |
47 js/Time/TimeGui.js | |
48 js/Time/TimeWidget.js | |
49 js/Table/TableConfig.js | |
50 js/Table/TableGui.js | |
51 js/Table/TableWidget.js | |
52 js/Table/Table.js | |
53 js/Dataloader/Dataloader.js | |
54 js/Dataloader/DataloaderConfig.js | |
55 js/Dataloader/DataloaderGui.js | |
56 js/Dataloader/DataloaderWidget.js | |
57 js/FuzzyTimeline/FuzzyTimelineConfig.js | |
58 js/FuzzyTimeline/FuzzyTimelineDensity.js | |
59 js/FuzzyTimeline/FuzzyTimelineGui.js | |
60 js/FuzzyTimeline/FuzzyTimelineRangeBars.js | |
61 js/FuzzyTimeline/FuzzyTimelineRangePiechart.js | |
62 js/FuzzyTimeline/FuzzyTimelineRangeSlider.js | |
63 js/FuzzyTimeline/FuzzyTimelineWidget.js | |
64 js/Overlayloader/Overlayloader.js | |
65 js/Overlayloader/OverlayloaderConfig.js | |
66 js/Overlayloader/OverlayloaderGui.js | |
67 js/Overlayloader/OverlayloaderWidget.js | |
68 js/PieChart/PieChart.js | |
69 js/PieChart/PieChartCategoryChooser.js | |
70 js/PieChart/PieChartConfig.js | |
71 js/PieChart/PieChartGui.js | |
72 js/PieChart/PieChartHashFunctions.js | |
73 js/PieChart/PieChartWidget.js | |
74 js/Storytelling/Storytelling.js | |
75 js/Storytelling/StorytellingConfig.js | |
76 js/Storytelling/StorytellingGui.js | |
77 js/Storytelling/StorytellingWidget.js | |
78 js/Util/DataObject.js | |
79 js/Util/Dataset.js | |
80 js/Time/TimeDataSource.js | |
81 js/Map/Binning.js | |
82 js/Map/MapDataSource.js | |
83 js/Map/Clustering.js | |
84 js/Util/Dropdown.js | |
85 js/Map/MapZoomSlider.js | |
86 js/Map/MapPopup.js | |
87 js/Map/PlacenamePopup.js | |
88 js/Util/Publisher.js | |
89 js/Util/WidgetWrapper.js | |
90 js/Build/Minifier/final.js) | |
91 | |
92 # css sources | |
93 Cssfiles = %w(lib/openlayers/theme/default/style.css | |
94 lib/jquery-ui/jquery-ui-1.10.3.custom.css | |
95 css/style.css) | |
96 | |
97 def cat_files(outputfile, basename) | |
98 File.open(outputfile, 'a') do |x| | |
99 Files.each do |f| | |
100 x.puts(File.open(f).read.gsub('REPLACEME-REPLACEME', basename)) | |
101 end | |
102 end | |
103 end | |
104 | |
105 file CSS_FILE => Cssfiles do | |
106 File.open(CSS_FILE, 'w') do |x| | |
107 Cssfiles.each do |f| | |
108 x.puts(File.open(f).read) | |
109 end | |
110 end | |
111 end | |
112 | |
113 # Just one big JS file, no compression. | |
114 file OUTPUT_FILE => Files do | |
115 basename = File.basename(OUTPUT_FILE, ".js") | |
116 | |
117 File.open(OUTPUT_FILE, 'w') do |x| | |
118 x.puts("(function($){\n\nvar jQuery = $;"); | |
119 end | |
120 | |
121 cat_files(OUTPUT_FILE, basename) | |
122 | |
123 File.open(OUTPUT_FILE, 'a') do |x| | |
124 x.puts("})(jQuery);"); | |
125 end | |
126 end | |
127 | |
128 task :copyJqueryUIImageDirectory do | |
129 @source = "./lib/jquery-ui/images" | |
130 @target = "./css/images" | |
131 @includePattern = "/**/*" | |
132 FileUtils.rm_rf(@target) #remove target directory (if exists) | |
133 FileUtils.mkdir_p(@target) #create the target directory | |
134 files = FileList.new().include("#{@source}#{@includePattern}"); | |
135 files.each do |file| | |
136 #create target location file string (replace source with target in path) | |
137 targetLocation = file.sub(@source, @target) | |
138 #ensure directory exists | |
139 FileUtils.mkdir_p(File.dirname(targetLocation)); | |
140 #copy the file | |
141 FileUtils.cp_r(file, targetLocation) | |
142 end | |
143 end | |
144 | |
145 # Compress it. | |
146 file COMPRESSED_OUTPUT_FILE => Files do | |
147 basename = File.basename(COMPRESSED_OUTPUT_FILE, ".js") | |
148 | |
149 File.open(OUTPUT_FILE, 'w') do |x| | |
150 x.puts("(function($){\n\nvar jQuery = $;"); | |
151 end | |
152 | |
153 cat_files(OUTPUT_FILE, basename) | |
154 | |
155 File.open(OUTPUT_FILE, 'a') do |x| | |
156 x.puts("})(jQuery);"); | |
157 end | |
158 | |
159 system "#{COMPRESS} #{OUTPUT_FILE} >> #{COMPRESSED_OUTPUT_FILE}" | |
160 end | |
161 | |
162 # Clean up the whole thing. | |
163 task :clean do | |
164 rm OUTPUT_FILE | |
165 rm COMPRESSED_OUTPUT_FILE | |
166 rm CSS_FILE | |
167 end |