Class: Paste::JS::Chain
Instance Method Summary collapse
Methods inherited from Base
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
Methods included from ERBRenderer
Constructor Details
This class inherits a constructor from Paste::JS::Base
Instance Method Details
#paste(*sources) ⇒ Object
5 6 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 32 33 34 35 36 37 38 |
# File 'lib/paste/js/chain.rb', line 5 def paste *sources js_dependencies = [] css_dependencies = [] sources.each do |source| name = result_name [source] if registered? [source] if needs_update?(name) || needs_dependency_update?(name) results[name][:parser].reset! end else register [source] end source_deps = results[name][:parser].js_dependencies js_dependencies = source_deps | js_dependencies end js_dependencies.map! do |d| result = result_name [d] register [d] unless registered? [d] # implicit dependencies write_result result if needs_update?(result) css_dependencies = css_dependencies | results[result][:parser].css_dependencies result end { :javascript => js_dependencies, :css => css_dependencies } end |
#result_name(sources) ⇒ Object
47 48 49 50 51 |
# File 'lib/paste/js/chain.rb', line 47 def result_name sources result = sources.first result += '.js' unless result.end_with?('.js') result end |
#write_result(result) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/paste/js/chain.rb', line 40 def write_result result file = destination result FileUtils.mkdir_p File.dirname(file) FileUtils.cp find(result), file end |