Class: Embarista::JavascriptPipeline

Inherits:
Object
  • Object
show all
Defined in:
lib/embarista/javascript_pipeline.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ JavascriptPipeline

Returns a new instance of JavascriptPipeline.



3
4
5
# File 'lib/embarista/javascript_pipeline.rb', line 3

def initialize(options)
  @options = options
end

Instance Method Details

#to_procObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/embarista/javascript_pipeline.rb', line 7

def to_proc
  options = @options
  @options[:prefix] = '' unless @options.has_key?(:prefix)
  Proc.new do
    module_id_generator = proc {|input|
      module_id = input.path.sub(/\.js(\.dev|\.prod)?$/, '')
      module_id.gsub!(%r{^#{options[:root]}/}, options[:prefix]) if options[:root]
      # puts input.path
      # puts "module_id: #{module_id}"
      module_id
    }
    rewrite_minispade_requires(root: options[:root], prefix: options[:prefix])
    concat { |path| ["#{path}.prod", "#{path}.dev"] }
    match "**/*.js.prod" do
      strip_ember_asserts
      uglify(copyright: false) {|input| input}
      minispade(string: true, module_id_generator: module_id_generator)
      concat { Array(options[:concat]).map{|path| path.gsub(/\.js$/, '.min.js')} }
    end
    match "**/*.js.dev" do
      minispade :module_id_generator => module_id_generator
      concat { Array(options[:concat]) }
    end
  end
end