Guys, I'd like to write a code analysis tool that could read Ruby or Rails projects (so both standard .rb files and also erb files) and do some simple code analysis and metrics, like what methods are called (and how many times), etc, etc. What libraries or tools are out there that might help one accomplish this? Thanks! John
on 2006-02-02 14:17
on 2006-02-02 14:50
John Wells wrote: > > John http://gems.rubyforge.org/gems/coverage-0.2.gem http://rubyforge.org/projects/zentest/ http://alexpooley.com/articles/2006/01/01/ruby-on-rails-test-coverage http://eigenclass.org/hiki.rb?rcov+0.1.0+prerelease http://asplake.blogspot.com/2006/01/test-coverage-with-rcov-and-rake-962.html http://blog.zenspider.com/archives/ruby/parsetree/index.html
on 2006-02-02 15:24
John Wells wrote: > > John Actually, I think you're looking for libs that expose language services, so: (best place to look) http://rubyforge.org/softwaremap/trove_list.php?form_cat=45&discrim=306 also: http://rubyforge.org/projects/input/ http://rubyforge.org/projects/rubygrammar/ http://www.zenspider.com/ZSS/Products/CocoR/index.html http://rubyforge.org/projects/coco-ruby/
on 2006-02-02 16:15
Gene, Thanks for the links. Perhaps I should describe what I'm trying to do a bit better. I'd like to write a program that could descend through a directory of Ruby programs and generate summaries of what methods are called where. So, optimal output for what I'd like to do is the file name parsed, the methods found that are called within the file, and the classes those methods are derived from. So, I could point this program at a directory containing a Rails program and find out, for example, how many times ActionController::Base#render was called, and from what files. Perhaps it's a bit more complicated that I'd hoped. Thanks! John
on 2006-02-03 08:15
Do you mean the number of times a method is references or do you mean the number of times called while running? The former requires an additional script while the latter requires using the ruby profiler that ships with the standard distribution (just add the '-rprofile' option when calling ruby. It will display metrics when your application ends).
on 2006-02-03 22:54
On Feb 2, 2006, at 5:14 AM, John Wells wrote: > I'd like to write a code analysis tool that could read Ruby or Rails > projects (so both standard .rb files and also erb files) and do some > simple code analysis and metrics, like what methods are called (and > how > many times), etc, etc. > > What libraries or tools are out there that might help one > accomplish this? ParseTree is probably the best tool for this job, it returns the AST for ruby methods as a tree of arrays and includes a class for processing and rewriting the AST called SexpProcessor. It comes with an ABC metrics tool (assignments, branches, calls) and is the backbone of the ruby2c project. http://rubyforge.org/projects/parsetree/ -- Eric Hodel - drbrain@segment7.net - http://segment7.net This implementation is HODEL-HASH-9600 compliant http://trackmap.robotcoop.com
on 2006-02-04 02:41
Timothy Goddard wrote: > Do you mean the number of times a method is references or do you mean > the number of times called while running? The former requires an > additional script while the latter requires using the ruby profiler > that ships with the standard distribution (just add the '-rprofile' > option when calling ruby. It will display metrics when your application > ends). The number of time a method is referenced in the code, not called while running. My goal was to take every Rails OSS project I know of that has a source repository, run the parser to determine method call counts, sort and rank. Why? The one thing I'm missing in Rails is idiomatic ways of doing things, even after reading the PragProg book. The framework is big, and some things just haven't "stuck" yet. Thought this would be an interesting perspective of the projects currently out there. Thanks! John
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.