研究で自分がどれくらいテストを書いているのか、を見える化する為に使っているRakeタスク
CODE = FileList['lib/**/*.rb'] SPEC = FileList['spec/**/*.rb'] desc 'Report code-spec ratio' task :stats do code = `wc -l #{CODE}`.split(/ /)[-2] spec = `wc -l #{SPEC}`.split(/ /)[-2] ratio = "%.1f" % (spec.to_f / code.to_f) max_width = [[code, spec].map(&:length).max, 4].max left = lambda {|s| s.to_s.ljust(max_width) } right = lambda {|s| s.to_s.rjust(max_width) } puts right['code'] + ' : ' + left['spec'] puts right[code] + ' : ' + left[spec] puts right[1] + ' : ' + left[ratio] end
もしかすると抜けとかがあるかもしれない。
目安くらいに考える。