coverband 4.2.0 → 4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +29 -9
  3. data/.travis.yml +10 -8
  4. data/CODE_OF_CONDUCT.md +76 -0
  5. data/Gemfile +3 -1
  6. data/Gemfile.rails4 +1 -0
  7. data/README.md +72 -43
  8. data/Rakefile +14 -3
  9. data/changes.md +66 -11
  10. data/coverband.gemspec +2 -5
  11. data/lib/coverband/adapters/base.rb +64 -45
  12. data/lib/coverband/adapters/file_store.rb +15 -9
  13. data/lib/coverband/adapters/hash_redis_store.rb +182 -0
  14. data/lib/coverband/adapters/redis_store.rb +33 -11
  15. data/lib/coverband/at_exit.rb +2 -11
  16. data/lib/coverband/collectors/coverage.rb +34 -40
  17. data/lib/coverband/collectors/delta.rb +34 -28
  18. data/lib/coverband/collectors/view_tracker.rb +124 -0
  19. data/lib/coverband/configuration.rb +96 -32
  20. data/lib/coverband/integrations/background.rb +9 -4
  21. data/lib/coverband/integrations/{middleware.rb → background_middleware.rb} +2 -6
  22. data/lib/coverband/integrations/bundler.rb +8 -0
  23. data/lib/coverband/integrations/report_middleware.rb +15 -0
  24. data/lib/coverband/integrations/resque.rb +3 -5
  25. data/lib/coverband/reporters/base.rb +40 -16
  26. data/lib/coverband/reporters/console_report.rb +1 -0
  27. data/lib/coverband/reporters/html_report.rb +21 -27
  28. data/lib/coverband/reporters/web.rb +19 -21
  29. data/lib/coverband/utils/absolute_file_converter.rb +47 -0
  30. data/lib/coverband/utils/file_hasher.rb +16 -0
  31. data/lib/coverband/utils/file_list.rb +16 -5
  32. data/lib/coverband/utils/html_formatter.rb +37 -8
  33. data/lib/coverband/utils/lines_classifier.rb +5 -0
  34. data/lib/coverband/utils/railtie.rb +20 -9
  35. data/lib/coverband/utils/relative_file_converter.rb +41 -0
  36. data/lib/coverband/utils/result.rb +1 -37
  37. data/lib/coverband/utils/results.rb +51 -0
  38. data/lib/coverband/utils/s3_report.rb +2 -2
  39. data/lib/coverband/utils/source_file.rb +31 -8
  40. data/lib/coverband/utils/tasks.rb +10 -10
  41. data/lib/coverband/version.rb +5 -1
  42. data/lib/coverband.rb +39 -22
  43. data/public/application.css +6 -6
  44. data/public/application.js +27 -0
  45. data/test/benchmarks/benchmark.rake +167 -73
  46. data/test/benchmarks/init_rails.rake +10 -0
  47. data/test/coverband/adapters/base_test.rb +73 -42
  48. data/test/coverband/adapters/file_store_test.rb +48 -37
  49. data/test/coverband/adapters/hash_redis_store_test.rb +190 -0
  50. data/test/coverband/adapters/redis_store_test.rb +92 -59
  51. data/test/coverband/at_exit_test.rb +0 -2
  52. data/test/coverband/collectors/coverage_test.rb +62 -10
  53. data/test/coverband/collectors/delta_test.rb +36 -6
  54. data/test/coverband/collectors/view_tracker_test.rb +77 -0
  55. data/test/coverband/configuration_test.rb +47 -7
  56. data/test/coverband/coverband_test.rb +14 -2
  57. data/test/coverband/integrations/background_middleware_test.rb +44 -0
  58. data/test/coverband/integrations/background_test.rb +1 -3
  59. data/test/coverband/integrations/report_middleware_test.rb +44 -0
  60. data/test/coverband/integrations/resque_worker_test.rb +6 -6
  61. data/test/coverband/integrations/test_resque_job.rb +3 -1
  62. data/test/coverband/reporters/base_test.rb +2 -79
  63. data/test/coverband/reporters/console_test.rb +2 -6
  64. data/test/coverband/reporters/html_test.rb +58 -19
  65. data/test/coverband/reporters/web_test.rb +0 -10
  66. data/test/coverband/utils/absolute_file_converter_test.rb +56 -0
  67. data/test/coverband/utils/file_groups_test.rb +11 -5
  68. data/test/coverband/utils/file_hasher_test.rb +29 -0
  69. data/test/coverband/utils/file_list_test.rb +5 -5
  70. data/test/coverband/utils/html_formatter_test.rb +43 -0
  71. data/test/coverband/utils/relative_file_converter_test.rb +39 -0
  72. data/test/coverband/utils/result_test.rb +6 -47
  73. data/test/coverband/utils/results_test.rb +54 -0
  74. data/test/coverband/utils/s3_report_test.rb +2 -0
  75. data/test/coverband/utils/source_file_test.rb +50 -0
  76. data/test/dog.rb.erb +12 -0
  77. data/test/forked/rails_full_stack_test.rb +106 -0
  78. data/test/forked/rails_rake_full_stack_test.rb +48 -0
  79. data/test/integration/full_stack_test.rb +17 -16
  80. data/test/rails4_dummy/Rakefile +6 -0
  81. data/test/rails4_dummy/config/application.rb +8 -9
  82. data/test/rails4_dummy/config/coverband.rb +5 -3
  83. data/test/rails5_dummy/Rakefile +6 -0
  84. data/test/rails5_dummy/config/application.rb +6 -10
  85. data/test/rails5_dummy/config/coverband.rb +4 -2
  86. data/test/rails_test_helper.rb +22 -5
  87. data/test/test_helper.rb +45 -8
  88. data/test/unique_files.rb +17 -9
  89. data/views/file_list.erb +2 -2
  90. data/views/gem_list.erb +10 -1
  91. data/views/layout.erb +6 -18
  92. data/views/nav.erb +35 -0
  93. data/views/source_file.erb +13 -4
  94. data/views/source_file_loader.erb +1 -1
  95. data/views/view_tracker.erb +37 -0
  96. metadata +59 -25
  97. data/lib/coverband/utils/file_path_helper.rb +0 -57
  98. data/test/coverband/integrations/middleware_test.rb +0 -96
  99. data/test/integration/rails_full_stack_test.rb +0 -95
