I’m a bit obsessed by my applications statistics.
So on many of them, I build tools allowing me to generate graphics with several evolution indicators of theirs datas over time.
On RefStats for example, this graphic shows the evolution of the number of positions; the number of users; of websites and the average execution time for the crawler.
Moreover, you probably already know the rails commande rake stats which gives some statistics datas on your application code.
Number of code lines, number of test lines, …
The class that builds it is located in the railties.
Unfortunately this class isn’t abstract at all. It shows directly the datas to the console. Not very cool to enter them to your database.
So I’ve taken this class to update it and allow you to get those datas in an abstract way and use them in an application 
So let’s me introduct you to Rails Code Statistics (yeah my projects names are always very original)
The principle is pretty simple.
You instantiate the class :
stats = CodeSearch.new
Then you can the datas as an hash :
p stats.to_h
As a json element :
p stats.to_json
Only the total statistics
p stats.total
Only the detailed statistics
p stats.statistics
And then do whatever you want with them 
For me for example, I have a rake task which is executed automatically once a day and puts the number of code and test lines to my database.
Then I only have to manipulate this database to build a graph.
Note : the version above will only work if you’ve made your tests with RSpec.
If you use Shoulda, I let you do it yourself 
And if you use Test::Unit, I invite you to try RSpec. You will not want to do anything else after

Je suis un peu genre obsédé par les statistiques de mes applications.
Du coup beaucoup d’entre elles ont des outils me permettant de générer des graphiques avec divers indicateurs d’évolution des données de celles-ci en fonction du temps.
Sur RefStats par exemple, ce graphique m’affiche l’évolution du nombre de positions; du nombre d’utilisateurs; de sites et le temps moyen d’exécution du robot pour chaque mot clé.
Par ailleurs vous connaissez probablement déjà la commande Rails rake stats qui fournit des données statistiques sur le code de votre application. Nombre de lignes de code; nombre de lignes de test; ratio, …
La classe calculant ceci est située dans les railties.
Malheureusement cette classe n’est pas vraiment abstraite. Elle affiche directement des données en console, c’est pas super cool pour les entrer en base de données.
Du coup j’ai repris cette classe pour la modifier et permettre de récupérer ces données de manière abstraite et ainsi pouvoir les utiliser dans mon application 
Je vous présente donc Rails Code Statistics (oui j’ai toujours des super idées de noms de projets).
Le principe est archi simple.
Vous instanciez la classe :
stats = CodeSearch.new
Puis vous pouvez récupérer les données comme un hash :
p(stats.to_h)
Comme un élément json
p(stats.to_json
Uniquement les statistiques totales
p(stats.total)
Uniquement les statistiques détaillées
p(stats.statistics)
Et après en faire ce que vous voulez 
Dans mon cas par exemple, j’ai une tache rake qui est exécutée automatiquement une fois par jour et qui me place le nombre de lignes de code et de tests.
Ainsi je n’ai plus qu’à traiter ces données pour faire un graphique d’évolution de mon application.
Note : la version ci-dessus ne fonctionnera que si vous avez vos tests faits avec RSpec.
Si vous utilisez Shoulda, je vous laisse vous débrouiller 
Et si vous utilisez Test::Unit, je vous invite à tester RSpec. Vous voudrez plus faire que de ça après
