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.2.2"
Class Method Summary
collapse
Class Method Details
._touch_route(route) ⇒ Object
125
126
127
128
|
# File 'lib/routes_coverage.rb', line 125
def self._touch_route route
reset! unless @@route_hit_count
@@route_hit_count[route] += 1
end
|
67
68
69
|
# File 'lib/routes_coverage.rb', line 67
def self.configure
yield self.settings
end
|
.enabled? ⇒ Boolean
59
60
61
|
# File 'lib/routes_coverage.rb', line 59
def self.enabled?
::Rails.env.test?
end
|
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
119
120
121
122
|
# File 'lib/routes_coverage.rb', line 78
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
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
73
74
75
76
|
# File 'lib/routes_coverage.rb', line 73
def self.reset!
@@route_hit_count = Hash.new(0)
@@pid = Process.pid
end
|
.settings ⇒ Object
63
64
65
|
# File 'lib/routes_coverage.rb', line 63
def self.settings
@@settings ||= Settings.new
end
|