0
|
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
|