routes_coverage 0.0.3 → 0.1.0
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.
- checksums.yaml +4 -4
- data/Gemfile +5 -0
- data/README.md +17 -55
- data/Rakefile +14 -0
- data/compiled_assets/routes.css +320 -0
- data/compiled_assets/routes.js +526 -0
- data/gemfiles/rails_40.gemfile +4 -1
- data/gemfiles/rails_40.gemfile.lock +12 -1
- data/gemfiles/rails_40_rspec.gemfile +4 -1
- data/gemfiles/rails_40_rspec.gemfile.lock +12 -1
- data/gemfiles/rails_40_simplecov.gemfile +3 -1
- data/gemfiles/rails_40_simplecov.gemfile.lock +4 -1
- data/gemfiles/rails_42.gemfile +4 -1
- data/gemfiles/rails_42.gemfile.lock +11 -1
- data/gemfiles/rails_5.gemfile +4 -1
- data/gemfiles/rails_5.gemfile.lock +12 -1
- data/gemfiles/rails_51.gemfile +4 -1
- data/gemfiles/rails_51.gemfile.lock +12 -1
- data/lib/routes_coverage/adapters/atexit.rb +0 -2
- data/lib/routes_coverage/formatters/html.rb +116 -0
- data/lib/routes_coverage/formatters/html_views/layout.erb +18 -29
- data/lib/routes_coverage/formatters/html_views/route_group.erb +3 -0
- data/lib/routes_coverage/version.rb +1 -1
- data/lib/routes_coverage.rb +19 -5
- metadata +5 -3
- data/lib/routes_coverage/formatters/simplecov_html.rb +0 -97
@@ -9,6 +9,7 @@
|
|
9
9
|
</span>
|
10
10
|
</span> hits/route)
|
11
11
|
</h2>
|
12
|
+
|
12
13
|
<a name="<%= title_id %>"></a>
|
13
14
|
<div>
|
14
15
|
<b><%= result.total_count %></b> routes in total.
|
@@ -16,9 +17,11 @@
|
|
16
17
|
<span class="green"><b><%= result.hit_routes_count %></b> covered</span> and
|
17
18
|
<span class="red"><b><%= result.pending_routes.size %></b> missed </span>
|
18
19
|
</div>
|
20
|
+
|
19
21
|
<table class="route_list">
|
20
22
|
<thead>
|
21
23
|
<tr>
|
24
|
+
<%# NB: columns are also referenced from datatables config in js %>
|
22
25
|
<th>Name</th>
|
23
26
|
<th>Verb</th>
|
24
27
|
<th>Path</th>
|
data/lib/routes_coverage.rb
CHANGED
@@ -5,7 +5,7 @@ require "routes_coverage/middleware"
|
|
5
5
|
require "routes_coverage/formatters/base"
|
6
6
|
require "routes_coverage/formatters/summary_text"
|
7
7
|
require "routes_coverage/formatters/full_text"
|
8
|
-
require "routes_coverage/formatters/
|
8
|
+
require "routes_coverage/formatters/html"
|
9
9
|
|
10
10
|
module RoutesCoverage
|
11
11
|
class Railtie < ::Rails::Railtie
|
@@ -33,7 +33,7 @@ module RoutesCoverage
|
|
33
33
|
@exclude_namespaces = []
|
34
34
|
@minimum_coverage = 1
|
35
35
|
@round_precision = 1
|
36
|
-
@format = :
|
36
|
+
@format = :html
|
37
37
|
@groups = {}
|
38
38
|
end
|
39
39
|
|
@@ -43,8 +43,8 @@ module RoutesCoverage
|
|
43
43
|
Formatters::FullText
|
44
44
|
when :summary_text
|
45
45
|
Formatters::SummaryText
|
46
|
-
when :simplecov_html
|
47
|
-
Formatters::
|
46
|
+
when :html, :simplecov_html
|
47
|
+
Formatters::Html
|
48
48
|
when Formatters::Base
|
49
49
|
format
|
50
50
|
else
|
@@ -97,7 +97,21 @@ module RoutesCoverage
|
|
97
97
|
]
|
98
98
|
}]
|
99
99
|
|
100
|
-
|
100
|
+
if groups.size > 1
|
101
|
+
ungroupped_routes = all_routes.reject{|r|
|
102
|
+
groups.values.any?{|group_routes|
|
103
|
+
group_routes.all_routes.include? r
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
if ungroupped_routes.any?
|
108
|
+
groups["Ungroupped"] = Result.new(
|
109
|
+
ungroupped_routes,
|
110
|
+
Hash[@@route_hit_count.select{|r,_hits| ungroupped_routes.include? r}],
|
111
|
+
settings
|
112
|
+
)
|
113
|
+
end
|
114
|
+
end
|
101
115
|
|
102
116
|
puts
|
103
117
|
puts settings.formatter_class.new(all_result, groups, settings).format
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: routes_coverage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vasily Fedoseyev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -83,6 +83,8 @@ files:
|
|
83
83
|
- Rakefile
|
84
84
|
- bin/console
|
85
85
|
- bin/setup
|
86
|
+
- compiled_assets/routes.css
|
87
|
+
- compiled_assets/routes.js
|
86
88
|
- gemfiles/.bundle/config
|
87
89
|
- gemfiles/rails_40.gemfile
|
88
90
|
- gemfiles/rails_40.gemfile.lock
|
@@ -102,9 +104,9 @@ files:
|
|
102
104
|
- lib/routes_coverage/adapters/simplecov.rb
|
103
105
|
- lib/routes_coverage/formatters/base.rb
|
104
106
|
- lib/routes_coverage/formatters/full_text.rb
|
107
|
+
- lib/routes_coverage/formatters/html.rb
|
105
108
|
- lib/routes_coverage/formatters/html_views/layout.erb
|
106
109
|
- lib/routes_coverage/formatters/html_views/route_group.erb
|
107
|
-
- lib/routes_coverage/formatters/simplecov_html.rb
|
108
110
|
- lib/routes_coverage/formatters/summary_text.rb
|
109
111
|
- lib/routes_coverage/middleware.rb
|
110
112
|
- lib/routes_coverage/result.rb
|
@@ -1,97 +0,0 @@
|
|
1
|
-
require "erb"
|
2
|
-
require "cgi"
|
3
|
-
require "fileutils"
|
4
|
-
require "digest/sha1"
|
5
|
-
require "time"
|
6
|
-
|
7
|
-
module RoutesCoverage
|
8
|
-
module Formatters
|
9
|
-
class SimpleCovHtml < Base
|
10
|
-
def format
|
11
|
-
#TODO: copy assets, if simplecov does not generate a report along us
|
12
|
-
|
13
|
-
# Dir[File.join(File.dirname(__FILE__), "../public/*")].each do |path|
|
14
|
-
# FileUtils.cp_r(path, asset_output_path)
|
15
|
-
# end
|
16
|
-
|
17
|
-
routes_filename = "routes.html"
|
18
|
-
|
19
|
-
File.open(File.join(output_path, routes_filename), "wb") do |file|
|
20
|
-
file.puts template("layout").result(binding)
|
21
|
-
end
|
22
|
-
|
23
|
-
"Routes coverage is #{result.coverage}% Report generated to #{output_path}/#{routes_filename}"
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
def template(name)
|
29
|
-
ERB.new(File.read(File.join(File.dirname(__FILE__), "html_views", "#{name}.erb")))
|
30
|
-
end
|
31
|
-
|
32
|
-
def output_path
|
33
|
-
SimpleCov.coverage_path
|
34
|
-
end
|
35
|
-
|
36
|
-
def asset_output_path
|
37
|
-
return @asset_output_path if defined?(@asset_output_path) && @asset_output_path
|
38
|
-
@asset_output_path = File.join(output_path, "assets", SimpleCov::Formatter::HTMLFormatter::VERSION)
|
39
|
-
FileUtils.mkdir_p(@asset_output_path)
|
40
|
-
@asset_output_path
|
41
|
-
end
|
42
|
-
|
43
|
-
def assets_path(name)
|
44
|
-
File.join("./assets", SimpleCov::Formatter::HTMLFormatter::VERSION, name)
|
45
|
-
end
|
46
|
-
|
47
|
-
# Returns the html for the given source_file
|
48
|
-
def formatted_source_file(source_file)
|
49
|
-
template("source_file").result(binding)
|
50
|
-
end
|
51
|
-
|
52
|
-
# Returns a table containing the given source files
|
53
|
-
def route_group_result(title, result)
|
54
|
-
title_id = title.gsub(/^[^a-zA-Z]+/, "").gsub(/[^a-zA-Z0-9\-\_]/, "")
|
55
|
-
# Silence a warning by using the following variable to assign to itself:
|
56
|
-
# "warning: possibly useless use of a variable in void context"
|
57
|
-
# The variable is used by ERB via binding.
|
58
|
-
title_id = title_id
|
59
|
-
template("route_group").result(binding)
|
60
|
-
end
|
61
|
-
|
62
|
-
def coverage_css_class(covered_percent)
|
63
|
-
if covered_percent > 90
|
64
|
-
"green"
|
65
|
-
elsif covered_percent > 80
|
66
|
-
"yellow"
|
67
|
-
else
|
68
|
-
"red"
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def strength_css_class(covered_strength)
|
73
|
-
if covered_strength > 1
|
74
|
-
"green"
|
75
|
-
elsif covered_strength == 1
|
76
|
-
"yellow"
|
77
|
-
else
|
78
|
-
"red"
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def hits_css_class hits
|
83
|
-
hits > 0 ? 'green' : 'red'
|
84
|
-
end
|
85
|
-
|
86
|
-
# Return a (kind of) unique id for the source file given. Uses SHA1 on path for the id
|
87
|
-
def id(source_file)
|
88
|
-
Digest::SHA1.hexdigest(source_file.filename)
|
89
|
-
end
|
90
|
-
|
91
|
-
def timeago(time)
|
92
|
-
"<abbr class=\"timeago\" title=\"#{time.iso8601}\">#{time.iso8601}</abbr>"
|
93
|
-
end
|
94
|
-
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|