Module: RoutesCoverage
- Defined in:
- lib/routes_coverage.rb,
lib/routes_coverage/result.rb,
lib/routes_coverage/version.rb,
lib/routes_coverage/middleware.rb,
lib/routes_coverage/adapters/atexit.rb,
lib/routes_coverage/formatters/base.rb,
lib/routes_coverage/formatters/html.rb,
lib/routes_coverage/adapters/simplecov.rb,
lib/routes_coverage/formatters/full_text.rb,
lib/routes_coverage/formatters/summary_text.rb
Defined Under Namespace
Modules: Adapters, Formatters
Classes: Middleware, Railtie, Result, Settings
Constant Summary
collapse
- VERSION =
"0.1.0"
Class Method Summary
collapse
Class Method Details
._touch_route(route) ⇒ Object
121
122
123
124
|
# File 'lib/routes_coverage.rb', line 121
def self._touch_route route
reset! unless @@route_hit_count
@@route_hit_count[route] += 1
end
|
64
65
66
|
# File 'lib/routes_coverage.rb', line 64
def self.configure
yield self.settings
end
|
.enabled? ⇒ Boolean
56
57
58
|
# File 'lib/routes_coverage.rb', line 56
def self.enabled?
::Rails.env.test?
end
|
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
# File 'lib/routes_coverage.rb', line 75
def self.perform_report
all_routes = ::Rails.application.routes.routes.routes.dup
if defined?(::Sprockets) && defined?(::Sprockets::Environment)
all_routes.reject!{|r| r.app.is_a?(::Sprockets::Environment) }
end
all_result = Result.new(
all_routes,
@@route_hit_count,
settings
)
groups = Hash[settings.groups.map{|group_name, regex|
[group_name,
Result.new(
all_routes.select{|r| r.path.spec.to_s =~ regex},
Hash[@@route_hit_count.select{|r,_hits| r.path.spec.to_s =~ regex}],
settings
)
]
}]
if groups.size > 1
ungroupped_routes = all_routes.reject{|r|
groups.values.any?{|group_routes|
group_routes.all_routes.include? r
}
}
if ungroupped_routes.any?
groups["Ungroupped"] = Result.new(
ungroupped_routes,
Hash[@@route_hit_count.select{|r,_hits| ungroupped_routes.include? r}],
settings
)
end
end
puts
puts settings.formatter_class.new(all_result, groups, settings).format
end
|
.reset! ⇒ Object
70
71
72
73
|
# File 'lib/routes_coverage.rb', line 70
def self.reset!
@@route_hit_count = Hash.new(0)
@@pid = Process.pid
end
|
.settings ⇒ Object
60
61
62
|
# File 'lib/routes_coverage.rb', line 60
def self.settings
@@settings ||= Settings.new
end
|