6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/squash/javascript/source_mapping_javascript_minifier.rb', line 6
def evaluate(context, locals)
source_map_file = Tempfile.new('sourcemap')
compressor = Closure::Compiler.new(create_source_map: source_map_file.path)
minified = compressor.compress(data)
minified_file = Tempfile.new('minified')
minified_file.write minified
map = JSON.parse(source_map_file.read)
minified_filename = [Rails.application.config.assets.prefix, "#{context.logical_path}-#{digest(minified)}.js"].join('/')
concatenated_filename = [Rails.application.config.assets.prefix, "#{context.logical_path}.js"].join('/')
map['file'] = minified_filename
map['sources'] = [concatenated_filename]
path = source_map_path(digest(minified))
FileUtils.mkdir_p path.dirname
File.open(path, 'w') { |f| f.puts map.to_json }
return minified
end
|