ruby-core

Mailing list archive

[#55853] ruby 1.9.3 p448 breaks ABI — V咜 Ondruch <v.ondruch@...>

Hi,

13 messages 2013/07/08

[#55951] [ruby-trunk - Bug #8625][Open] IO#read(len, buf) shortens buf even if data is not read actually — "no6v (Nobuhiro IMAI)" <nov@...>

10 messages 2013/07/11

[#55976] [ruby-trunk - Feature #8629][Open] Method#parameters should include the default value — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

13 messages 2013/07/12

[#55985] [ruby-trunk - Feature #8631][Open] Add a new method to ERB to allow assigning the local variables from a hash — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

19 messages 2013/07/12

[#56004] [ruby-trunk - Feature #8636][Open] Documentation hosting on ruby-lang.org — "zzak (Zachary Scott)" <e@...>

18 messages 2013/07/15

[#56019] [ruby-trunk - Feature #8639][Open] Add Queue#each — "avdi (Avdi Grimm)" <avdi@...>

15 messages 2013/07/15

[#56027] [CommonRuby - Feature #8640][Open] Add Time#elapsed to return nanoseconds since creation — "tenderlovemaking (Aaron Patterson)" <aaron@...>

24 messages 2013/07/15

[#56041] [CommonRuby - Feature #8643][Open] Add Binding.from_hash — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

26 messages 2013/07/16

[#56087] [ruby-trunk - Feature #8658][Open] Process.clock_gettime — "akr (Akira Tanaka)" <akr@...>

23 messages 2013/07/19

[#56096] [CommonRuby - Feature #8661][Open] Add option to print backstrace in reverse order(stack frames first & error last) — "gary4gar (Gaurish Sharma)" <gary4gar@...>

18 messages 2013/07/20

[#56193] [ruby-trunk - Bug #8693][Open] lambda invoked by yield acts as a proc with respect to return — "rits (First Last)" <redmine@...>

33 messages 2013/07/26

[#56274] [ruby-trunk - Bug #8709][Open] Dir.glob should return sorted file list — "tommorris (Tom Morris)" <tom@...>

19 messages 2013/07/30

[ruby-core:56002] Requesting feedback for a static analysis tool/linter

From: Yorick Peterse <yorickpeterse@...>
Date: 2013-07-14 19:10:23 UTC
List: ruby-core #56002
Hey all,

For the past year or so I've been working on a static code analysis
tool/linter for Ruby (and written in Ruby) and it's finally starting to
shape up nicely. I've now reached this point where I'm happy with the
internals (at least for now) and just need to test the heck out of it
using real world code.

Of course I have quite a bit of code at my disposal myself but I'd
really appreciate it if other people could also give it a spin to see if
it works, what could be added/changed, etc. As such I'd like to request
those that are interested to give it a try.

To install it run the following Gem command:

    gem install ruby-lint -v 0.0.4

You can analyze a set of files by running the following:

    ruby-lint file1.rb file2.rb # and so on

The repository (and corresponding issue tracker) can be found at
https://github.com/YorickPeterse/ruby-lint.

There are two things I'm primarily interested in:

* Feature requests (there's only so much I can come up with myself)
* Bugs

In case of the latter I would also greatly appreciate it if people could
provide some sample code as this make it a lot easier for me to solve
the problem.

## Background Information

About a year ago I started working on this project out of frustration of
decent tools for the Ruby ecosystem that would help you with debugging
problems or even better, spotting them before they occur (whenever
possible). As a result "ruby-lint" was born.

The architecture is a bit crazy and has gone through quite a few changes
in the last few months. For example, initially I used a home grown
parser based on Ripper but recently replaced this with the "parser" Gem.
I intend to do a writeup on the architecture in the near future so if
you're interested in that stay tuned.

At the time of writing there's only one similar tool that I know of:
rubocop. Although rubocop and ruby-lint are similar they are also quite
different in many cases. Where rubocop focuses more on style related
issues (e.g. adding warnings when camelCase is used for methods)
ruby-lint focuses more on logic problems (e.g. calling a method without
the required amount of arguments). Both are competitors as well as
complementary tools.

Although ruby-lint does provide some basic style checking (e.g. it adds
warnings when you use "then" for an if statement) I intend to keep this
to a minimum, it mostly serves as an example to show that it's fairly
easy to write this kind of analysis code.

Thanks!

Yorick

In This Thread

Prev Next