Sha256: cd515892d0848793a19e854f9b2acc2407e6526123badc75c561840758555a5e
Contents?: true
Size: 1.65 KB
Versions: 3
Compression:
Stored size: 1.65 KB
Contents
# coding: utf-8 require 'tilt' require 'childprocess' 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 # when the environment variable `JSCOVERAGE` is `true` # and the `jscoverage` binary is in the `$PATH`. # 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 config.after_initialize do |app| app.assets.register_postprocessor 'application/javascript', JasmineCoverage end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
guard-jasmine-1.13.1 | lib/guard/jasmine/coverage.rb |
guard-jasmine-1.13.0 | lib/guard/jasmine/coverage.rb |
guard-jasmine-1.12.2 | lib/guard/jasmine/coverage.rb |