Sha256: 3dd1521e4113e85df143576fecb80ec5363500e2ce2f9722ccd386e4be96d9e2
Contents?: true
Size: 1.58 KB
Versions: 2
Compression:
Stored size: 1.58 KB
Contents
# coding: utf-8 require 'tilt' require 'childprocess' require 'guard/jasmine' require 'guard/jasmine/util' # Tilt template to generate coverage instrumented # Jasmine specs files. # class JasmineCoverage < Tilt::Template extend ::Guard::Jasmine::Util def prepare end # Returns a coverage instrumented JavaScript file # def evaluate(context, locals) return data unless JasmineCoverage.coverage_bin return data unless file.include?(JasmineCoverage.app_asset_path) Dir.mktmpdir do |path| filename = File.basename(file) input = File.join(path, filename).sub /\.js.+/, '.js' File.write input, data result = %x[#{JasmineCoverage.coverage_bin} instrument --embed-source #{input.shellescape}] raise "Could not generate coverage instrumented file for #{ file }" unless $?.exitstatus == 0 result.gsub input, file end end private # Get the absolute path to the projects assets path `/app/assets`. # # @return [String] the path to the Rails assets # def self.app_asset_path @app_asset_path ||= File.join(Rails.root, 'app', 'assets') end # Returns the coverage executable path. # # @return [String] the path # def self.coverage_bin @coverage_bin ||= which 'istanbul' end end if ENV['COVERAGE'] == 'true' and defined?(Rails) # Guard::Jasmine engine to register coverage instrumented # Jasmine spec files. # class GuardJasmineCoverageEngine < ::Rails::Engine initializer 'guard-jasmine.initialize' do |app| app.assets.register_postprocessor 'application/javascript', JasmineCoverage end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
guard-jasmine-1.19.0 | lib/guard/jasmine/coverage.rb |
guard-jasmine-1.18.3 | lib/guard/jasmine/coverage.rb |