data/test/test_helper.rb CHANGED
@@ -7,8 +7,8 @@ original_verbosity = $VERBOSE
7
7
  $VERBOSE = nil
8
8
  require 'rubygems'
9
9
  require 'aws-sdk-s3'
10
- require 'coveralls'
11
10
  require 'simplecov'
11
+ require 'coveralls'
12
12
  require 'minitest/autorun'
13
13
  require 'mocha/minitest'
14
14
  require 'ostruct'
@@ -19,17 +19,30 @@ require 'pry-byebug'
19
19
  require_relative 'unique_files'
20
20
  $VERBOSE = original_verbosity
21
21
 
22
- Coveralls.wear!
22
+ unless ENV['ONESHOT'] || ENV['SIMULATE_ONESHOT']
23
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
24
+ SimpleCov.start do
25
+ add_filter 'test/forked'
26
+ end
27
+
28
+ Coveralls.wear!
29
+ end
23
30
 
24
31
  module Coverband
25
32
  module Test
26
33
  def self.reset
27
- [:eager_loading, nil].each do |type|
34
+ Coverband.configuration.redis_namespace = 'coverband_test'
35
+ Coverband.configuration.store.instance_variable_set(:@redis_namespace, 'coverband_test')
36
+ Coverband.configuration.store.class.class_variable_set(:@@path_cache, {})
37
+ %i[eager_loading runtime].each do |type|
28
38
  Coverband.configuration.store.type = type
29
39
  Coverband.configuration.store.clear!
30
40
  end
31
41
  Coverband.configuration.reset
32
42
  Coverband::Collectors::Coverage.instance.reset_instance
43
+ Coverband::Utils::RelativeFileConverter.reset
44
+ Coverband::Utils::AbsoluteFileConverter.reset
45
+ Coverband.configuration.redis_namespace = 'coverband_test'
33
46
  Coverband::Background.stop
34
47
  end
35
48
 
@@ -60,6 +73,7 @@ def test(name, &block)
60
73
  false
61
74
  end
62
75
  raise "#{test_name} is already defined in #{self}" if defined
76
+
63
77
  if block_given?
64
78
  define_method(test_name, &block)
65
79
  else
@@ -69,10 +83,8 @@ def test(name, &block)
69
83
  end
70
84
  end
71
85
 
72
- def mock_file_hash
73
- mock_file = mock('mock_file')
74
- mock_file.expects(:hexdigest).at_least_once.returns('abcd')
75
- Digest::MD5.expects(:file).at_least_once.returns(mock_file)
86
+ def mock_file_hash(hash: 'abcd')
87
+ Coverband::Utils::FileHasher.expects(:hash).at_least_once.returns(hash)
76
88
  end
