deprecations_detector 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +56 -0
  3. data/.rubocop.yml +22 -0
  4. data/Gemfile +6 -0
  5. data/LICENSE +21 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +74 -0
  8. data/Rakefile +28 -0
  9. data/deprecations_detector.gemspec +38 -0
  10. data/lib/deprecations_detector/active_support/deprecation_decorator.rb +17 -0
  11. data/lib/deprecations_detector/formatters/html/assets/javascripts/application.js +213 -0
  12. data/lib/deprecations_detector/formatters/html/assets/javascripts/libraries/jquery-1.6.2.min.js +18 -0
  13. data/lib/deprecations_detector/formatters/html/assets/javascripts/plugins/highlight.pack.js +1 -0
  14. data/lib/deprecations_detector/formatters/html/assets/javascripts/plugins/jquery.colorbox.js +1090 -0
  15. data/lib/deprecations_detector/formatters/html/assets/javascripts/plugins/jquery.dataTables.min.js +152 -0
  16. data/lib/deprecations_detector/formatters/html/assets/javascripts/plugins/jquery.timeago.js +141 -0
  17. data/lib/deprecations_detector/formatters/html/assets/javascripts/plugins/jquery.url.js +174 -0
  18. data/lib/deprecations_detector/formatters/html/assets/javascripts/settings.js +1 -0
  19. data/lib/deprecations_detector/formatters/html/assets/javascripts/treeview.js +261 -0
  20. data/lib/deprecations_detector/formatters/html/assets/stylesheets/application.css +4 -0
  21. data/lib/deprecations_detector/formatters/html/assets/stylesheets/plugins/highlight.css +129 -0
  22. data/lib/deprecations_detector/formatters/html/assets/stylesheets/plugins/jquery-ui-1.8.4.custom.css +295 -0
  23. data/lib/deprecations_detector/formatters/html/assets/stylesheets/plugins/jquery.colorbox.css +52 -0
  24. data/lib/deprecations_detector/formatters/html/assets/stylesheets/reset.css +103 -0
  25. data/lib/deprecations_detector/formatters/html/assets/stylesheets/screen.css.sass +249 -0
  26. data/lib/deprecations_detector/formatters/html/assets/stylesheets/treeview.css +12 -0
  27. data/lib/deprecations_detector/formatters/html/formatter.rb +169 -0
  28. data/lib/deprecations_detector/formatters/html/public/application.css +852 -0
  29. data/lib/deprecations_detector/formatters/html/public/application.js +2050 -0
  30. data/lib/deprecations_detector/formatters/html/public/colorbox/border.png +0 -0
  31. data/lib/deprecations_detector/formatters/html/public/colorbox/controls.png +0 -0
  32. data/lib/deprecations_detector/formatters/html/public/colorbox/loading.gif +0 -0
  33. data/lib/deprecations_detector/formatters/html/public/colorbox/loading_background.png +0 -0
  34. data/lib/deprecations_detector/formatters/html/public/favicon.png +0 -0
  35. data/lib/deprecations_detector/formatters/html/public/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  36. data/lib/deprecations_detector/formatters/html/public/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  37. data/lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  38. data/lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  39. data/lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  40. data/lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  41. data/lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  42. data/lib/deprecations_detector/formatters/html/public/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  43. data/lib/deprecations_detector/formatters/html/public/images/ui-icons_222222_256x240.png +0 -0
  44. data/lib/deprecations_detector/formatters/html/public/images/ui-icons_2e83ff_256x240.png +0 -0
  45. data/lib/deprecations_detector/formatters/html/public/images/ui-icons_454545_256x240.png +0 -0
  46. data/lib/deprecations_detector/formatters/html/public/images/ui-icons_888888_256x240.png +0 -0
  47. data/lib/deprecations_detector/formatters/html/public/images/ui-icons_cd0a0a_256x240.png +0 -0
  48. data/lib/deprecations_detector/formatters/html/public/loading.gif +0 -0
  49. data/lib/deprecations_detector/formatters/html/public/magnify.png +0 -0
  50. data/lib/deprecations_detector/formatters/html/public/settings.js +1 -0
  51. data/lib/deprecations_detector/formatters/html/views/file_list.erb +24 -0
  52. data/lib/deprecations_detector/formatters/html/views/layout.erb +39 -0
  53. data/lib/deprecations_detector/formatters/html/views/source_file.erb +24 -0
  54. data/lib/deprecations_detector/main.rb +113 -0
  55. data/lib/deprecations_detector/version.rb +5 -0
  56. data/lib/deprecations_detector.rb +10 -0
  57. data/lib/tasks/deprecations/combine.rake +30 -0
  58. data/lib/tasks/deprecations/format.rake +14 -0
  59. metadata +254 -0
