# Rough idea: Quering ObjectSpace

**URL:** <https://www.ruby-forum.com/t/rough-idea-quering-objectspace/113602>\
**Category:** Ruby\
**Created:** [September 2, 2007, 6:44pm UTC](https://www.ruby-forum.com/t/rough-idea-quering-objectspace/113602 "2007-09-02T18:44:35Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Victor\_SZverokSS\_Sh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/f04885/32.png) [@Victor\_SZverokSS\_Sh](https://www.ruby-forum.com/u/Victor_SZverokSS_Sh)\
**Post date:** [September 2, 2007, 6:44pm UTC](https://www.ruby-forum.com/t/rough-idea-quering-objectspace/113602/1 "2007-09-02T18:44:35Z")

</div>

Hi all.

Very raw idea, based on SemmleCode for Java [1].

# select all classes from namespace MyApp,

# with a too few methods

ObjectSpace.  
select{|obj| obj.kind\_of?(Class) && obj.in\_namespace?(:MyApp)}.  
select{|obj| obj.methods.size \< 2}

# select all classes from namespace MyApp,

# and order them by line-of-code metrics

ObjectSpace.  
select{|obj| obj.kind\_of?(Class) && obj.in\_namespace?(:MyApp)}.  
map{|obj| [obj, obj.methods.collect{|m| m.loc}.sum] }.  
sort{|l, r| l[1] \<=\> r[1]}

# select all methods, which calls method “deprecated”

ObjectSpace.detect\_methods{|m| m.calls?(:deprecated)}

The realisation of idea will require:

- some hacking through ParseTree
- adding lot of “analysis” methods to Class, Object and Method classes
- adding several “selection” methods to ObjectSpace

V.

1: [http://semmle.com/](http://semmle.com/)