77
89
 
78
90
  def example_line
@@ -83,16 +95,41 @@ def basic_coverage
83
95
  { 'app_path/dog.rb' => example_line }
84
96
  end
85
97
 
98
+ def basic_coverage_full_path
99
+ { basic_coverage_file_full_path => example_line }
100
+ end
101
+
102
+ def basic_source_fixture_coverage
103
+ { source_fixture('sample.rb') => example_line }
104
+ end
105
+
106
+ def basic_coverage_file_full_path
107
+ "#{test_root}/dog.rb"
108
+ end
109
+
86
110
  def source_fixture(filename)
87
111
  File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', filename))
88
112
  end
89
113
 
114
+ def fixtures_root
115
+ File.expand_path(File.join(File.dirname(__FILE__), 'fixtures'))
116
+ end
117
+
90
118
  def test_root
91
119
  File.expand_path(File.join(File.dirname(__FILE__)))
92
120
  end
93
121
 
122
+ ###
123
+ # This handles an issue where the store is setup in tests prior to being able to set the namespace
124
+ ###
94
125
  def store
95
- Coverband.configuration.store
126
+ if Coverband.configuration.store.redis_namespace == 'coverband_test'
127
+ Coverband.configuration.store
128
+ else
129
+ Coverband.configuration.redis_namespace = 'coverband_test'
130
+ Coverband.configuration.instance_variable_set(:@store, nil)
131
+ Coverband.configuration.store
132
+ end
96
133
  end
97
134
 
98
135
  # Taken from http://stackoverflow.com/questions/4459330/how-do-i-temporarily-redirect-stderr-in-ruby
data/test/unique_files.rb CHANGED
@@ -2,22 +2,30 @@
2
2
 
3
3
  require 'securerandom'
4
4
  require 'fileutils'
5
+ require 'erb'
6
+ require 'ostruct'
5
7
 
6
- UNIQUE_FILES_DIR = "./test/unique_files"
8
+ UNIQUE_FILES_DIR = './test/unique_files'
7
9
 
8
- def require_unique_file(file = 'dog.rb')
9
- dir = "#{UNIQUE_FILES_DIR}/#{SecureRandom.uuid}"
10
- FileUtils.mkdir_p(dir)
11
- temp_file = "#{dir}/#{file}"
12
- File.open(temp_file, 'w'){ |w| w.write(File.read("./test/#{file}")) }
10
+ def require_unique_file(file = 'dog.rb', variables = {})
11
+ uuid = SecureRandom.uuid
12
+ dir = "#{UNIQUE_FILES_DIR}/#{uuid}"
13
+ file_name = file.sub('.erb', '')
14
+ temp_file = "#{dir}/#{file_name}"
15
+ FileUtils.mkdir_p(Pathname.new(temp_file).dirname.to_s)
16
+ file_contents = File.read("./test/#{file}")
17
+ file_contents = ERB.new(file_contents).result(OpenStruct.new(variables).instance_eval { binding }) if variables.any?
18
+ File.open(temp_file, 'w') { |w| w.write(file_contents) }
13
19
  require temp_file
14
- temp_file
20
+ Coverband::Utils::RelativeFileConverter.convert(File.expand_path(temp_file))
15
21
  end
16
22
 
17
23
  def remove_unique_files
18
24
  FileUtils.rm_r(UNIQUE_FILES_DIR) if File.exist?(UNIQUE_FILES_DIR)
19
25
  end
20
26
 
21
- Minitest.after_run do
22
- remove_unique_files
27
+ if defined?(Minitest)
28
+ Minitest.after_run do
29
+ remove_unique_files
30
+ end
23
31
  end
data/views/file_list.erb CHANGED
@@ -39,7 +39,7 @@
39
39
  <%= link_to_source_file(source_file) %>
40
40
  </td>
41
41
  <td class="<%= coverage_css_class(source_file.covered_percent) %> strong"><%= source_file.covered_percent.round(2).to_s %> %</td>
42
- <% runtime_percentage = result.file_with_type(source_file, Coverband::RUNTIME_TYPE).try(:covered_percent).try(:round, 2) %>
42
+ <% runtime_percentage = result.runtime_relevant_coverage(source_file) %>
43
43
  <td class="<%= "#{coverage_css_class(runtime_percentage)}" %> strong">
44
44
  <%= "#{runtime_percentage || '0'} %" %>
45
45
  </td>
@@ -47,7 +47,7 @@
47
47
  <td><%= source_file.covered_lines.count + source_file.missed_lines.count %></td>
