Sha256: a64532d13800d6405eebdd7a6c1acdcc9d4c0873877483ffb04afc12d72d064b
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module MetricFu def self.generate_heckle_report Heckle.generate_report system("open #{Heckle.metric_dir}/index.html") if open_in_browser? end class Heckle < Base::Generator def analyze files_to_heckle = MetricFu.heckle[:dirs_to_heckle].map{|dir| Dir[File.join(dir, "**/*.rb")] } class_names = files_to_heckle.flatten.collect do |f| buffer = open(f).readlines.join("\n") outline = buffer.scan(/class\s+([\w|:]*)+?/) klass = path_to_classname(f).split('::').last end class_names.flatten! output = '' ObjectSpace.each_object(Class) do |klass| class_names.each do |name| if klass.name =~ /::#{name}$/ res = `heckle #{name} -t spec/**/#{name}_spec.rb` output << res end end end @matches = output.chomp.split("\n\n").map{|m| m.split("\n") } end def path_to_classname(s) f = s.sub(/^lib/, '').sub(/\.rb$/, '').split('/') f = f.map { |path| path.split(/_/).map { |seg| seg.capitalize }.join } f.join('::') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
p8-metric_fu-0.9.0.6 | lib/metric_fu/heckle.rb |