Tag: code-reading

Daily Code Reading #16 – Flay#analyze

The third step in flay’s process is to run the s-expressions through the #analyze method. The Code 1 2 3 4 5 6 7 8 9 10 def analyze self.prune   self.hashes.each do |hash,nodes| identical[hash] = nodes[1..-1].all? { |n| n == nodes.first } masses[hash] = nodes.first.mass * nodes.size masses[hash] *= (nodes.size) if identical[hash] self.total += …

Read more

Daily Code Reading #15 – Flay#process_sexp

Now I’m starting to get into the deep dark corners of flay. The #process_sexp method is the next step in the process. The Code 1 2 3 4 5 6 7 8 def process_sexp pt pt.deep_each do |node| next unless node.any? { |sub| Sexp === sub } next if node.mass < self.mass_threshold   self.hashes[node.structural_hash] << …

Read more

Daily Code Reading #12 – Flay executable

This week I’m looking at some of the metrics libraries included in metric_fu. Since these libraries analyze Ruby code, I suspect that I’ll find some very interesting Ruby inside them. I’m starting with flay, a library that analyzes code for duplication and structural similarities. Since flay includes a command line executable, I’m starting with that …

Read more