48
48
  <td><%= source_file.covered_lines.count %></td>
49
49
  <td>
50
- <%= result.file_with_type(source_file, Coverband::RUNTIME_TYPE).try(:covered_lines).try(:count) || 0 %>
50
+ <%= result.file_with_type(source_file, Coverband::RUNTIME_TYPE)&.covered_lines_count || 0 %>
51
51
  </td>
52
52
  <td><%= source_file.missed_lines.count %></td>
53
53
  <td><%= source_file.covered_strength %></td>
data/views/gem_list.erb CHANGED
@@ -20,8 +20,10 @@
20
20
  <tr>
21
21
  <th>Gem</th>
22
22
  <th>% covered</th>
23
+ <th>% runtime</th>
23
24
  <th>Relevant Lines</th>
24
25
  <th>Lines covered</th>
26
+ <th>Lines runtime</th>
25
27
  <th>Lines missed</th>
26
28
  <th>Avg. Hits / Line</th>
27
29
  </tr>
@@ -37,10 +39,17 @@
37
39
  <% end %>
38
40
  </td>
39
41
  <td class="<%= coverage_css_class(source_file.covered_percent) %> strong"><%= source_file.covered_percent.round(2).to_s %> %</td>
42
+ <% runtime_percentage = result.group_file_list_with_type(title, source_file, Coverband::RUNTIME_TYPE)&.formatted_covered_percent %>
43
+ <td class="<%= "#{coverage_css_class(runtime_percentage)}" %> strong">
44
+ <%= "#{runtime_percentage || '0'} %" %>
45
+ </td>
40
46
  <td><%= source_file.covered_lines + source_file.missed_lines %></td>
41
47
  <td><%= source_file.covered_lines %></td>
48
+ <td>
49
+ <%= result.group_file_list_with_type(title, source_file, Coverband::RUNTIME_TYPE)&.covered_lines || 0 %>
50
+ </td>
42
51
  <td><%= source_file.missed_lines %></td>
43
- <td><%= source_file.covered_strength %></td>
52
+ <td><%= source_file.covered_strength.round(1) %></td>
44
53
  </tr>
45
54
  <% end %>
46
55
  </tbody>
data/views/layout.erb CHANGED
@@ -15,23 +15,7 @@
15
15
  <img src="<%= assets_path('loading.gif') %>" alt="loading"/>
16
16
  </div>
17
17
  <div id="wrapper" style="display:none;">
18
- <div id="header">
19
- <a href='<%= base_path %>'>Coverband Admin</a> &nbsp;
20
- <a href='<%= base_path %>settings'>Info</a> &nbsp;
21
- <%= button("#{base_path}collect_coverage", 'force coverage collection') %> &nbsp;
22
- <%= button("#{base_path}reload_files", 'reload Coverband files') %> &nbsp;
23
- <% if Coverband.configuration.web_enable_clear %>
24
- <%= button("#{base_path}clear", 'clear coverage report', delete: true) %>
25
- <% end %>
26
- <% if Coverband.configuration.web_debug %>
27
- <a href='<%= base_path %>debug_data'>Debug Data</a> &nbsp;
28
- <% end %>
29
- </div>
30
- <% if notice.to_s.length > 0 %>
31
- <div class="notice"><%= notice %></div>
32
- <% end %>
33
- <div class="timestamp">Generated <%= timeago(Time.now) %></div>
34
- <ul class="group_tabs"></ul>
18
+ <%= display_nav %>
35
19
 
36
20
  <div id="content">
37
21
  <%= formatted_file_list("All Files", result, result.source_files) unless view_gems? %>
@@ -48,7 +32,11 @@
48
32
  <div class="source_files">
49
33
  <% result.source_files.each do |source_file| %>
50
34
  <% if (!source_file.gem? || (view_gems? && gem_details? && source_file.gem? )) %>
51
- <%= formatted_source_file_loader(result, source_file) %>
35
+ <% if static_html? %>
36
+ <%= formatted_source_file(result, source_file) %>
37
+ <% else %>
38
+ <%= formatted_source_file_loader(result, source_file) %>
39
+ <% end %>
52
40
  <% end %>
53
41
  <% end %>
54
42
  </div>
