Module: OptimizeJS

Defined in:
lib/optimize-js.rb,
lib/optimize-js/version.rb

Defined Under Namespace

Classes: CompileError, Railtie, SprocketsProcessor

Constant Summary collapse

GEM_VERSION =
'1.0.3'
JS_VERSION =
'1.0.3'

Class Method Summary collapse

Class Method Details

.js_functionObject



18
19
20
# File 'lib/optimize-js.rb', line 18

def js_function
  'optimizeJS'
end

.js_pathObject



14
15
16
# File 'lib/optimize-js.rb', line 14

def js_path
  File.expand_path('../optimize-js.web.min.js', File.dirname(__FILE__))
end

.patch_sprockets_js_compressor(base) ⇒ Object



1
2
3
4
5
6
7
8
9
10
11
# File 'lib/optimize-js/sprockets-patch.rb', line 1

def OptimizeJS.patch_sprockets_js_compressor(base)
  base.instance_exec do
    alias_method :original_js_compressor=, :js_compressor=

    define_method :js_compressor= do |compressor|
      unregister_bundle_processor 'application/javascript', OptimizeJS::SprocketsProcessor
      send(:original_js_compressor=, compressor)
      register_bundle_processor 'application/javascript', OptimizeJS::SprocketsProcessor
    end
  end
end

.perform(js, options = {}) ⇒ Object



8
9
10
11
12
# File 'lib/optimize-js.rb', line 8

def perform(js, options = {})
  @optimize_js ||= ExecJS.runtime.compile(File.read(js_path))
  raise OptimizeJS::CompileError unless @optimize_js
  @optimize_js.call(js_function, js, options)
end