Sha256: e40f2c166a1826c27e1d61a7adecabf5bc07b2beae6cd809c6db4e533fb97e3f
Contents?: true
Size: 1.75 KB
Versions: 5
Compression:
Stored size: 1.75 KB
Contents
module Massimo class Javascript < Massimo::Resource def render compress(compile) end def extension @extension ||= '.js' end protected def compile case source_path.extname when '.coffee' require 'coffee-script' unless defined?(CoffeeScript) CoffeeScript.compile(content, Massimo.config.options_for(:coffee_script)) else require 'sprockets' unless defined?(Sprockets) options = Massimo.config.options_for(:sprockets).merge( :assert_root => Massimo.config.output_path, :source_files => [ source_path.to_s ] ) secretary = Sprockets::Secretary.new(options) secretary.install_assets secretary.concatenation.to_s end end def compress(javascript) case Massimo.config.javascripts_compressor.to_s when 'min', 'jsmin' require 'jsmin' unless defined?(JSMin) JSMin.minify(javascript) when 'pack', 'packr' require 'packr' unless defined?(Packr) options = { :shrink_vars => true }.merge Massimo.config.options_for(:packr) Packr.pack(javascript, options) when 'yui', 'yui-compressor', 'yui/compressor' require 'yui/compressor' unless defined?(YUI) options = { :munge => true }.merge Massimo.config.options_for(:yui) YUI::JavaScriptCompressor.new(options).compress(javascript) when 'closure', 'closure-compiler', 'closure/compiler' require 'closure-compiler' unless defined?(Closure) options = Massimo.config.options_for(:closure) Closure::Compiler.new(options).compile(javascript) else javascript end.strip end end end
Version data entries
5 entries across 5 versions & 1 rubygems