data/views/nav.erb ADDED
@@ -0,0 +1,35 @@
1
+
2
+ <div id="header">
3
+ <a href='<%= base_path %>'>Coverband Admin</a> &nbsp;
4
+ <a href='<%= base_path %>settings'>Info</a> &nbsp;
5
+ <% if Coverband.configuration.web_enable_clear %>
6
+ <%= button("#{base_path}clear", 'clear coverage report', delete: true) %>
7
+ <% end %>
8
+ <% if Coverband.configuration.web_debug %>
9
+ <a href='<%= base_path %>debug_data'>Debug Data</a> &nbsp;
10
+ <% end %>
11
+ </div>
12
+ <% if notice.to_s.length > 0 %>
13
+ <div class="notice"><%= notice %></div>
14
+ <% end %>
15
+ <div class="timestamp">Generated <%= timeago(Time.now) %></div>
16
+ <br/>
17
+ <% if defined?(result) %>
18
+ <div class="timestamp">
19
+ Coverage Recording Started: <%= timeago(result.source_files.first_seen_at) %>
20
+ </div>
21
+ <% end %>
22
+
23
+ <ul class="group_tabs">
24
+ </ul>
25
+
26
+ <ul class="extra_tabs">
27
+ <% if nav_options[:show_coverage_link] %>
28
+ <li><a href='<%= base_path %>'>Coverage</a></li>
29
+ <% end %>
30
+ <% if Coverband.configuration.track_views %>
31
+ <li class='<%= nav_options[:show_coverage_link] ? 'active' : '' %>'>
32
+ <a href='<%= base_path %>view_tracker'>Views Tracker</a>
33
+ </li>
34
+ <% end %>
35
+ </ul>
@@ -2,14 +2,23 @@
2
2
  <div class="header">
3
3
  <h3><%= shortened_filename source_file %></h3>
4
4
  <h4>
5
- <span class="<%= coverage_css_class(source_file.covered_percent) %>"><%= source_file.covered_percent.round(2).to_s %> %</span>
6
- covered
5
+ <span class="<%= coverage_css_class(source_file.covered_percent) %>">
6
+ <%= source_file.covered_percent.round(2).to_s %> %
7
+ </span>
8
+ covered,
9
+
10
+ <span class="<%= coverage_css_class(source_file.covered_percent) %>">
11
+ <%= result.runtime_relevant_coverage(source_file) %> %
12
+ </span>
13
+ runtime covered
14
+
7
15
  <% if Coverband.configuration.web_enable_clear %>
8
16
  <%= button("#{base_path}clear_file?filename=#{source_file.relative_path}", 'clear file coverage') %> &nbsp;
9
17
  <% end %>
10
18
  </h4>
11
19
  <div>
12
20
  <b><%= source_file.lines_of_code %></b> relevant lines.
21
+ <b><%= result.runtime_relavent_lines(source_file) %></b> runtime relevant lines.
13
22
  <span class="green"><b><%= source_file.covered_lines.count %></b> lines covered</span> and
14
23
  <span class="red"><b><%= source_file.missed_lines.count %></b> lines missed.</span>
15
24
  </div>
@@ -25,9 +34,9 @@
25
34
  <li class="<%= line.status %>" data-hits="<%= line.coverage ? line.coverage : '' %>" data-linenumber="<%= line.number %>">
26
35
  <% if line.covered? %><span class="hits">
27
36
  load:
28
- <%= result.file_with_type(source_file, Coverband::EAGER_TYPE).try(:lines).try(:[], index).try(:coverage) || 0 %>,
37
+ <%= result.file_with_type(source_file, Coverband::EAGER_TYPE)&.line_coverage(index) || 0 %>,
29
38
  runtime:
30
- <%= result.file_with_type(source_file, Coverband::RUNTIME_TYPE).try(:lines).try(:[], index).try(:coverage) || 0 %>
39
+ <%= result.file_with_type(source_file, Coverband::RUNTIME_TYPE)&.line_coverage(index) || 0 %>
31
40
  all: <%= line.coverage %>
32
41
  </span><% end %>
33
42
  <% if line.skipped? %><span class="hits">skipped</span><% end %>
@@ -1,6 +1,6 @@
1
1
  <div class="source_table" id="<%= id source_file %>" data-loader-url="<%= base_path %>load_file_details?filename=<%= source_file.filename %>">
2
2
  <div class='loader'>
3
- loading...
3
+ loading source data...
4
4
  <br/>
5
5
  <img src="<%= assets_path('loading.gif') %>" alt="loading"/>
6
6
  </div>
