Sha256: 8c6d10b90e607d0b329aa5628e142ace223f9d772c42e2a3d0d53d763b80d9d0
Contents?: true
Size: 1.78 KB
Versions: 2
Compression:
Stored size: 1.78 KB
Contents
require 'multi_json' module Fitting module Documentation module Request class Route def initialize(response_routes) @response_routes = response_routes end def coverage_statistic stat = {} @response_routes.coverage.map do |route| macro_key = route.split(' ')[0..1].join(' ') micro_key = route.split(' ')[2..3].join(' ') stat[macro_key] ||= {} stat[macro_key]['cover'] ||= [] stat[macro_key]['not_cover'] ||= [] stat[macro_key]['cover'].push(micro_key) end @response_routes.not_coverage.map do |route| macro_key = route.split(' ')[0..1].join(' ') micro_key = route.split(' ')[2..3].join(' ') stat[macro_key] ||= {} stat[macro_key]['cover'] ||= [] stat[macro_key]['not_cover'] ||= [] stat[macro_key]['not_cover'].push(micro_key) end @stat = stat.inject( { 'full cover' => [], 'partial cover' => [], 'no cover' => [] } ) do |res, date| ratio = date.last['cover_ratio'] = (date.last['cover'].size.to_f / (date.last['cover'].size + date.last['not_cover'].size).to_f * 100.0).round(2) info = {date.first => {'cover' => date.last['cover'], 'not_cover' => date.last['not_cover']}} if ratio == 100.0 res['full cover'].push(info) elsif ratio == 0.0 res['no cover'].push(info) else res['partial cover'].push(info) end res end end def to_hash @stat ||= coverage_statistic end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fitting-1.1.0 | lib/fitting/documentation/request/route.rb |
fitting-1.0.0 | lib/fitting/documentation/request/route.rb |