Parece que há problemas com a documentação do Ruby do ponto de vista da praticidade.
:arrow: Situação: Gostaria de imprimir um inteiro no formato binário, ou seja, 2 = 10. Isso depois de sacar que vc pode fazer assim:
2[0] = 0 # bit at pos 0
2[1] = 1 # bit at pos 1
Pensei assim: deve haver alguma função each para eu loopar por todos os bits, daí eu monto o binário tranquilamente.
Ou melhor ainda, talvez um método to_b.
C:\eclipse\workspace>ri Fixnum
------------------------------------------------ Class: Fixnum < Integer
A +Fixnum+ holds +Integer+ values that can be represented in a
native machine word (minus 1 bit). If any operation on a +Fixnum+
exceeds this range, the value is automatically converted to a
+Bignum+.
+Fixnum+ objects have immediate value. This means that when they
are assigned or passed as parameters, the actual object is passed,
rather than a reference to that object. Assignment does not alias
+Fixnum+ objects. There is effectively only one +Fixnum+ object
instance for any given integer value, so, for example, you cannot
add a singleton method to a +Fixnum+.
------------------------------------------------------------------------
Enhance the Fixnum class with a XML escaped character conversion.
------------------------------------------------------------------------
Includes:
---------
Precision(prec, prec_f, prec_i)
Constants:
----------
XChar: Builder::XChar if ! defined?(XChar)
Class methods:
--------------
induced_from
Instance methods:
-----------------
%, &, *, **, +, -, -@, /, <, <<, <=, <=>, ==, >, >=, >>, [], ^,
abs, dclone, div, divmod, id2name, modulo, power!, quo, rdiv,
rpower, size, to_f, to_s, to_sym, xchr, zero?, |, ~
Talvez não, então apelei para o Google, e achei que para fazer isso basta simplesmente fazer:
2.to_s(2) # => 10
O problema é que a documentação me deixou totalmente na mão, e não é a primeira vez que ela faz isso.
Me parece importante como esse caso demonstra ter os parametros na assinature do método. Se eu tivesse visto to_s(base=10), eu não precisaria ter apelado para o Google.
O Javadoc me parece perfeito, porque ele mostra o método, sua assinature e uma sucinta descrição. Daí se vc quer a história completa vc clica no método e vai para a documentação completa.
Simplesmente fazer assim:
Instance methods:
-----------------
%, &, *, **, +, -, -@, /, <, <<, <=, <=>, ==, >, >=, >>, [], ^,
abs, dclone, div, divmod, id2name, modulo, power!, quo, rdiv,
rpower, size, to_f, to_s, to_sym, xchr, zero?, |, ~
não ajuda muito. Pra que serve -@ ?
Outro problema é a falta de organização das classes no RDoc. Em java temos tudo organizado em pacotes, o que faz total sentido. Em Ruby temos tudo numa lista só.
Exemplo trivial: Vá aqui e tente abrir a documentação da classe Object e me diga quantos CTRL + F vc teve que dar: http://www.ruby-doc.org/core/
Me parece sensato organizar as 134213423423 classes em modulos e mostrar isso organizado na documentação.
Acho que tudo isso pede um projeto para xupar toda a documentação do Ruby e cuspir ela em JavaDoc. Os 1231231321213 programadores Java que estão querendo aprender Ruby agradeceriam.