@@ -0,0 +1,37 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Coverband Info: <%= Coverband::VERSION %></title>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
+ <script src='<%= assets_path('application.js') %>' type='text/javascript'></script>
7
+ <link href='<%= assets_path('application.css') %>' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
+ <link rel="icon" type="image/png" href="<%= assets_path('favicon.png') %>" />
9
+ </head>
10
+
11
+ <body>
12
+ <div id="wrapper" style="">
13
+ <%= display_nav(show_coverage_link: true) %>
14
+ <div id="content">
15
+ <% tracker = Coverband::Collectors::ViewTracker.new(store: Coverband.configuration.store) %>
16
+ <h2>Unused Views: (<%= tracker.unused_views.length %>)</h2>
17
+ <p>These views have never been rendered</p>
18
+ <ul>
19
+ <% tracker.unused_views.each do |view_file| %>
20
+ <li><%= view_file %></li>
21
+ <% end %>
22
+ </ul>
23
+
24
+ <h2>Used Views: (<%= tracker.used_views.length %>)</h2>
25
+ <p>These views have been rendered at least once</p>
26
+ <ul>
27
+ <% tracker.used_views.each do |view_file| %>
28
+ <li><%= view_file %></li>
29
+ <% end %>
30
+ </ul>
31
+ </div>
32
+ <div id="footer">
33
+ Generated by <a href="http://github.com/danmayer/coverband">Coverband</a> v<%= Coverband::VERSION %>
34
+ </div>
35
+ </div>
36
+ </body>
37
+ </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coverband
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Mayer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-04-24 00:00:00.000000000 Z
12
+ date: 2019-08-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-s3
@@ -96,35 +96,35 @@ dependencies:
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
- name: mocha
99
+ name: minitest-fork_executor
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - "~>"
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 1.7.0
104
+ version: '0'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - "~>"
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: 1.7.0
111
+ version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
- name: rack
113
+ name: mocha
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ">="
116
+ - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '0'
118
+ version: 1.7.0
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ">="
123
+ - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '0'
125
+ version: 1.7.0
126
126
  - !ruby/object:Gem::Dependency
127
- name: rack-test
127
+ name: rack
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - ">="
@@ -138,7 +138,7 @@ dependencies:
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
- name: rake
141
+ name: rack-test
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - ">="
@@ -152,7 +152,7 @@ dependencies:
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  - !ruby/object:Gem::Dependency
155
- name: resque
155
+ name: rake
156
156
  requirement: !ruby/object:Gem::Requirement
157
157
  requirements:
158
158
  - - ">="
@@ -166,7 +166,7 @@ dependencies:
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
168
  - !ruby/object:Gem::Dependency
169
- name: minitest-reporters
169
+ name: resque
170
170
  requirement: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - ">="
@@ -180,7 +180,7 @@ dependencies:
180
180
  - !ruby/object:Gem::Version
181
181
  version: '0'
182
182
  - !ruby/object:Gem::Dependency
183
- name: classifier-reborn
183
+ name: rubocop
184
184
  requirement: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - ">="
@@ -259,6 +259,7 @@ files:
259
259
  - ".gitignore"
260
260
  - ".rubocop.yml"
261
261
  - ".travis.yml"
262
+ - CODE_OF_CONDUCT.md
262
263
  - Gemfile
263
264
  - Gemfile.rails4
264
265
  - LICENSE
@@ -271,26 +272,32 @@ files:
271
272
  - lib/coverband.rb
272
273
  - lib/coverband/adapters/base.rb
273
274
  - lib/coverband/adapters/file_store.rb
275
+ - lib/coverband/adapters/hash_redis_store.rb
274
276
  - lib/coverband/adapters/redis_store.rb
275
277
  - lib/coverband/at_exit.rb
276
278
  - lib/coverband/collectors/coverage.rb
277
279
  - lib/coverband/collectors/delta.rb
280
+ - lib/coverband/collectors/view_tracker.rb
278
281
  - lib/coverband/configuration.rb
279
282
  - lib/coverband/integrations/background.rb
280
- - lib/coverband/integrations/middleware.rb
283
+ - lib/coverband/integrations/background_middleware.rb
284
+ - lib/coverband/integrations/bundler.rb
281
285
  - lib/coverband/integrations/rack_server_check.rb
286
+ - lib/coverband/integrations/report_middleware.rb
282
287
  - lib/coverband/integrations/resque.rb
283
288
  - lib/coverband/reporters/base.rb
284
289
  - lib/coverband/reporters/console_report.rb
285
290
  - lib/coverband/reporters/html_report.rb
286
291
  - lib/coverband/reporters/web.rb
292
+ - lib/coverband/utils/absolute_file_converter.rb
287
293
  - lib/coverband/utils/file_groups.rb
294
+ - lib/coverband/utils/file_hasher.rb
288
295
  - lib/coverband/utils/file_list.rb
