class SimpleCov::Formatter::Bootstrap
Constants
- VERSION
Public Instance Methods
file_mode_format()
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 24 def file_mode_format format = 'w+' # On JRuby/Windows it tries to convert all \n into \r\n in w+ mode. # b mode is binary and outputs "as is". if defined?(JRUBY_VERSION) && !!(RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/i) format = 'wb+' end format end
format(result)
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 13 def format(result) Dir[File.join(File.dirname(__FILE__), '../public/*')].each do |path| FileUtils.cp_r(path, asset_output_path) end File.open(File.join(output_path, "index.html"), file_mode_format) do |file| file.puts template('layout').result(binding) end puts output_message(result) end
output_message(result)
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 36 def output_message(result) "Coverage report generated for #{result.command_name} to #{output_path}. #{result.covered_lines} / #{result.total_lines} LOC (#{result.covered_percent.round(2)}%) covered." end
Private Instance Methods
asset_output_path()
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 51 def asset_output_path return @asset_output_path if defined? @asset_output_path and @asset_output_path @asset_output_path = File.join(output_path, 'assets', SimpleCov::Formatter::HTMLFormatter::VERSION) FileUtils.mkdir_p(@asset_output_path) @asset_output_path end
assets_path(name)
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 58 def assets_path(name) File.join('./assets', SimpleCov::Formatter::HTMLFormatter::VERSION, name) end
coverage_css_class(covered_percent)
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 74 def coverage_css_class(covered_percent) if covered_percent > 90 'green' elsif covered_percent > 80 'yellow' else 'red' end end
formatted_file_list(title, source_files)
click to toggle source
Returns a table containing the given source files
# File lib/simplecov-formatter-bootstrap.rb, line 68 def formatted_file_list(title, source_files) title_id = title.gsub(/^[^a-zA-Z]+/, '').gsub(/[^a-zA-Z0-9\-\_]/, '') title_id # Ruby will give a warning when we do not use this except via the binding :( FIXME template('file_list').result(binding) end
formatted_source_file(source_file)
click to toggle source
Returns the html for the given source_file
# File lib/simplecov-formatter-bootstrap.rb, line 63 def formatted_source_file(source_file) template('source_file').result(binding) end
id(source_file)
click to toggle source
Return a (kind of) unique id for the source file given. Uses SHA1 on path for the id
# File lib/simplecov-formatter-bootstrap.rb, line 95 def id(source_file) Digest::SHA1.hexdigest(source_file.filename) end
link_to_source_file(source_file)
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 107 def link_to_source_file(source_file) %Q(<a data-toggle="modal" data-target="##{id source_file}" title="#{shortened_filename source_file}"><i class="fa fa-file-code-o"></i> #{shortened_filename source_file}</a>) end
output_path()
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 47 def output_path SimpleCov.coverage_path end
shortened_filename(source_file)
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 103 def shortened_filename(source_file) source_file.filename.gsub(SimpleCov.root, '.').gsub(/^\.\//, '') end
strength_css_class(covered_strength)
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 84 def strength_css_class(covered_strength) if covered_strength > 1 'green' elsif covered_strength == 1 'yellow' else 'red' end end
template(name)
click to toggle source
Returns the an erb instance for the template of given name
# File lib/simplecov-formatter-bootstrap.rb, line 43 def template(name) ERB.new(File.read(File.join(File.dirname(__FILE__), '../views/', "#{name}.erb"))) end
timeago(time)
click to toggle source
# File lib/simplecov-formatter-bootstrap.rb, line 99 def timeago(time) "<abbr class=\"timeago\" title=\"#{time.iso8601}\">#{time.iso8601}</abbr>" end