module RoutesCoverage
Constants
- VERSION
Public Class Methods
_touch_route(route)
click to toggle source
# File lib/routes_coverage.rb, line 147 def self._touch_route route reset! unless @@route_hit_count @@route_hit_count[route] += 1 end
configure() { |settings| ... }
click to toggle source
# File lib/routes_coverage.rb, line 69 def self.configure yield self.settings end
enabled?()
click to toggle source
# File lib/routes_coverage.rb, line 61 def self.enabled? ::Rails.env.test? end
perform_report()
click to toggle source
# File lib/routes_coverage.rb, line 80 def self.perform_report return unless settings.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 if settings.exclude_put_fallbacks all_routes.reject!{|put_route| ( put_route.verb == /^PUT$/ || put_route.verb == "PUT" # rails 5 ) && put_route.name.nil? && @@route_hit_count[put_route] == 0 && all_routes.any?{|patch_route| ( patch_route.verb == /^PATCH$/ || patch_route.verb == "PATCH" # rails5 ) && patch_route.defaults == put_route.defaults && patch_route.ip == put_route.ip && patch_route.path.spec.to_s == put_route.path.spec.to_s } } 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!()
click to toggle source
# File lib/routes_coverage.rb, line 75 def self.reset! @@route_hit_count = Hash.new(0) @@pid = Process.pid end
settings()
click to toggle source
# File lib/routes_coverage.rb, line 65 def self.settings @@settings ||= Settings.new end