289
- - lib/coverband/utils/file_path_helper.rb
290
296
  - lib/coverband/utils/gem_list.rb
291
297
  - lib/coverband/utils/html_formatter.rb
292
298
  - lib/coverband/utils/lines_classifier.rb
293
299
  - lib/coverband/utils/railtie.rb
300
+ - lib/coverband/utils/relative_file_converter.rb
294
301
  - lib/coverband/utils/result.rb
295
302
  - lib/coverband/utils/results.rb
296
303
  - lib/coverband/utils/s3_report.rb
@@ -328,32 +335,42 @@ files:
328
335
  - test/benchmarks/coverage_fork.sh
329
336
  - test/benchmarks/dog.rb
330
337
  - test/benchmarks/graph_bench.sh
338
+ - test/benchmarks/init_rails.rake
331
339
  - test/coverband/adapters/base_test.rb
332
340
  - test/coverband/adapters/file_store_test.rb
341
+ - test/coverband/adapters/hash_redis_store_test.rb
333
342
  - test/coverband/adapters/redis_store_test.rb
334
343
  - test/coverband/at_exit_test.rb
335
344
  - test/coverband/collectors/coverage_test.rb
336
345
  - test/coverband/collectors/delta_test.rb
346
+ - test/coverband/collectors/view_tracker_test.rb
337
347
  - test/coverband/configuration_test.rb
338
348
  - test/coverband/coverband_test.rb
349
+ - test/coverband/integrations/background_middleware_test.rb
339
350
  - test/coverband/integrations/background_test.rb
340
- - test/coverband/integrations/middleware_test.rb
341
351
  - test/coverband/integrations/rack_server_check_test.rb
352
+ - test/coverband/integrations/report_middleware_test.rb
342
353
  - test/coverband/integrations/resque_worker_test.rb
343
354
  - test/coverband/integrations/test_resque_job.rb
344
355
  - test/coverband/reporters/base_test.rb
345
356
  - test/coverband/reporters/console_test.rb
346
357
  - test/coverband/reporters/html_test.rb
347
358
  - test/coverband/reporters/web_test.rb
359
+ - test/coverband/utils/absolute_file_converter_test.rb
348
360
  - test/coverband/utils/file_groups_test.rb
361
+ - test/coverband/utils/file_hasher_test.rb
349
362
  - test/coverband/utils/file_list_test.rb
350
363
  - test/coverband/utils/gem_list_test.rb
364
+ - test/coverband/utils/html_formatter_test.rb
351
365
  - test/coverband/utils/lines_classifier_test.rb
366
+ - test/coverband/utils/relative_file_converter_test.rb
352
367
  - test/coverband/utils/result_test.rb
368
+ - test/coverband/utils/results_test.rb
353
369
  - test/coverband/utils/s3_report_test.rb
354
370
  - test/coverband/utils/source_file_line_test.rb
355
371
  - test/coverband/utils/source_file_test.rb
356
372
  - test/dog.rb
373
+ - test/dog.rb.erb
357
374
  - test/fake_app/basic_rack.rb
358
375
  - test/fixtures/app/controllers/sample_controller.rb
359
376
  - test/fixtures/app/models/user.rb
@@ -362,8 +379,10 @@ files:
362
379
  - test/fixtures/skipped.rb
363
380
  - test/fixtures/skipped_and_executed.rb
364
381
  - test/fixtures/utf-8.rb
382
+ - test/forked/rails_full_stack_test.rb
383
+ - test/forked/rails_rake_full_stack_test.rb
365
384
  - test/integration/full_stack_test.rb
366
- - test/integration/rails_full_stack_test.rb
385
+ - test/rails4_dummy/Rakefile
367
386
  - test/rails4_dummy/app/controllers/dummy_controller.rb
368
387
  - test/rails4_dummy/config.ru
369
388
  - test/rails4_dummy/config/application.rb
@@ -373,6 +392,7 @@ files:
373
392
  - test/rails4_dummy/config/routes.rb
374
393
  - test/rails4_dummy/config/secrets.yml
375
394
  - test/rails4_dummy/tmp/.keep
395
+ - test/rails5_dummy/Rakefile
376
396
  - test/rails5_dummy/app/controllers/dummy_controller.rb
377
397
  - test/rails5_dummy/config.ru
378
398
  - test/rails5_dummy/config/application.rb
@@ -386,9 +406,11 @@ files:
386
406
  - views/file_list.erb
387
407
  - views/gem_list.erb
388
408
  - views/layout.erb
