Class: Paste::JS::Unify

Inherits:
Base show all
Defined in:
lib/paste/js/unify.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Methods included from Compress

#compress, #rebuild_with_compression!

Methods included from Cache

#needs_dependency_update?, #needs_update?, #rebuild, #rebuild!, #rebuild_if, #register, #registered?, #results

Methods included from Resolver

#find, #load_path, #resolve

Methods included from ERBRenderer

#render_all_erb, #render_erb

Constructor Details

This class inherits a constructor from Paste::JS::Base

Instance Method Details

#paste(*sources) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/paste/js/unify.rb', line 7

def paste *sources
  result = result_name sources

  register sources unless registered?(sources)

  if needs_update?(result) || needs_dependency_update?(result)
    results[result][:parser].reset! 
    write_result result
  end

  {
    :javascript => [result], 
    :css        => results[result][:parser].css_dependencies
  }
end

#result_name(sources) ⇒ Object



31
32
33
34
# File 'lib/paste/js/unify.rb', line 31

def result_name sources
  to_digest = sources.map{ |s| s.gsub /\.js$/, '' }.sort.join
  Digest::SHA1.hexdigest(to_digest)[0..12] + '.js'
end

#write_result(result) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/paste/js/unify.rb', line 23

def write_result result
  path = destination result
  FileUtils.mkdir_p File.dirname(path)

  results[result][:parser].reset!
  results[result][:parser].concatenation.save_to path
end