9 Mar
Eu nunca tinha experimentado SmallTalk antes do Dojo da semana passada aqui no ime. Confesso que a sintaxe muito intuitiva as vezes deixava a desejar, expressando mensagens do tipo “should not do: #not” ou semelhantes.
Entretanto, uma funcionalidade do Squeak me atraiu bastante, chamava-se MethodFinder. Como você pode ver na imagem ao lado. Nessa “janelinha”, ao se escrever:
2. 2. 4
Aparece a lista de métodos que podem ser chamados no objeto 2, passando o parâmetro 2 (podiam ser mais) e que devolvem o valor 4 como resultado, que são.
* (vezes)
+ (mais)
raisedTo (elevado a ..)
raisedToInteger
Decidi então implementar algo em ruby, fiz durante uma aula de concorrentes portanto não está bem escrito, mas funciona :-). O resultado chama-se method_finder pode ser obtido no github. Para usar basta fazer o “require” do arquivo method_finder.rb, ele vai criar uma função no kernel do ruby chamada match_method. Vejam os resultados:
require ‘method_finder’ #=> true
match_method(2,[2],4) #=> ["*", "**", "+"]
match_method([1],[2],[1,2]) #=> ["<<", "push"]
match_method([1],[2,3],[1,2,3]) #=> ["push"]
match_method([3,2,1],[],[1,2,3]) #=> ["reverse", "reverse!", "sort", "sort!"]
Ainda não suporta blocos, bem como preciso fazer um gem disso eventualmente. Contribuições aceitas.

Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
Email This Post
5 Responses for "Ruby Method Finder"
E os fontes?
Opa, foi mal, esqueci de adicionar. Está no github agora:
http://github.com/Fabs/method_finder/tree/master
Ah um aviso interessante, a sintaxe do segundo parâmetro é uma lista de argumentos, isso ainda é um pouco feio eu sei :-).
OK. Estou criando a gem para o projeto.
[...] Method Finder (Postado em 09/03/2009) [...]
Leave a reply