409
+ - views/nav.erb
389
410
  - views/settings.erb
390
411
  - views/source_file.erb
391
412
  - views/source_file_loader.erb
413
+ - views/view_tracker.erb
392
414
  homepage: https://github.com/danmayer/coverband
393
415
  licenses:
394
416
  - MIT
@@ -408,8 +430,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
408
430
  - !ruby/object:Gem::Version
409
431
  version: '0'
410
432
  requirements: []
411
- rubyforge_project:
412
- rubygems_version: 2.7.8
433
+ rubygems_version: 3.0.3
413
434
  signing_key:
414
435
  specification_version: 4
415
436
  summary: Rack middleware to help measure production code usage (LOC runtime usage)
@@ -419,32 +440,42 @@ test_files:
419
440
  - test/benchmarks/coverage_fork.sh
420
441
  - test/benchmarks/dog.rb
421
442
  - test/benchmarks/graph_bench.sh
443
+ - test/benchmarks/init_rails.rake
422
444
  - test/coverband/adapters/base_test.rb
423
445
  - test/coverband/adapters/file_store_test.rb
446
+ - test/coverband/adapters/hash_redis_store_test.rb
424
447
  - test/coverband/adapters/redis_store_test.rb
425
448
  - test/coverband/at_exit_test.rb
426
449
  - test/coverband/collectors/coverage_test.rb
427
450
  - test/coverband/collectors/delta_test.rb
451
+ - test/coverband/collectors/view_tracker_test.rb
428
452
  - test/coverband/configuration_test.rb
429
453
  - test/coverband/coverband_test.rb
454
+ - test/coverband/integrations/background_middleware_test.rb
430
455
  - test/coverband/integrations/background_test.rb
431
- - test/coverband/integrations/middleware_test.rb
432
456
  - test/coverband/integrations/rack_server_check_test.rb
457
+ - test/coverband/integrations/report_middleware_test.rb
433
458
  - test/coverband/integrations/resque_worker_test.rb
434
459
  - test/coverband/integrations/test_resque_job.rb
435
460
  - test/coverband/reporters/base_test.rb
436
461
  - test/coverband/reporters/console_test.rb
437
462
  - test/coverband/reporters/html_test.rb
438
463
  - test/coverband/reporters/web_test.rb
464
+ - test/coverband/utils/absolute_file_converter_test.rb
439
465
  - test/coverband/utils/file_groups_test.rb
466
+ - test/coverband/utils/file_hasher_test.rb
440
467
  - test/coverband/utils/file_list_test.rb
441
468
  - test/coverband/utils/gem_list_test.rb
469
+ - test/coverband/utils/html_formatter_test.rb
442
470
  - test/coverband/utils/lines_classifier_test.rb
471
+ - test/coverband/utils/relative_file_converter_test.rb
443
472
  - test/coverband/utils/result_test.rb
473
+ - test/coverband/utils/results_test.rb
444
474
  - test/coverband/utils/s3_report_test.rb
445
475
  - test/coverband/utils/source_file_line_test.rb
446
476
  - test/coverband/utils/source_file_test.rb
447
477
  - test/dog.rb
478
+ - test/dog.rb.erb
448
479
  - test/fake_app/basic_rack.rb
449
480
  - test/fixtures/app/controllers/sample_controller.rb
450
481
  - test/fixtures/app/models/user.rb
@@ -453,8 +484,10 @@ test_files:
453
484
  - test/fixtures/skipped.rb
454
485
  - test/fixtures/skipped_and_executed.rb
455
486
  - test/fixtures/utf-8.rb
487
+ - test/forked/rails_full_stack_test.rb
488
+ - test/forked/rails_rake_full_stack_test.rb
456
489
  - test/integration/full_stack_test.rb
457
- - test/integration/rails_full_stack_test.rb
490
+ - test/rails4_dummy/Rakefile
458
491
  - test/rails4_dummy/app/controllers/dummy_controller.rb
459
492
  - test/rails4_dummy/config.ru
460
493
  - test/rails4_dummy/config/application.rb
@@ -464,6 +497,7 @@ test_files:
464
497
  - test/rails4_dummy/config/routes.rb
465
498
  - test/rails4_dummy/config/secrets.yml
466
499
  - test/rails4_dummy/tmp/.keep
500
+ - test/rails5_dummy/Rakefile
467
501
  - test/rails5_dummy/app/controllers/dummy_controller.rb
468
502
  - test/rails5_dummy/config.ru
469
503
  - test/rails5_dummy/config/application.rb