@@ -0,0 +1 @@
1
+ window.base_url='../';
@@ -0,0 +1,24 @@
1
+ <div class="file_list_container" id="<%= title_id %>">
2
+ <h2>
3
+ <span class="group_name"><%= title %></span>
4
+ </h2>
5
+ <a name="<%= title_id %>"></a>
6
+ <table class="file_list">
7
+ <thead>
8
+ <tr>
9
+ <th>File name</th>
10
+ <th>Deprecations detected</th>
11
+ <th>Examples with deprecations</th>
12
+ </tr>
13
+ </thead>
14
+ <tbody>
15
+ <% source_files.each do |source_file| %>
16
+ <tr>
17
+ <td class="strong"><%= link_to_source_file(source_file) %></td>
18
+ <td><%= source_file[1].count %></td>
19
+ <td><%= source_file[1].inject(0) { |old, val| old += val.count } %></td>
20
+ </tr>
21
+ <% end %>
22
+ </tbody>
23
+ </table>
24
+ </div>
@@ -0,0 +1,39 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Deprecations for </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
+ <script src='<%= assets_path('settings.js') %>' type='text/javascript'></script>
8
+ <link href='<%= assets_path('application.css') %>' media='screen, projection, print' rel='stylesheet' type='text/css'>
9
+ <link rel="icon" type="image/png" href="<%= assets_path('favicon.png') %>" />
10
+
11
+ <script>
12
+ window.examples = <%= result.flat_map { |_file_path, obj| obj.flat_map { |_line, examples| examples.map { |example| [example[:example_ref].to_s, example] } } }.to_h.to_json %>
13
+ </script>
14
+ </head>
15
+
16
+ <body>
17
+ <div id="loading">
18
+ <img src="<%= assets_path('loading.gif') %>" alt="loading"/>
19
+ </div>
20
+ <div id="wrapper" style="display:none;">
21
+ <div class="timestamp">Generated <%= timeago(Time.now) %></div>
22
+ <ul class="group_tabs"></ul>
23
+
24
+ <div id="content">
25
+ <%= formatted_file_list("All Files", result) %>
26
+
27
+ <% grouped(result).each do |name, files| %>
28
+ <%= formatted_file_list(name, files) %>
29
+ <% end %>
30
+ </div>
31
+
32
+ <div class="source_files">
33
+ <% result.each do |source_file| %>
34
+ <%= formatted_source_file(source_file) %>
35
+ <% end %>
36
+ </div>
37
+ </div>
38
+ </body>
39
+ </html>
@@ -0,0 +1,24 @@
1
+ <% result_data = source_file[1].sort_by { |k, v| k }.to_h %>
2
+ <% lines = result_data.keys %>
3
+ <div class="source_table" id="<%= id source_file %>">
4
+ <div class="header">
5
+ <h3><%= shortened_filename source_file %></h3>
6
+ <h4><%= lines.count %> covered lines</h4>
7
+ </div>
8
+
9
+ <pre>
10
+ <ol>
11
+ <% readfile(source_file).each_with_index do |line, line_number| %>
12
+ <% covered = lines.include?(line_number) %>
13
+ <% attrs = covered ? " class=\"covered\" title=\"#{result_data[line_number].count} examples\"" : ' class="never"' %>
14
+ <li data-linenumber="<%= line_number %>"<%= attrs %>>
15
+ <code class="ruby"><%= CGI.escapeHTML(line.chomp) %></code>
16
+ <% if covered %>
17
+ <% example_refs = result_data[line_number].map {|e| e[:example_ref] } %>
18
+ <div class="deprecations_detector" data-example-refs="<%= example_refs.join(',') %>"></div>
19
+ <% end %>
20
+ </li>
21
+ <% end %>
22
+ </ol>
23
+ </pre>
24
+ </div>
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DeprecationsDetector
4
+ class Main
5
+ include Singleton
6
+
7
+ attr_reader :coverage_matrix, :deprecation_matrix, :suppress_deprecations
8
+ attr_accessor :config, :output_path
9
+
10
+ def initialize
11
+ @config = {
12
+ file_filter: ->(file_path) { file_of_project?(file_path) }
13
+ }
14
+ @output_path = 'tmp'
15
+ end
16
+
17
+ def add(example)
18
+ example_data = slice_attributes(example.metadata, *example_attributes)
19
+ example_data[:example_ref] = example_data.hash
20
+
21
+ changes = {}
22
+
23
+ select_project_files(deprecation_matrix).each do |file_path, lines|
24
+ lines.each do |line, message|
25
+ # next if example.metadata[:file_path] != file_path.gsub(Dir.pwd, '.') && example.metadata[:line_number] != line
26
+
27
+ file_info = { file_path: file_path, line_index: line }
28
+ example = example_data.merge(deprecation_message: message)
29
+
30
+ save_changes(changes, example, **file_info)
31
+ save_changes(@coverage_matrix, example, **file_info)
32
+ end
33
+ end
34
+
35
+ changes
36
+ end
37
+
38
+ def add_deprecation(message, callstack)
39
+ bc = ::ActiveSupport::BacktraceCleaner.new
40
+ bc.add_silencer { |line| !line.match?(Dir.pwd) }
41
+ bc.add_silencer { |line| line.match?('/vendor/bundle/') }
42
+ line_path = bc.clean(callstack).first
43
+ line_path = line_path.to_s
44
+
45
+ result = /(\D*)[:](\d*)/.match(line_path)
46
+ return if @deprecation_matrix.nil? || result.nil?
47
+
48
+ file_path = result[1] # "#{Dir.pwd}#{result[1]}"
49
+
50
+ @deprecation_matrix[file_path] ||= {}
51
+ @deprecation_matrix[file_path][result[2].to_i - 1] = message
52
+ end
53
+
54
+ def start(suppress_deprecations: false)
55
+ @suppress_deprecations = suppress_deprecations
56
+
57
+ @coverage_matrix = {}
58
+ @deprecation_matrix = {}
59
+ end
60
+
61
+ def save_results(matrix = @coverage_matrix, file_name: ENV['MATRIX_FILENAME'] || 'deprecations_detector.yml')
62
+ path = File.join(output_path, file_name)
63
+ FileUtils.mkdir_p(output_path)
64
+
65
+ File.open(path, 'w') do |f|
66
+ results = matrix.sort.map { |k, v| [k, v.sort.to_h] }.to_h
67
+ f.write results.to_yaml
68
+ end
69
+ end
70
+
71
+ class << self
72
+ def method_missing(method, *args, **kwargs, &block)
73
+ if instance.respond_to?(method)
74
+ if Gem::Version.new(RUBY_VERSION) > Gem::Version.new('3')
75
+ instance.send(method, *args, **kwargs, &block)
76
+ else
77
+ instance.send(method, *args, &block)
78
+ end
79
+ else
80
+ super
81
+ end
82
+ end
83
+
84
+ def respond_to_missing?(method, include_private = false)
85
+ instance.respond_to?(method) || super
86
+ end
87
+ end
88
+
89
+ private
90
+
91
+ def save_changes(hash, example_data, file_path:, line_index:)
92
+ hash[file_path] ||= {}
93
+ hash[file_path][line_index] ||= []
94
+ hash[file_path][line_index] << example_data
95
+ end
96
+
97
+ def slice_attributes(hash, *keys)
98
+ keys.each_with_object({}) { |k, new_hash| new_hash[k] = hash[k] if hash.key?(k) }
99
+ end
100
+
101
+ def example_attributes
102
+ %I[full_description file_path line_number]
103
+ end
104
+
105
+ def select_project_files(coverage_result)
106
+ coverage_result.select { |file_path, _lines| @config[:file_filter].call(file_path) }
107
+ end
108
+
109
+ def file_of_project?(file_path)
110
+ file_path.start_with?(Dir.pwd) && !file_path.start_with?(Dir.pwd + '/spec')
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DeprecationsDetector
4
+ VERSION = '0.0.1'
5
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'singleton'
4
+ require 'yaml'
5
+ require 'active_support'
6
+
7
+ require_relative 'deprecations_detector/active_support/deprecation_decorator.rb'
8
+ require_relative 'deprecations_detector/version'
9
+ require_relative 'deprecations_detector/main'
10
+ require_relative 'deprecations_detector/formatters/html/formatter'
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'deprecations_detector'
4
+
5
+ namespace :deprecations do
6
+ desc "Combines all results into one"
7
+ task :combine, [:matrix_folder, :matrix_filename] do |_t, args|
8
+ matrix_folder = args[:matrix_folder].to_s
9
+
10
+ yaml_files = Dir.glob("#{matrix_folder}/**/*.yml").reject { |f| File.directory?(f) }
11
+ combined_matrix = yaml_files.inject({}) do |temp_matrix, file_name|
12
+ begin
13
+ matrix = YAML.load_file(file_name)
14
+
15
+ temp_matrix.merge(matrix) do |file, oldval, newval|
16
+ oldval.merge(newval) do |line, old_deprecation, new_deprecation|
17
+ old_deprecation + new_deprecation
18
+ end
19
+ end
20
+ rescue Psych::SyntaxError
21
+ temp_matrix
22
+ rescue Errno::EISDIR
23
+ temp_matrix
24
+ end
25
+ end
26
+
27
+ DeprecationsDetector::Main.output_path = args[:matrix_folder]
28
+ DeprecationsDetector::Main.save_results(combined_matrix, file_name: args[:matrix_filename])
29
+ end
30
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'deprecations_detector'
4
+
5
+ namespace :deprecations do
6
+ desc "Format"
7
+ task :format, [:folder, :matrix_filename] do |_t, args|
8
+ folder = args[:folder]
9
+ matrix = YAML.load_file("#{folder}/#{args[:matrix_filename]}")
10
+
11
+ DeprecationsDetector::Main.output_path = args[:folder]
12
+ DeprecationsDetector::Formatters::HTML::Formatter.new.format(matrix)
13
+ end
14
+ end
metadata ADDED
@@ -0,0 +1,254 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: deprecations_detector
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Daniele Palombo
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-07-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.8'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.67.2
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.67.2
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-performance
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 1.1.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.1.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop-rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.32.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.32.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: sass
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 3.7.4
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 3.7.4
153
+ - !ruby/object:Gem::Dependency
154
+ name: sprockets
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 3.7.2
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 3.7.2
167
+ description: A tool to find what specs examples cover a specific line of code
168
+ email:
169
+ - danielepalombo@nebulab.com
170
+ executables: []
171
+ extensions: []
172
+ extra_rdoc_files: []
173
+ files:
174
+ - ".gitignore"
175
+ - ".rubocop.yml"
176
+ - Gemfile
177
+ - LICENSE
178
+ - LICENSE.txt
179
+ - README.md
180
+ - Rakefile
181
+ - deprecations_detector.gemspec
182
+ - lib/deprecations_detector.rb
183
+ - lib/deprecations_detector/active_support/deprecation_decorator.rb
184
+ - lib/deprecations_detector/formatters/html/assets/javascripts/application.js
185
+ - lib/deprecations_detector/formatters/html/assets/javascripts/libraries/jquery-1.6.2.min.js
186
+ - lib/deprecations_detector/formatters/html/assets/javascripts/plugins/highlight.pack.js
187
+ - lib/deprecations_detector/formatters/html/assets/javascripts/plugins/jquery.colorbox.js
188
+ - lib/deprecations_detector/formatters/html/assets/javascripts/plugins/jquery.dataTables.min.js
189
+ - lib/deprecations_detector/formatters/html/assets/javascripts/plugins/jquery.timeago.js
190
+ - lib/deprecations_detector/formatters/html/assets/javascripts/plugins/jquery.url.js
191
+ - lib/deprecations_detector/formatters/html/assets/javascripts/settings.js
192
+ - lib/deprecations_detector/formatters/html/assets/javascripts/treeview.js
193
+ - lib/deprecations_detector/formatters/html/assets/stylesheets/application.css
194
+ - lib/deprecations_detector/formatters/html/assets/stylesheets/plugins/highlight.css
195
+ - lib/deprecations_detector/formatters/html/assets/stylesheets/plugins/jquery-ui-1.8.4.custom.css
196
+ - lib/deprecations_detector/formatters/html/assets/stylesheets/plugins/jquery.colorbox.css
197
+ - lib/deprecations_detector/formatters/html/assets/stylesheets/reset.css
198
+ - lib/deprecations_detector/formatters/html/assets/stylesheets/screen.css.sass
199
+ - lib/deprecations_detector/formatters/html/assets/stylesheets/treeview.css
200
+ - lib/deprecations_detector/formatters/html/formatter.rb
201
+ - lib/deprecations_detector/formatters/html/public/application.css
202
+ - lib/deprecations_detector/formatters/html/public/application.js
203
+ - lib/deprecations_detector/formatters/html/public/colorbox/border.png
204
+ - lib/deprecations_detector/formatters/html/public/colorbox/controls.png
205
+ - lib/deprecations_detector/formatters/html/public/colorbox/loading.gif
206
+ - lib/deprecations_detector/formatters/html/public/colorbox/loading_background.png
207
+ - lib/deprecations_detector/formatters/html/public/favicon.png
208
+ - lib/deprecations_detector/formatters/html/public/images/ui-bg_flat_0_aaaaaa_40x100.png
209
+ - lib/deprecations_detector/formatters/html/public/images/ui-bg_flat_75_ffffff_40x100.png
210
+ - lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_55_fbf9ee_1x400.png
211
+ - lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_65_ffffff_1x400.png
212
+ - lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_75_dadada_1x400.png
213
+ - lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_75_e6e6e6_1x400.png
214
+ - lib/deprecations_detector/formatters/html/public/images/ui-bg_glass_95_fef1ec_1x400.png
215
+ - lib/deprecations_detector/formatters/html/public/images/ui-bg_highlight-soft_75_cccccc_1x100.png
216
+ - lib/deprecations_detector/formatters/html/public/images/ui-icons_222222_256x240.png
217
+ - lib/deprecations_detector/formatters/html/public/images/ui-icons_2e83ff_256x240.png
218
+ - lib/deprecations_detector/formatters/html/public/images/ui-icons_454545_256x240.png
219
+ - lib/deprecations_detector/formatters/html/public/images/ui-icons_888888_256x240.png
220
+ - lib/deprecations_detector/formatters/html/public/images/ui-icons_cd0a0a_256x240.png
221
+ - lib/deprecations_detector/formatters/html/public/loading.gif
222
+ - lib/deprecations_detector/formatters/html/public/magnify.png
223
+ - lib/deprecations_detector/formatters/html/public/settings.js
224
+ - lib/deprecations_detector/formatters/html/views/file_list.erb
225
+ - lib/deprecations_detector/formatters/html/views/layout.erb
226
+ - lib/deprecations_detector/formatters/html/views/source_file.erb
227
+ - lib/deprecations_detector/main.rb
228
+ - lib/deprecations_detector/version.rb
229
+ - lib/tasks/deprecations/combine.rake
230
+ - lib/tasks/deprecations/format.rake
231
+ homepage: https://github.com/nebulab/deprecations_detector
232
+ licenses:
233
+ - MIT
234
+ metadata: {}
235
+ post_install_message:
236
+ rdoc_options: []
237
+ require_paths:
238
+ - lib
239
+ required_ruby_version: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ required_rubygems_version: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ requirements: []
250
+ rubygems_version: 3.3.17
251
+ signing_key:
252
+ specification_version: 4
253
+ summary: A tool to find what specs examples cover a specific line of code
254
+ test_files: []